aboutsummaryrefslogtreecommitdiff
path: root/src/mock/wine/CMakeLists.txt
blob: dab4d77559fb9d198c030cbcecec457db6873eae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
SET(WINE_SOURCES
	${CMAKE_CURRENT_SOURCE_DIR}/main.c
)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mock/bin")
file(MAKE_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")

set(WINE_MOCK_ARCHIVE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
set(WINE_MOCK_ARCHIVE_DIR "${WINE_MOCK_ARCHIVE_DIR}" PARENT_SCOPE)

add_executable(wine_mock ${WINE_SOURCES})
set_target_properties(wine_mock PROPERTIES  OUTPUT_NAME "wine")
target_compile_options(wine_mock PUBLIC ${CFLAGS})

set(WINE_MOCK_ARCHIVE_FILE_NAME "wine-mock.tar.xz")
set(WINE_MOCK_ARCHIVE_FILE "${WINE_MOCK_ARCHIVE_DIR}/${WINE_MOCK_ARCHIVE_FILE_NAME}")
string(REGEX REPLACE "\\.| |-" "_" WINE_MOCK_ARCHIVE_FILE_NAME ${WINE_MOCK_ARCHIVE_FILE_NAME})
set(WINE_MOCK_ARCHIVE_OUT  "${WINE_MOCK_ARCHIVE_DIR}/${WINE_MOCK_ARCHIVE_FILE_NAME}")
set(WINE_MOCK_ARCHIVE_OUT  "${WINE_MOCK_ARCHIVE_OUT}" PARENT_SCOPE)
add_custom_command(
    OUTPUT ${WINE_MOCK_ARCHIVE_FILE}
    COMMAND
    ${CMAKE_COMMAND} -E tar "cfv" "${WINE_MOCK_ARCHIVE_FILE}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
    DEPENDS wine_mock
)

add_custom_command(
    OUTPUT ${WINE_MOCK_ARCHIVE_OUT}.c ${WINE_MOCK_ARCHIVE_OUT}.h
    COMMAND ${CMAKE_COMMAND}
    "-Dbin_in=${WINE_MOCK_ARCHIVE_FILE}"
    -P ${CMAKE_SOURCE_DIR}/cmake/FileEmbed.cmake
    DEPENDS ${WINE_MOCK_ARCHIVE_FILE}
)

add_custom_target(wine_mock_archive ALL DEPENDS ${WINE_MOCK_ARCHIVE_OUT}.c ${WINE_MOCK_ARCHIVE_OUT}.h)