annotate cmake/MolkoDefineLibrary.cmake @ 248:37771eaf4245

core: use vsync and improve game loop
author David Demelier <markand@malikania.fr>
date Tue, 01 Dec 2020 12:56:11 +0100
parents 97f55f6b9593
children 9dcb9354dc74
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # MolkoDefineLibrary.cmake -- CMake build system for molko
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Copyright (c) 2020 David Demelier <markand@malikania.fr>
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
20 # # molko_define_library
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
21 #
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
22 # Create any kind of library.
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
24 # ## Synopsis
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
26 # ```cmake
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 # molko_define_library(
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 # TARGET target name
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 # SOURCES src1, src2, srcn
221
d51d9c0c2186 misc: some cleanup
David Demelier <markand@malikania.fr>
parents: 215
diff changeset
30 # EXTERNAL (Optional) set to true for external libraries
121
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
31 # FOLDER (Optional) optional subfolder to organize
119
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
32 # TYPE (Optional) type of library
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 # ASSETS (Optional) list of assets
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 # LIBRARIES (Optional) libraries to link
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 # PRIVATE_FLAGS (Optional) C flags (without -D)
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 # PRIVATE_INCLUDES (Optional) local includes for the target only
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 # PUBLIC_FLAGS (Optional) C flags (without -D)
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 # PUBLIC_INCLUDES (Optional) includes to share with target dependencies
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 # )
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
40 # ```
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 #
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 # Create a library and optionally install it.
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
44 # The function create a new library named with the parameter *TARGET*, you
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
45 # should prefix it with "lib" as its the convention within molko (e.g. libfoo),
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
46 # the prefix is automatically removed.
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
48 # The argument *SOURCES* should contains the C source files and *HEADERS*
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
49 # should points to a directory to be installed verbatim in the include
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
50 # directory.
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
52 # Optional argument *EXTERNAL* should be set for targets that are not
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
53 # maintained here (e.g. third party libraries embedded).
221
d51d9c0c2186 misc: some cleanup
David Demelier <markand@malikania.fr>
parents: 215
diff changeset
54 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
55 # Optional argument *PRIVATE_FLAGS*, *PUBLIC_FLAGS*, *PRIVATE_INCLUDES*,
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
56 # *PUBLIC_INCLUDES*, *LIBRARIES* may be passed to set compile flags, includes
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
57 # and libraries respectively.
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
59 # The arguments *ASSETS* contains a list of assets to be converted during the
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
60 # build. The file hierarchy is conserved in the `${CMAKE_CURRENT_BINARY_DIR}`.
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
62 # If *FOLDER* option is set, it is organized into its name under the IDE if
121
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
63 # supported.
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 #
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
65
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildAssets.cmake)
215
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
67 include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildTilesets.cmake)
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
68 include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildMaps.cmake)
221
d51d9c0c2186 misc: some cleanup
David Demelier <markand@malikania.fr>
parents: 215
diff changeset
69 include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetCompilerFlags.cmake)
242
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents: 241
diff changeset
70 include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetBuildDirectories.cmake)
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
71
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 function(molko_define_library)
221
d51d9c0c2186 misc: some cleanup
David Demelier <markand@malikania.fr>
parents: 215
diff changeset
73 set(options EXTERNAL)
121
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
74 set(oneValueArgs FOLDER TARGET TYPE)
241
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
75 set(multiValueArgs ASSETS LIBRARIES MAPS PRIVATE_FLAGS PRIVATE_INCLUDES PUBLIC_FLAGS PUBLIC_INCLUDES TILESETS SOURCES TRANSLATIONS)
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 cmake_parse_arguments(LIB "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
78
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 if (NOT LIB_TARGET)
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 message(FATAL_ERROR "Missing TARGET argument")
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 endif ()
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 if (NOT LIB_SOURCES)
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 message(FATAL_ERROR "Missing SOURCES argument")
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 endif ()
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
85
215
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
86 molko_build_assets("${LIB_ASSETS}" ASSETS_OUTPUTS)
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
87 molko_build_tilesets("${LIB_TILESETS}" TILESETS_OUTPUTS)
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
88 molko_build_maps("${LIB_MAPS}" MAPS_OUTPUTS)
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
89
119
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
90 if (${LIB_TYPE} MATCHES "INTERFACE")
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
91 add_library(${LIB_TARGET} INTERFACE)
215
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
92 target_sources(
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
93 ${LIB_TARGET}
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
94 INTERFACE
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
95 ${LIB_SOURCES}
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
96 ${ASSETS_OUTPUTS}
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
97 ${MAPS_OUTPUTS}
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
98 ${TILESETS_OUTPUTS}
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
99 )
119
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
100 target_include_directories(
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
101 ${LIB_TARGET}
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
102 INTERFACE
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
103 ${LIB_PRIVATE_INCLUDES}
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
104 ${LIB_PUBLIC_INCLUDES}
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
105 )
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
106 else ()
241
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
107 if (LIB_TRANSLATIONS)
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
108 molko_build_translations(
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
109 TARGET ${LIB_TARGET}
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
110 TRANSLATIONS ${LIB_TRANSLATIONS}
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
111 SOURCES ${LIB_SOURCES}
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
112 OUTPUTS NLS_OUTPUTS
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
113 )
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
114 endif ()
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
115
215
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
116 add_library(
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
117 ${LIB_TARGET}
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
118 ${LIB_TYPE}
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
119 ${LIB_SOURCES}
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
120 ${ASSETS_OUTPUTS}
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
121 ${MAPS_OUTPUTS}
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
122 ${TILESETS_OUTPUTS}
241
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
123 ${NLS_OUTPUTS}
215
64f24b482722 rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
124 )
241
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 221
diff changeset
125
119
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
126 target_include_directories(
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
127 ${LIB_TARGET}
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
128 PRIVATE
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
129 ${LIB_PRIVATE_INCLUDES}
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
130 PUBLIC
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
131 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
132 ${LIB_PUBLIC_INCLUDES}
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
133 )
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
134 target_compile_definitions(
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
135 ${LIB_TARGET}
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
136 PRIVATE
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
137 ${LIB_PRIVATE_FLAGS}
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
138 PUBLIC
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
139 ${LIB_PUBLIC_FLAGS}
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
140 )
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
141 target_link_libraries(${LIB_TARGET} ${LIB_LIBRARIES})
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
142 set_target_properties(
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
143 ${LIB_TARGET}
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
144 PROPERTIES
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
145 PREFIX ""
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
146 IMPORT_PREFIX ""
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
147 C_EXTENSIONS Off
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
148 C_STANDARD 11
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
149 C_STANDARD_REQUIRED On
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
150 )
221
d51d9c0c2186 misc: some cleanup
David Demelier <markand@malikania.fr>
parents: 215
diff changeset
151
d51d9c0c2186 misc: some cleanup
David Demelier <markand@malikania.fr>
parents: 215
diff changeset
152 if (NOT ${LIB_EXTERNAL})
d51d9c0c2186 misc: some cleanup
David Demelier <markand@malikania.fr>
parents: 215
diff changeset
153 molko_set_compiler_flags(${LIB_TARGET})
d51d9c0c2186 misc: some cleanup
David Demelier <markand@malikania.fr>
parents: 215
diff changeset
154 endif ()
119
43e04bf2c350 cmake: add tests, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
155 endif ()
121
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
156
242
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents: 241
diff changeset
157 molko_set_build_directories(${LIB_TARGET})
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents: 241
diff changeset
158
121
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
159 if (LIB_FOLDER)
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
160 set_target_properties(${LIB_TARGET} PROPERTIES FOLDER ${LIB_FOLDER})
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
161 endif ()
118
3411daa26432 cmake: create macros for building assets, continue #2487 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 endfunction()