Mercurial > molko
annotate CMakeLists.txt @ 329:ea4a3af71c18
rpg: change save_stmt_next API
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 04 Oct 2021 13:30:09 +0200 |
parents | cd8b87ddd1e7 |
children | 2ac41a176b5d |
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 cmake_minimum_required(VERSION 3.20) |
319
b843eef4cc35
misc: fix some warnings
David Demelier <markand@malikania.fr>
parents:
318
diff
changeset
|
20 project(molko C) |
313
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 set_property(GLOBAL PROPERTY USE_FOLDERS On) |
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 set(CMAKE_C_STANDARD 11) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 set(CMAKE_C_STANDARD_REQUIRED On) |
315
3bfaaf5342a9
cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
26 set(CMAKE_C_EXTENSIONS Off) |
313
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 |
315
3bfaaf5342a9
cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
29 if (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang") |
317
764f65dfa46d
misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents:
316
diff
changeset
|
30 set(CMAKE_C_FLAGS "-Wall -Wextra -pedantic -D_POSIX_C_SOURCE=200809L ${CMAKE_C_FLAGS}") |
315
3bfaaf5342a9
cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
31 elseif (CMAKE_C_COMPILER_ID MATCHES "MSVC") |
3bfaaf5342a9
cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
32 set(CMAKE_C_FLAGS "/wd4090 /wd5105 /wd6031 /wd6001 /wd26451 ${CMAKE_C_FLAGS}") |
3bfaaf5342a9
cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
33 endif () |
3bfaaf5342a9
cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
34 |
318
d3505c23a409
mac: fix build because Apple is not POSIX compliant
David Demelier <markand@malikania.fr>
parents:
317
diff
changeset
|
35 if (CMAKE_SYSTEM_NAME MATCHES "Darwin") |
d3505c23a409
mac: fix build because Apple is not POSIX compliant
David Demelier <markand@malikania.fr>
parents:
317
diff
changeset
|
36 set(CMAKE_C_FLAGS "-D_DARWIN_C_SOURCE ${CMAKE_C_FLAGS}") |
d3505c23a409
mac: fix build because Apple is not POSIX compliant
David Demelier <markand@malikania.fr>
parents:
317
diff
changeset
|
37 endif () |
d3505c23a409
mac: fix build because Apple is not POSIX compliant
David Demelier <markand@malikania.fr>
parents:
317
diff
changeset
|
38 |
313
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 option(MLK_WITH_NLS "Enable NLS support" On) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 option(MLK_WITH_ZSTD "Enable zstd compression" On) |
325
cd8b87ddd1e7
examples: bring back to live using CMake
David Demelier <markand@malikania.fr>
parents:
320
diff
changeset
|
41 option(MLK_WITH_TESTS "Enable unit tests" Off) |
cd8b87ddd1e7
examples: bring back to live using CMake
David Demelier <markand@malikania.fr>
parents:
320
diff
changeset
|
42 option(MLK_WITH_EXAMPLES "Enable examples" Off) |
313
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 include(cmake/MlkBcc.cmake) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 include(cmake/MlkExecutable.cmake) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 include(cmake/MlkLibrary.cmake) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 include(cmake/MlkMap.cmake) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 include(cmake/MlkNls.cmake) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 include(cmake/MlkTileset.cmake) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 include(GNUInstallDirs) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 find_package(SDL2 REQUIRED COMPONENTS image mixer ttf) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 find_package(Jansson REQUIRED) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 if (MLK_WITH_NLS) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 find_package(NLS REQUIRED) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 find_package(Intl REQUIRED) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 endif () |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 if (MLK_WITH_ZSTD) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 find_package(ZSTD REQUIRED) |
317
764f65dfa46d
misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents:
316
diff
changeset
|
63 |
764f65dfa46d
misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents:
316
diff
changeset
|
64 # Compressor is required as well. |
764f65dfa46d
misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents:
316
diff
changeset
|
65 if (NOT TARGET ZSTD::exe) |
764f65dfa46d
misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents:
316
diff
changeset
|
66 message(FATAL_ERROR "Missing zstd command line utility") |
764f65dfa46d
misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents:
316
diff
changeset
|
67 endif () |
313
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 endif () |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 add_subdirectory(extern/libsqlite) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 add_subdirectory(extern/libgreatest) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
320
8f9937403749
misc: improve loading of data
David Demelier <markand@malikania.fr>
parents:
319
diff
changeset
|
73 add_subdirectory(src/tools/bcc) |
8f9937403749
misc: improve loading of data
David Demelier <markand@malikania.fr>
parents:
319
diff
changeset
|
74 add_subdirectory(src/tools/tileset) |
8f9937403749
misc: improve loading of data
David Demelier <markand@malikania.fr>
parents:
319
diff
changeset
|
75 add_subdirectory(src/tools/map) |
313
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 |
320
8f9937403749
misc: improve loading of data
David Demelier <markand@malikania.fr>
parents:
319
diff
changeset
|
77 add_subdirectory(src/libmlk-port) |
8f9937403749
misc: improve loading of data
David Demelier <markand@malikania.fr>
parents:
319
diff
changeset
|
78 add_subdirectory(src/libmlk-core) |
8f9937403749
misc: improve loading of data
David Demelier <markand@malikania.fr>
parents:
319
diff
changeset
|
79 add_subdirectory(src/libmlk-ui) |
8f9937403749
misc: improve loading of data
David Demelier <markand@malikania.fr>
parents:
319
diff
changeset
|
80 add_subdirectory(src/libmlk-rpg) |
8f9937403749
misc: improve loading of data
David Demelier <markand@malikania.fr>
parents:
319
diff
changeset
|
81 add_subdirectory(src/libmlk-adventure) |
8f9937403749
misc: improve loading of data
David Demelier <markand@malikania.fr>
parents:
319
diff
changeset
|
82 add_subdirectory(src/libmlk-data) |
313
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 |
320
8f9937403749
misc: improve loading of data
David Demelier <markand@malikania.fr>
parents:
319
diff
changeset
|
84 add_subdirectory(src/mlk-adventure) |
313
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 if (MLK_WITH_TESTS) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 enable_testing() |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 add_subdirectory(tests) |
dbfe05b88627
cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 endif () |
325
cd8b87ddd1e7
examples: bring back to live using CMake
David Demelier <markand@malikania.fr>
parents:
320
diff
changeset
|
90 |
cd8b87ddd1e7
examples: bring back to live using CMake
David Demelier <markand@malikania.fr>
parents:
320
diff
changeset
|
91 if (MLK_WITH_EXAMPLES) |
cd8b87ddd1e7
examples: bring back to live using CMake
David Demelier <markand@malikania.fr>
parents:
320
diff
changeset
|
92 add_subdirectory(examples) |
cd8b87ddd1e7
examples: bring back to live using CMake
David Demelier <markand@malikania.fr>
parents:
320
diff
changeset
|
93 endif () |