annotate cmake/MolkoSetBuildDirectories.cmake @ 295:aec448037320

rpg: add support for compressed tilesets/maps
author David Demelier <markand@malikania.fr>
date Wed, 10 Mar 2021 16:40:02 +0100
parents 97f55f6b9593
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
242
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # MolkoSetBuildDirectories.cmake -- CMake build system for molko
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Copyright (c) 2020 David Demelier <markand@malikania.fr>
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
243
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
19 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 243
diff changeset
20 # # molko_set_build_directories
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 243
diff changeset
21 #
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 243
diff changeset
22 # Change build directories for the given target.
243
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
23 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 243
diff changeset
24 # ## Synopsis
243
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
25 #
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 243
diff changeset
26 # ```cmake
243
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
27 # molko_set_build_directories(target)
245
97f55f6b9593 doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents: 243
diff changeset
28 # ```
243
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
29 #
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
30 # This function will set output directories for the given target. It is
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
31 # necessary so that binaries can know where to find extra data.
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
32 #
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 242
diff changeset
33
242
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 function(_msbd_set_dir target property value)
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 if (NOT IS_ABSOLUTE ${value})
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 set_target_properties(
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 ${target}
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 PROPERTIES
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 ${property} ${CMAKE_BINARY_DIR}/${value}
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 )
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 foreach (c ${CMAKE_CONFIGURATION_TYPES})
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 string(TOUPPER ${c} cfg)
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 set_target_properties(
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 ${target}
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 PROPERTIES
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 ${property}_${cfg} ${CMAKE_BINARY_DIR}/${c}/${value}
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 )
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 endforeach ()
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 endif ()
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 endfunction()
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 function(molko_set_build_directories target)
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 _msbd_set_dir(${target} ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_INSTALL_LIBDIR})
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 _msbd_set_dir(${target} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_INSTALL_LIBDIR})
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 _msbd_set_dir(${target} RUNTIME_OUTPUT_DIRECTORY ${CMAKE_INSTALL_BINDIR})
4c24604efcab cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 endfunction()