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