Mercurial > molko
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 |
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 | 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 | 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 | 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 | 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 | 151 |
152 if (NOT ${LIB_EXTERNAL}) | |
153 molko_set_compiler_flags(${LIB_TARGET}) | |
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() |