Mercurial > molko
comparison cmake/MolkoDefineLibrary.cmake @ 259:16be1ad3ddba
adventure: start working on maps and teleport
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 06 Dec 2020 11:22:03 +0100 |
parents | 9dcb9354dc74 |
children | cd5bdb995052 |
comparison
equal
deleted
inserted
replaced
258:f978fa0137ce | 259:16be1ad3ddba |
---|---|
29 # SOURCES src1, src2, srcn | 29 # SOURCES src1, src2, srcn |
30 # EXTERNAL (Optional) set to true for external libraries | 30 # EXTERNAL (Optional) set to true for external libraries |
31 # FOLDER (Optional) optional subfolder to organize | 31 # FOLDER (Optional) optional subfolder to organize |
32 # TYPE (Optional) type of library | 32 # TYPE (Optional) type of library |
33 # ASSETS (Optional) list of assets | 33 # ASSETS (Optional) list of assets |
34 # DATA (Optional) list of data to install | |
34 # LIBRARIES (Optional) libraries to link | 35 # LIBRARIES (Optional) libraries to link |
35 # PRIVATE_FLAGS (Optional) C flags (without -D) | 36 # PRIVATE_FLAGS (Optional) C flags (without -D) |
36 # PRIVATE_INCLUDES (Optional) local includes for the target only | 37 # PRIVATE_INCLUDES (Optional) local includes for the target only |
37 # PUBLIC_FLAGS (Optional) C flags (without -D) | 38 # PUBLIC_FLAGS (Optional) C flags (without -D) |
38 # PUBLIC_INCLUDES (Optional) includes to share with target dependencies | 39 # PUBLIC_INCLUDES (Optional) includes to share with target dependencies |
64 # | 65 # |
65 | 66 |
66 include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildAssets.cmake) | 67 include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildAssets.cmake) |
67 include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildTilesets.cmake) | 68 include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildTilesets.cmake) |
68 include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildMaps.cmake) | 69 include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildMaps.cmake) |
70 include(${CMAKE_CURRENT_LIST_DIR}/MolkoLinkData.cmake) | |
69 include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetCompilerFlags.cmake) | 71 include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetCompilerFlags.cmake) |
70 include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetBuildDirectories.cmake) | 72 include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetBuildDirectories.cmake) |
71 | 73 |
72 function(molko_define_library) | 74 function(molko_define_library) |
73 set(options EXTERNAL) | 75 set(options EXTERNAL) |
74 set(oneValueArgs FOLDER TARGET TYPE) | 76 set(oneValueArgs FOLDER TARGET TYPE) |
75 set(multiValueArgs ASSETS LIBRARIES MAPS PRIVATE_FLAGS PRIVATE_INCLUDES PUBLIC_FLAGS PUBLIC_INCLUDES TILESETS SOURCES TRANSLATIONS) | 77 set(multiValueArgs ASSETS DATA LIBRARIES MAPS PRIVATE_FLAGS PRIVATE_INCLUDES PUBLIC_FLAGS PUBLIC_INCLUDES TILESETS SOURCES TRANSLATIONS) |
76 | 78 |
77 cmake_parse_arguments(LIB "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) | 79 cmake_parse_arguments(LIB "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) |
78 | 80 |
79 if (NOT LIB_TARGET) | 81 if (NOT LIB_TARGET) |
80 message(FATAL_ERROR "Missing TARGET argument") | 82 message(FATAL_ERROR "Missing TARGET argument") |
82 if (NOT LIB_SOURCES) | 84 if (NOT LIB_SOURCES) |
83 message(FATAL_ERROR "Missing SOURCES argument") | 85 message(FATAL_ERROR "Missing SOURCES argument") |
84 endif () | 86 endif () |
85 | 87 |
86 molko_build_assets("${LIB_ASSETS}" ASSETS_OUTPUTS) | 88 molko_build_assets("${LIB_ASSETS}" ASSETS_OUTPUTS) |
87 molko_build_tilesets("${LIB_TILESETS}" TILESETS_OUTPUTS) | 89 molko_build_tilesets(${LIB_TARGET} "${LIB_TILESETS}" TILESETS_OUTPUTS) |
88 molko_build_maps("${LIB_MAPS}" MAPS_OUTPUTS) | 90 molko_build_maps(${LIB_TARGET} "${LIB_MAPS}" MAPS_OUTPUTS) |
91 molko_link_data(${LIB_TARGET} "${LIB_DATA}" DATA_OUTPUTS) | |
89 | 92 |
90 if (${LIB_TYPE} MATCHES "INTERFACE") | 93 if (${LIB_TYPE} MATCHES "INTERFACE") |
91 add_library(${LIB_TARGET} INTERFACE) | 94 add_library(${LIB_TARGET} INTERFACE) |
92 target_sources( | 95 target_sources( |
93 ${LIB_TARGET} | 96 ${LIB_TARGET} |
94 INTERFACE | 97 INTERFACE |
98 ${ASSETS_OUTPUTS} | |
99 ${DATA_OUTPUTS} | |
95 ${LIB_SOURCES} | 100 ${LIB_SOURCES} |
96 ${ASSETS_OUTPUTS} | |
97 ${MAPS_OUTPUTS} | 101 ${MAPS_OUTPUTS} |
102 ${NLS_OUTPUTS} | |
98 ${TILESETS_OUTPUTS} | 103 ${TILESETS_OUTPUTS} |
99 ) | 104 ) |
100 target_include_directories( | 105 target_include_directories( |
101 ${LIB_TARGET} | 106 ${LIB_TARGET} |
102 INTERFACE | 107 INTERFACE |
113 ) | 118 ) |
114 endif () | 119 endif () |
115 | 120 |
116 add_library( | 121 add_library( |
117 ${LIB_TARGET} | 122 ${LIB_TARGET} |
123 ${ASSETS_OUTPUTS} | |
124 ${DATA_OUTPUTS} | |
125 ${LIB_SOURCES} | |
118 ${LIB_TYPE} | 126 ${LIB_TYPE} |
119 ${LIB_SOURCES} | |
120 ${ASSETS_OUTPUTS} | |
121 ${MAPS_OUTPUTS} | 127 ${MAPS_OUTPUTS} |
128 ${NLS_OUTPUTS} | |
122 ${TILESETS_OUTPUTS} | 129 ${TILESETS_OUTPUTS} |
123 ${NLS_OUTPUTS} | |
124 ) | 130 ) |
125 | 131 |
126 target_include_directories( | 132 target_include_directories( |
127 ${LIB_TARGET} | 133 ${LIB_TARGET} |
128 PRIVATE | 134 PRIVATE |