annotate libmlk-core/CMakeLists.txt @ 313:dbfe05b88627

cmake: bring back for good It's just too complicated to get portability done right using pure GNU make and since we're targeting more OSes than Linux we have to incorporate some portability bits.
author David Demelier <markand@malikania.fr>
date Wed, 22 Sep 2021 07:19:32 +0200
parents
children d01e83210ca2
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 #
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Copyright (c) 2020 David Demelier <markand@malikania.fr>
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 project(libmlk-core)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 set(
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 SOURCES
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 ${libmlk-core_SOURCE_DIR}/core/action.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 ${libmlk-core_SOURCE_DIR}/core/action.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 ${libmlk-core_SOURCE_DIR}/core/alloc.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 ${libmlk-core_SOURCE_DIR}/core/alloc.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 ${libmlk-core_SOURCE_DIR}/core/animation.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 ${libmlk-core_SOURCE_DIR}/core/animation.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 ${libmlk-core_SOURCE_DIR}/core/clock.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 ${libmlk-core_SOURCE_DIR}/core/clock.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 ${libmlk-core_SOURCE_DIR}/core/color.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 ${libmlk-core_SOURCE_DIR}/core/core.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 ${libmlk-core_SOURCE_DIR}/core/core.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 ${libmlk-core_SOURCE_DIR}/core/core_p.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 ${libmlk-core_SOURCE_DIR}/core/drawable.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 ${libmlk-core_SOURCE_DIR}/core/drawable.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 ${libmlk-core_SOURCE_DIR}/core/error.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 ${libmlk-core_SOURCE_DIR}/core/error.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 ${libmlk-core_SOURCE_DIR}/core/event.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 ${libmlk-core_SOURCE_DIR}/core/event.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 ${libmlk-core_SOURCE_DIR}/core/font.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 ${libmlk-core_SOURCE_DIR}/core/font.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 ${libmlk-core_SOURCE_DIR}/core/game.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 ${libmlk-core_SOURCE_DIR}/core/game.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 ${libmlk-core_SOURCE_DIR}/core/image.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 ${libmlk-core_SOURCE_DIR}/core/image.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 ${libmlk-core_SOURCE_DIR}/core/inhibit.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 ${libmlk-core_SOURCE_DIR}/core/key.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 ${libmlk-core_SOURCE_DIR}/core/maths.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 ${libmlk-core_SOURCE_DIR}/core/maths.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 ${libmlk-core_SOURCE_DIR}/core/mouse.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 ${libmlk-core_SOURCE_DIR}/core/music.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 ${libmlk-core_SOURCE_DIR}/core/music.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 ${libmlk-core_SOURCE_DIR}/core/painter.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 ${libmlk-core_SOURCE_DIR}/core/painter.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 ${libmlk-core_SOURCE_DIR}/core/panic.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 ${libmlk-core_SOURCE_DIR}/core/panic.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 ${libmlk-core_SOURCE_DIR}/core/port.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 ${libmlk-core_SOURCE_DIR}/core/port.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 ${libmlk-core_SOURCE_DIR}/core/script.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 ${libmlk-core_SOURCE_DIR}/core/script.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 ${libmlk-core_SOURCE_DIR}/core/sound.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 ${libmlk-core_SOURCE_DIR}/core/sound.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 ${libmlk-core_SOURCE_DIR}/core/sprite.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 ${libmlk-core_SOURCE_DIR}/core/sprite.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 ${libmlk-core_SOURCE_DIR}/core/state.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 ${libmlk-core_SOURCE_DIR}/core/state.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 ${libmlk-core_SOURCE_DIR}/core/sys.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 ${libmlk-core_SOURCE_DIR}/core/sys.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 ${libmlk-core_SOURCE_DIR}/core/texture.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 ${libmlk-core_SOURCE_DIR}/core/texture.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 ${libmlk-core_SOURCE_DIR}/core/texture_p.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 ${libmlk-core_SOURCE_DIR}/core/trace.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 ${libmlk-core_SOURCE_DIR}/core/trace.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 ${libmlk-core_SOURCE_DIR}/core/translate.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 ${libmlk-core_SOURCE_DIR}/core/translate.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 ${libmlk-core_SOURCE_DIR}/core/util.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 ${libmlk-core_SOURCE_DIR}/core/util.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 ${libmlk-core_SOURCE_DIR}/core/window.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 ${libmlk-core_SOURCE_DIR}/core/window.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 ${libmlk-core_SOURCE_DIR}/core/window_p.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 ${libmlk-core_SOURCE_DIR}/core/zfile.c
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 ${libmlk-core_SOURCE_DIR}/core/zfile.h
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 )
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 set(
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 NLS
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 ${libmlk-core_SOURCE_DIR}/nls/fr.po
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 )
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
90
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 if (MLK_WITH_NLS)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 list(APPEND LIBRARIES ${Intl_LIBRARIES})
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 endif ()
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
94
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 if (MLK_WITH_ZSTD)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 list(APPEND LIBRARIES ZSTD::ZSTD)
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 endif ()
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
98
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 mlk_library(
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 NAME libmlk-core
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 SOURCES ${SOURCES} ${NLS}
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 LANGS ${NLS}
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 LIBRARIES PUBLIC ${LIBRARIES} SDL2::SDL2 SDL2::image SDL2::ttf SDL2::mixer
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 INCLUDES
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 PUBLIC $<BUILD_INTERFACE:${libmlk-core_SOURCE_DIR}>
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 )
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
107
dbfe05b88627 cmake: bring back for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 source_group(TREE ${libmlk-core_SOURCE_DIR} FILES ${SOURCES} ${NLS})