comparison OrthancStone/Sources/Platforms/Sdl/SdlConfiguration.cmake @ 1899:917500c46fe0

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