comparison libmlk-core/CMakeLists.txt @ 243:71b3b7036de7

misc: lot of cleanups, - prefix libraries with libmlk, - move assets from source directories closes #2520, - prefix header guards closes #2519
author David Demelier <markand@malikania.fr>
date Sat, 28 Nov 2020 22:37:30 +0100
parents libcore/CMakeLists.txt@4c24604efcab
children c4da052c0def
comparison
equal deleted inserted replaced
242:4c24604efcab 243:71b3b7036de7
1 #
2 # CMakeLists.txt -- CMake build system for libmlk-core
3 #
4 # Copyright (c) 2020 David Demelier <markand@malikania.fr>
5 #
6 # Permission to use, copy, modify, and/or distribute this software for any
7 # purpose with or without fee is hereby granted, provided that the above
8 # copyright notice and this permission notice appear in all copies.
9 #
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 #
18
19 project(libmlk-core)
20
21 include(CheckLibraryExists)
22
23 set(
24 ASSETS
25 ${libmlk-core_SOURCE_DIR}/assets/sql/init.sql
26 ${libmlk-core_SOURCE_DIR}/assets/sql/property-get.sql
27 ${libmlk-core_SOURCE_DIR}/assets/sql/property-remove.sql
28 ${libmlk-core_SOURCE_DIR}/assets/sql/property-set.sql
29 )
30
31 set(
32 PO
33 ${libmlk-core_SOURCE_DIR}/nls/fr.po
34 )
35
36 set(
37 SOURCES
38 ${libmlk-core_SOURCE_DIR}/core/action.c
39 ${libmlk-core_SOURCE_DIR}/core/action.h
40 ${libmlk-core_SOURCE_DIR}/core/alloc.c
41 ${libmlk-core_SOURCE_DIR}/core/alloc.h
42 ${libmlk-core_SOURCE_DIR}/core/animation.c
43 ${libmlk-core_SOURCE_DIR}/core/animation.h
44 ${libmlk-core_SOURCE_DIR}/core/clock.c
45 ${libmlk-core_SOURCE_DIR}/core/clock.h
46 ${libmlk-core_SOURCE_DIR}/core/color.h
47 ${libmlk-core_SOURCE_DIR}/core/core.c
48 ${libmlk-core_SOURCE_DIR}/core/core.h
49 ${libmlk-core_SOURCE_DIR}/core/core_p.h
50 ${libmlk-core_SOURCE_DIR}/core/drawable.c
51 ${libmlk-core_SOURCE_DIR}/core/drawable.h
52 ${libmlk-core_SOURCE_DIR}/core/error.c
53 ${libmlk-core_SOURCE_DIR}/core/error.h
54 ${libmlk-core_SOURCE_DIR}/core/event.c
55 ${libmlk-core_SOURCE_DIR}/core/event.h
56 ${libmlk-core_SOURCE_DIR}/core/font.c
57 ${libmlk-core_SOURCE_DIR}/core/font.h
58 ${libmlk-core_SOURCE_DIR}/core/game.c
59 ${libmlk-core_SOURCE_DIR}/core/game.h
60 ${libmlk-core_SOURCE_DIR}/core/image.c
61 ${libmlk-core_SOURCE_DIR}/core/image.h
62 ${libmlk-core_SOURCE_DIR}/core/inhibit.h
63 ${libmlk-core_SOURCE_DIR}/core/key.h
64 ${libmlk-core_SOURCE_DIR}/core/maths.c
65 ${libmlk-core_SOURCE_DIR}/core/maths.h
66 ${libmlk-core_SOURCE_DIR}/core/mouse.h
67 ${libmlk-core_SOURCE_DIR}/core/music.c
68 ${libmlk-core_SOURCE_DIR}/core/music.h
69 ${libmlk-core_SOURCE_DIR}/core/painter.c
70 ${libmlk-core_SOURCE_DIR}/core/painter.h
71 ${libmlk-core_SOURCE_DIR}/core/panic.c
72 ${libmlk-core_SOURCE_DIR}/core/panic.h
73 ${libmlk-core_SOURCE_DIR}/core/save.c
74 ${libmlk-core_SOURCE_DIR}/core/save.h
75 ${libmlk-core_SOURCE_DIR}/core/script.c
76 ${libmlk-core_SOURCE_DIR}/core/script.h
77 ${libmlk-core_SOURCE_DIR}/core/sound.c
78 ${libmlk-core_SOURCE_DIR}/core/sound.h
79 ${libmlk-core_SOURCE_DIR}/core/sprite.c
80 ${libmlk-core_SOURCE_DIR}/core/sprite.h
81 ${libmlk-core_SOURCE_DIR}/core/state.c
82 ${libmlk-core_SOURCE_DIR}/core/state.h
83 ${libmlk-core_SOURCE_DIR}/core/sys.c
84 ${libmlk-core_SOURCE_DIR}/core/sys.h
85 ${libmlk-core_SOURCE_DIR}/core/sysconfig.h.in
86 ${libmlk-core_SOURCE_DIR}/core/texture.c
87 ${libmlk-core_SOURCE_DIR}/core/texture.h
88 ${libmlk-core_SOURCE_DIR}/core/texture_p.h
89 ${libmlk-core_SOURCE_DIR}/core/trace.c
90 ${libmlk-core_SOURCE_DIR}/core/trace.h
91 ${libmlk-core_SOURCE_DIR}/core/translate.c
92 ${libmlk-core_SOURCE_DIR}/core/translate.h
93 ${libmlk-core_SOURCE_DIR}/core/util.c
94 ${libmlk-core_SOURCE_DIR}/core/util.h
95 ${libmlk-core_SOURCE_DIR}/core/wait.c
96 ${libmlk-core_SOURCE_DIR}/core/wait.h
97 ${libmlk-core_SOURCE_DIR}/core/window.c
98 ${libmlk-core_SOURCE_DIR}/core/window.h
99 ${libmlk-core_SOURCE_DIR}/core/window_p.h
100 )
101
102 configure_file(
103 ${libmlk-core_SOURCE_DIR}/core/sysconfig.h.in
104 ${libmlk-core_BINARY_DIR}/sysconfig.h
105 )
106
107 check_library_exists(m sqrt "" LIBM)
108
109 if (MOLKO_WITH_NLS AND Intl_FOUND)
110 list(APPEND LIBS ${Intl_LIBRARIES})
111 list(APPEND INCS ${Intl_INCLUDE_DIRS})
112 endif ()
113
114 molko_define_library(
115 TARGET libmlk-core
116 SOURCES ${SOURCES} ${ASSETS} ${PO}
117 ASSETS ${ASSETS}
118 TRANSLATIONS fr
119 LIBRARIES
120 ${LIBS}
121 $<$<BOOL:${LIBM}>:m>
122 libsqlite
123 SDL2::SDL2
124 SDL2::image
125 SDL2::mixer
126 SDL2::ttf
127 PRIVATE_FLAGS
128 BINDIR="${CMAKE_INSTALL_BINDIR}"
129 PREFIX="${CMAKE_INSTALL_PREFIX}"
130 SHAREDIR="${CMAKE_INSTALL_DATADIR}"
131 PUBLIC_FLAGS
132 _XOPEN_SOURCE=700
133 PUBLIC_INCLUDES
134 ${INCS}
135 $<BUILD_INTERFACE:${libmlk-core_SOURCE_DIR}>
136 $<BUILD_INTERFACE:${libmlk-core_BINARY_DIR}>
137 )
138
139 source_group(TREE ${libmlk-core_SOURCE_DIR} FILES ${SOURCES})
140 source_group(TREE ${libmlk-core_SOURCE_DIR} FILES ${ASSETS})
141 source_group(TREE ${libmlk-core_SOURCE_DIR} FILES ${PO})