Mercurial > hg > orthanc-stone
comparison OrthancStone/Resources/CMake/SdlConfiguration.cmake @ 1901:184b0aeae1af
fix build of sdl
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 29 Jan 2022 16:55:14 +0100 |
parents | OrthancStone/Sources/Platforms/Sdl/SdlConfiguration.cmake@563f6aa8e24c |
children | 07964689cb0b |
comparison
equal
deleted
inserted
replaced
1900:563f6aa8e24c | 1901:184b0aeae1af |
---|---|
1 # Stone of Orthanc | |
2 # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics | |
3 # Department, University Hospital of Liege, Belgium | |
4 # Copyright (C) 2017-2022 Osimis S.A., Belgium | |
5 # Copyright (C) 2021-2022 Sebastien Jodogne, ICTEAM UCLouvain, Belgium | |
6 # | |
7 # This program is free software: you can redistribute it and/or | |
8 # modify it under the terms of the GNU Lesser General Public License | |
9 # as published by the Free Software Foundation, either version 3 of | |
10 # the License, or (at your option) any later version. | |
11 # | |
12 # This program is distributed in the hope that it will be useful, but | |
13 # WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 # Lesser General Public License for more details. | |
16 # | |
17 # You should have received a copy of the GNU Lesser General Public | |
18 # License along with this program. If not, see | |
19 # <http://www.gnu.org/licenses/>. | |
20 | |
21 | |
22 if (STATIC_BUILD OR NOT USE_SYSTEM_SDL) | |
23 SET(SDL_SOURCES_DIR ${CMAKE_BINARY_DIR}/SDL2-2.0.4) | |
24 SET(SDL_URL "http://orthanc.osimis.io/ThirdPartyDownloads/SDL2-2.0.4.tar.gz") | |
25 SET(SDL_MD5 "44fc4a023349933e7f5d7a582f7b886e") | |
26 DownloadPackage(${SDL_MD5} ${SDL_URL} "${SDL_SOURCES_DIR}") | |
27 | |
28 include_directories(${SDL_SOURCES_DIR}/include) | |
29 | |
30 set(TMP "${SDL_SOURCES_DIR}/include/SDL_config_premake.h") | |
31 if (NOT EXISTS "${TMP}") | |
32 file(WRITE "${TMP}" " | |
33 #include \"SDL_platform.h\" | |
34 #define HAVE_STDARG_H 1 | |
35 #define HAVE_STDDEF_H 1 | |
36 #define HAVE_STDINT_H 1 | |
37 ") | |
38 endif() | |
39 | |
40 # General source files | |
41 file(GLOB SDL_SOURCES | |
42 ${SDL_SOURCES_DIR}/src/*.c | |
43 ${SDL_SOURCES_DIR}/src/atomic/*.c | |
44 ${SDL_SOURCES_DIR}/src/audio/*.c | |
45 ${SDL_SOURCES_DIR}/src/cpuinfo/*.c | |
46 ${SDL_SOURCES_DIR}/src/dynapi/*.c | |
47 ${SDL_SOURCES_DIR}/src/events/*.c | |
48 ${SDL_SOURCES_DIR}/src/file/*.c | |
49 ${SDL_SOURCES_DIR}/src/haptic/*.c | |
50 ${SDL_SOURCES_DIR}/src/joystick/*.c | |
51 ${SDL_SOURCES_DIR}/src/libm/*.c | |
52 ${SDL_SOURCES_DIR}/src/power/*.c | |
53 ${SDL_SOURCES_DIR}/src/render/*.c | |
54 ${SDL_SOURCES_DIR}/src/stdlib/*.c | |
55 ${SDL_SOURCES_DIR}/src/thread/*.c | |
56 ${SDL_SOURCES_DIR}/src/timer/*.c | |
57 ${SDL_SOURCES_DIR}/src/video/*.c | |
58 | |
59 ${SDL_SOURCES_DIR}/src/loadso/dummy/*.c | |
60 #${SDL_SOURCES_DIR}/src/timer/dummy/*.c | |
61 ${SDL_SOURCES_DIR}/src/audio/dummy/*.c | |
62 ${SDL_SOURCES_DIR}/src/filesystem/dummy/*.c | |
63 ${SDL_SOURCES_DIR}/src/haptic/dummy/*.c | |
64 ${SDL_SOURCES_DIR}/src/joystick/dummy/*.c | |
65 #${SDL_SOURCES_DIR}/src/main/dummy/*.c | |
66 ${SDL_SOURCES_DIR}/src/video/dummy/*.c | |
67 ) | |
68 | |
69 add_definitions( | |
70 -DUSING_PREMAKE_CONFIG_H=1 | |
71 | |
72 -DSDL_AUDIO_DISABLED=1 | |
73 -DSDL_AUDIO_DRIVER_DUMMY=1 | |
74 -DSDL_FILESYSTEM_DISABLED=1 | |
75 -DSDL_FILESYSTEM_DUMMY=1 | |
76 -DSDL_FILE_DISABLED=1 | |
77 -DSDL_HAPTIC_DISABLED=1 | |
78 -DSDL_JOYSTICK_DISABLED=1 | |
79 | |
80 #-DSDL_THREADS_DISABLED=1 | |
81 ) | |
82 | |
83 if (CMAKE_SYSTEM_NAME STREQUAL "Linux") | |
84 file(GLOB TMP | |
85 ${SDL_SOURCES_DIR}/src/core/linux/*.c | |
86 ${SDL_SOURCES_DIR}/src/loadso/dlopen/*.c | |
87 ${SDL_SOURCES_DIR}/src/render/software/*.c | |
88 ${SDL_SOURCES_DIR}/src/thread/pthread/*.c | |
89 ${SDL_SOURCES_DIR}/src/timer/unix/*.c | |
90 ${SDL_SOURCES_DIR}/src/video/x11/*.c | |
91 ) | |
92 | |
93 list(APPEND SDL_SOURCES ${TMP}) | |
94 | |
95 add_definitions( | |
96 -DSDL_LOADSO_DLOPEN=1 | |
97 -DSDL_THREAD_PTHREAD=1 | |
98 -DSDL_TIMER_UNIX=1 | |
99 -DSDL_POWER_DISABLED=1 | |
100 | |
101 -DSDL_VIDEO_DRIVER_X11=1 | |
102 | |
103 -DSDL_ASSEMBLY_ROUTINES=1 | |
104 -DSDL_THREAD_PTHREAD_RECURSIVE_MUTEX=1 | |
105 -DSDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS=1 | |
106 -DHAVE_GCC_SYNC_LOCK_TEST_AND_SET=1 | |
107 ) | |
108 | |
109 link_libraries(X11 Xext) | |
110 | |
111 if (NOT CMAKE_SYSTEM_VERSION STREQUAL "Raspberry") | |
112 # Raspberry Pi has no support for OpenGL | |
113 file(GLOB TMP | |
114 ${SDL_SOURCES_DIR}/src/render/opengl/*.c | |
115 ${SDL_SOURCES_DIR}/src/render/opengles2/*.c | |
116 ) | |
117 | |
118 list(APPEND SDL_SOURCES ${TMP}) | |
119 | |
120 add_definitions( | |
121 -DSDL_VIDEO_OPENGL=1 | |
122 -DSDL_VIDEO_OPENGL_ES2=1 | |
123 -DSDL_VIDEO_RENDER_OGL=1 | |
124 -DSDL_VIDEO_RENDER_OGL_ES2=1 | |
125 -DSDL_VIDEO_OPENGL_GLX=1 | |
126 -DSDL_VIDEO_OPENGL_EGL=1 | |
127 ) | |
128 endif() | |
129 | |
130 elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows") | |
131 file(GLOB TMP | |
132 ${SDL_SOURCES_DIR}/src/audio/directsound/*.c | |
133 ${SDL_SOURCES_DIR}/src/audio/disk/*.c | |
134 ${SDL_SOURCES_DIR}/src/audio/winmm/*.c | |
135 ${SDL_SOURCES_DIR}/src/joystick/windows/*.c | |
136 ${SDL_SOURCES_DIR}/src/haptic/windows/*.c | |
137 ${SDL_SOURCES_DIR}/src/power/windows/*.c | |
138 | |
139 ${SDL_SOURCES_DIR}/src/main/windows/*.c | |
140 ${SDL_SOURCES_DIR}/src/core/windows/*.c | |
141 ${SDL_SOURCES_DIR}/src/loadso/windows/*.c | |
142 ${SDL_SOURCES_DIR}/src/render/direct3d/*.c | |
143 ${SDL_SOURCES_DIR}/src/render/direct3d11/*.c | |
144 ${SDL_SOURCES_DIR}/src/render/opengl/*.c | |
145 ${SDL_SOURCES_DIR}/src/render/psp/*.c | |
146 ${SDL_SOURCES_DIR}/src/render/opengles/*.c | |
147 ${SDL_SOURCES_DIR}/src/render/opengles2/*.c | |
148 ${SDL_SOURCES_DIR}/src/render/software/*.c | |
149 ${SDL_SOURCES_DIR}/src/thread/generic/SDL_syscond.c # Don't include more files from "thread/generic/*.c"! | |
150 ${SDL_SOURCES_DIR}/src/thread/windows/*.c | |
151 ${SDL_SOURCES_DIR}/src/timer/windows/*.c | |
152 ${SDL_SOURCES_DIR}/src/video/windows/*.c | |
153 ${SDL_SOURCES_DIR}/src/windows/dlopen/*.c | |
154 ) | |
155 | |
156 list(APPEND SDL_SOURCES ${TMP}) | |
157 | |
158 # NB: OpenGL ES headers are not available in MinGW-W64 | |
159 add_definitions( | |
160 -DSDL_LOADSO_WINDOWS=1 | |
161 -DSDL_THREAD_WINDOWS=1 | |
162 -DSDL_TIMER_WINDOWS=1 | |
163 -DSDL_POWER_WINDOWS=1 | |
164 | |
165 -DSDL_VIDEO_OPENGL=1 | |
166 -DSDL_VIDEO_OPENGL_WGL=1 | |
167 -DSDL_VIDEO_RENDER_D3D=1 | |
168 -DSDL_VIDEO_RENDER_OGL=1 | |
169 -DSDL_VIDEO_DRIVER_WINDOWS=1 | |
170 ) | |
171 | |
172 if (MSVC) | |
173 add_definitions( | |
174 -D__FLTUSED__ | |
175 -DHAVE_LIBC=1 | |
176 ) | |
177 else() | |
178 add_definitions( | |
179 -DHAVE_GCC_ATOMICS=1 | |
180 -DSDL_ASSEMBLY_ROUTINES=1 | |
181 ) | |
182 endif() | |
183 | |
184 link_libraries(imm32 winmm version) | |
185 | |
186 elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin") | |
187 file(GLOB TMP | |
188 ${SDL_SOURCES_DIR}/src/loadso/dlopen/*.c | |
189 ${SDL_SOURCES_DIR}/src/render/opengl/*.c | |
190 ${SDL_SOURCES_DIR}/src/render/opengles2/*.c | |
191 ${SDL_SOURCES_DIR}/src/render/software/*.c | |
192 ${SDL_SOURCES_DIR}/src/thread/pthread/*.c | |
193 ${SDL_SOURCES_DIR}/src/timer/unix/*.c | |
194 ${SDL_SOURCES_DIR}/src/video/cocoa/*.m | |
195 ) | |
196 | |
197 list(APPEND SDL_SOURCES ${TMP}) | |
198 | |
199 add_definitions( | |
200 -DSDL_LOADSO_DLOPEN=1 | |
201 -DSDL_THREAD_PTHREAD=1 | |
202 -DSDL_TIMER_UNIX=1 | |
203 -DSDL_POWER_DISABLED=1 | |
204 | |
205 -DSDL_VIDEO_DRIVER_COCOA=1 | |
206 -DSDL_VIDEO_OPENGL=1 | |
207 -DSDL_VIDEO_OPENGL_CGL=1 | |
208 -DSDL_VIDEO_RENDER_OGL=1 | |
209 | |
210 -DSDL_ASSEMBLY_ROUTINES=1 | |
211 -DSDL_THREAD_PTHREAD_RECURSIVE_MUTEX=1 | |
212 ) | |
213 | |
214 find_library(CARBON_LIBRARY Carbon) | |
215 find_library(COCOA_LIBRARY Cocoa) | |
216 find_library(IOKIT_LIBRARY IOKit) | |
217 find_library(QUARTZ_LIBRARY QuartzCore) | |
218 link_libraries(${CARBON_LIBRARY} ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${QUARTZ_LIBRARY}) | |
219 | |
220 endif() | |
221 | |
222 else() | |
223 pkg_search_module(SDL2 REQUIRED sdl2) | |
224 include_directories(${SDL2_INCLUDE_DIRS}) | |
225 link_libraries(${SDL2_LIBRARIES}) | |
226 endif() |