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