annotate CMakeLists.txt @ 317:764f65dfa46d

misc: various fixes for glibc
author David Demelier <markand@malikania.fr>
date Wed, 22 Sep 2021 16:00:46 +0200
parents 1a6125ffebff
children d3505c23a409
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
d01e83210ca2 misc: update years
David Demelier <markand@malikania.fr>
parents: 313
diff changeset
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)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 project(molko)
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
313
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 option(MLK_WITH_NLS "Enable NLS support" On)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 option(MLK_WITH_ZSTD "Enable zstd compression" On)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 option(MLK_WITH_TESTS "Enable unit tests" On)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 include(cmake/MlkBcc.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 include(cmake/MlkExecutable.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 include(cmake/MlkLibrary.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 include(cmake/MlkMap.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 include(cmake/MlkNls.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 include(cmake/MlkTileset.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 include(GNUInstallDirs)
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 find_package(SDL2 REQUIRED COMPONENTS image mixer ttf)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 find_package(Jansson REQUIRED)
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 if (MLK_WITH_NLS)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 find_package(NLS REQUIRED)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 find_package(Intl REQUIRED)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 endif ()
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_ZSTD)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 find_package(ZSTD REQUIRED)
317
764f65dfa46d misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents: 316
diff changeset
58
764f65dfa46d misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents: 316
diff changeset
59 # Compressor is required as well.
764f65dfa46d misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents: 316
diff changeset
60 if (NOT TARGET ZSTD::exe)
764f65dfa46d misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents: 316
diff changeset
61 message(FATAL_ERROR "Missing zstd command line utility")
764f65dfa46d misc: various fixes for glibc
David Demelier <markand@malikania.fr>
parents: 316
diff changeset
62 endif ()
313
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 endif ()
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
64
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 add_subdirectory(extern/libsqlite)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 add_subdirectory(extern/libgreatest)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 add_subdirectory(tools/bcc)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 add_subdirectory(tools/tileset)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 add_subdirectory(tools/map)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
71
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
72 add_subdirectory(libmlk-port)
313
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 add_subdirectory(libmlk-core)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 add_subdirectory(libmlk-ui)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 add_subdirectory(libmlk-rpg)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 add_subdirectory(libmlk-adventure)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 add_subdirectory(libmlk-data)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
78
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 add_subdirectory(mlk-adventure)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
80
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 if (MLK_WITH_TESTS)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 enable_testing()
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 add_subdirectory(tests)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 endif ()