Mercurial > molko
annotate cmake/MlkTileset.cmake @ 316:1a6125ffebff
misc: fix many warnings and build on macOS
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 22 Sep 2021 12:57:55 +0200 |
parents | d01e83210ca2 |
children | 8f9937403749 |
rev | line source |
---|---|
313
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 # |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 # CMakeLists.txt -- CMake build system for Molko's Adventure |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 # |
314 | 4 # Copyright (c) 2020-2021 David Demelier <markand@malikania.fr> |
313
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 # |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 # Permission to use, copy, modify, and/or distribute this software for any |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 # purpose with or without fee is hereby granted, provided that the above |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 # copyright notice and this permission notice appear in all copies. |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 # |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 # |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 macro(mlk_tileset) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 set(options "") |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 set(oneValueArgs "OUTPUTS_VAR") |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 set(multiValueArgs "TILESETS") |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 cmake_parse_arguments(_tileset "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 if (NOT _tileset_OUTPUTS_VAR) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 message(FATAL_ERROR "Missing OUTPUTS_VAR") |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 elseif (NOT _tileset_TILESETS) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 message(FATAL_ERROR "Missing TILESETS") |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 endif () |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 foreach (m ${_tileset_TILESETS}) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 cmake_path(GET m FILENAME name) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 cmake_path(REMOVE_EXTENSION name) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 if (MLK_WITH_ZSTD) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 set(_tileset_cmds |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 COMMAND $<TARGET_FILE:mlk-tileset> < ${m} > ${CMAKE_CURRENT_BINARY_DIR}/${name}.tmp |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 COMMAND |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 ZSTD::exe -17 -fq |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 --rm ${CMAKE_CURRENT_BINARY_DIR}/${name}.tmp |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 -o ${CMAKE_CURRENT_BINARY_DIR}/${name}.tileset |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 ) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 else () |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 set(_tileset_cmds |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 COMMAND $<TARGET_FILE:mlk-tileset> < ${m} > ${CMAKE_CURRENT_BINARY_DIR}/${name}.tileset |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 ) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 endif () |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 add_custom_command( |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${name}.tileset |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 COMMAND |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR} |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 COMMAND |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 ${_tileset_cmds} |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 DEPENDS $<TARGET_FILE:mlk-tileset> |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 COMMENT "Generating ${name}.tileset" |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 ) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 list(APPEND ${_tileset_OUTPUTS_VAR} ${CMAKE_CURRENT_BINARY_DIR}/${name}.tileset) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 endforeach () |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 endmacro() |