annotate CMakeLists.txt @ 314:d01e83210ca2

misc: update years
author David Demelier <markand@malikania.fr>
date Wed, 22 Sep 2021 07:22:20 +0200
parents dbfe05b88627
children 3bfaaf5342a9
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)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 option(MLK_WITH_NLS "Enable NLS support" On)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 option(MLK_WITH_ZSTD "Enable zstd compression" On)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 option(MLK_WITH_TESTS "Enable unit tests" On)
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 include(cmake/MlkBcc.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 include(cmake/MlkExecutable.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 include(cmake/MlkLibrary.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 include(cmake/MlkMap.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 include(cmake/MlkNls.cmake)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 include(cmake/MlkTileset.cmake)
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(GNUInstallDirs)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 include(CheckFunctionExists)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 check_function_exists(strlcpy MLK_HAS_STRLCPY)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 check_function_exists(fmemopen MLK_HAS_FMEMOPEN)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 find_package(SDL2 REQUIRED COMPONENTS image mixer ttf)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 find_package(Jansson REQUIRED)
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 if (MLK_WITH_NLS)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 find_package(NLS REQUIRED)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 find_package(Intl REQUIRED)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 endif ()
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 if (MLK_WITH_ZSTD)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 find_package(ZSTD REQUIRED)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 endif ()
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
56
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 configure_file(
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 ${CMAKE_SOURCE_DIR}/config.h.in
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 ${CMAKE_BINARY_DIR}/config.h
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 include_directories(${CMAKE_BINARY_DIR})
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 add_subdirectory(extern/libsqlite)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 add_subdirectory(extern/libgreatest)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
65
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 add_subdirectory(tools/bcc)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 add_subdirectory(tools/tileset)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 add_subdirectory(tools/map)
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(libmlk-core)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 add_subdirectory(libmlk-ui)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 add_subdirectory(libmlk-rpg)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 add_subdirectory(libmlk-adventure)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 add_subdirectory(libmlk-data)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
75
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 add_subdirectory(mlk-adventure)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 if (MLK_WITH_TESTS)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 enable_testing()
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 add_subdirectory(tests)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 endif ()