Mercurial > malikania
comparison cmake/function/MalikaniaDefineExecutable.cmake @ 141:2cce1729b6da
CMake: enable assets for executable
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 28 Sep 2017 06:40:09 +0200 |
parents | 8963c68f023c |
children | 4b292c20124c |
comparison
equal
deleted
inserted
replaced
140:a83fff870983 | 141:2cce1729b6da |
---|---|
32 # If you need flags, just pass them without -D or /D, this is automatically done for you. | 32 # If you need flags, just pass them without -D or /D, this is automatically done for you. |
33 # | 33 # |
34 | 34 |
35 include(CMakeParseArguments) | 35 include(CMakeParseArguments) |
36 | 36 |
37 include(${CMAKE_CURRENT_LIST_DIR}/MalikaniaBuildAssets.cmake) | |
37 include(${CMAKE_CURRENT_LIST_DIR}/MalikaniaVeraCheck.cmake) | 38 include(${CMAKE_CURRENT_LIST_DIR}/MalikaniaVeraCheck.cmake) |
38 | 39 |
39 function(malikania_define_executable) | 40 function(malikania_define_executable) |
40 set(singleArgs TARGET) | 41 set(singleArgs TARGET) |
41 set(multiArgs SOURCES FLAGS INCLUDES LIBRARIES) | 42 set(multiArgs ASSETS SOURCES FLAGS INCLUDES LIBRARIES) |
42 | 43 |
43 cmake_parse_arguments(EXE "" "${singleArgs}" "${multiArgs}" ${ARGN}) | 44 cmake_parse_arguments(EXE "" "${singleArgs}" "${multiArgs}" ${ARGN}) |
44 | 45 |
45 if (NOT EXE_TARGET) | 46 if (NOT EXE_TARGET) |
46 message(FATAL_ERROR "Missing TARGET parameter") | 47 message(FATAL_ERROR "Missing TARGET parameter") |
47 endif () | 48 endif () |
48 if (NOT EXE_SOURCES) | 49 if (NOT EXE_SOURCES) |
49 message(FATAL_ERROR "Missing SOURCES parameter") | 50 message(FATAL_ERROR "Missing SOURCES parameter") |
50 endif () | 51 endif () |
51 | 52 |
52 add_executable(${EXE_TARGET} ${EXE_SOURCES}) | 53 malikania_build_assets("${EXE_ASSETS}" assets) |
54 | |
55 add_executable(${EXE_TARGET} ${EXE_SOURCES} ${EXE_ASSETS} ${assets}) | |
53 target_link_libraries(${EXE_TARGET} ${EXE_LIBRARIES}) | 56 target_link_libraries(${EXE_TARGET} ${EXE_LIBRARIES}) |
54 target_include_directories(${EXE_TARGET} PRIVATE ${EXE_INCLUDES}) | 57 target_include_directories( |
58 ${EXE_TARGET} | |
59 PRIVATE | |
60 ${CMAKE_CURRENT_BINARY_DIR}/assets | |
61 ${EXE_INCLUDES} | |
62 ) | |
55 target_compile_definitions(${EXE_TARGET} PRIVATE ${EXE_FLAGS}) | 63 target_compile_definitions(${EXE_TARGET} PRIVATE ${EXE_FLAGS}) |
56 set_target_properties( | 64 set_target_properties( |
57 ${EXE_TARGET} | 65 ${EXE_TARGET} |
58 PROPERTIES | 66 PROPERTIES |
59 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin | 67 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin |