0
|
1 if (STATIC_BUILD OR NOT USE_SYSTEM_SDL)
|
|
2 SET(SDL_SOURCES_DIR ${CMAKE_BINARY_DIR}/SDL2-2.0.4)
|
|
3 SET(SDL_URL "http://www.montefiore.ulg.ac.be/~jodogne/Orthanc/ThirdPartyDownloads/Stone/SDL2-2.0.4.tar.gz")
|
|
4 SET(SDL_MD5 "44fc4a023349933e7f5d7a582f7b886e")
|
|
5
|
|
6 DownloadPackage(${SDL_MD5} ${SDL_URL} "${SDL_SOURCES_DIR}")
|
|
7
|
|
8 include_directories(${SDL_SOURCES_DIR}/include)
|
|
9
|
|
10 set(TMP "${SDL_SOURCES_DIR}/include/SDL_config_premake.h")
|
|
11 if (NOT EXISTS "${TMP}")
|
|
12 file(WRITE "${TMP}" "
|
|
13 #include \"SDL_platform.h\"
|
|
14 #define HAVE_STDARG_H 1
|
|
15 #define HAVE_STDDEF_H 1
|
|
16 #define HAVE_STDINT_H 1
|
|
17 ")
|
|
18 endif()
|
|
19
|
|
20 # General source files
|
|
21 file(GLOB SDL_SOURCES
|
|
22 ${SDL_SOURCES_DIR}/src/*.c
|
|
23 ${SDL_SOURCES_DIR}/src/atomic/*.c
|
|
24 ${SDL_SOURCES_DIR}/src/audio/*.c
|
|
25 ${SDL_SOURCES_DIR}/src/cpuinfo/*.c
|
|
26 ${SDL_SOURCES_DIR}/src/dynapi/*.c
|
|
27 ${SDL_SOURCES_DIR}/src/events/*.c
|
|
28 ${SDL_SOURCES_DIR}/src/file/*.c
|
|
29 ${SDL_SOURCES_DIR}/src/haptic/*.c
|
|
30 ${SDL_SOURCES_DIR}/src/joystick/*.c
|
|
31 ${SDL_SOURCES_DIR}/src/libm/*.c
|
|
32 ${SDL_SOURCES_DIR}/src/power/*.c
|
|
33 ${SDL_SOURCES_DIR}/src/render/*.c
|
|
34 ${SDL_SOURCES_DIR}/src/stdlib/*.c
|
|
35 ${SDL_SOURCES_DIR}/src/thread/*.c
|
|
36 ${SDL_SOURCES_DIR}/src/timer/*.c
|
|
37 ${SDL_SOURCES_DIR}/src/video/*.c
|
|
38
|
|
39 ${SDL_SOURCES_DIR}/src/loadso/dummy/*.c
|
|
40 #${SDL_SOURCES_DIR}/src/timer/dummy/*.c
|
|
41 ${SDL_SOURCES_DIR}/src/audio/dummy/*.c
|
|
42 ${SDL_SOURCES_DIR}/src/filesystem/dummy/*.c
|
|
43 ${SDL_SOURCES_DIR}/src/haptic/dummy/*.c
|
|
44 ${SDL_SOURCES_DIR}/src/joystick/dummy/*.c
|
|
45 #${SDL_SOURCES_DIR}/src/main/dummy/*.c
|
|
46 ${SDL_SOURCES_DIR}/src/video/dummy/*.c
|
|
47 )
|
|
48
|
|
49 add_definitions(
|
|
50 -DUSING_PREMAKE_CONFIG_H=1
|
|
51
|
|
52 -DSDL_AUDIO_DISABLED=1
|
|
53 -DSDL_AUDIO_DRIVER_DUMMY=1
|
|
54 -DSDL_FILESYSTEM_DISABLED=1
|
|
55 -DSDL_FILESYSTEM_DUMMY=1
|
|
56 -DSDL_FILE_DISABLED=1
|
|
57 -DSDL_HAPTIC_DISABLED=1
|
|
58 -DSDL_JOYSTICK_DISABLED=1
|
|
59
|
|
60 #-DSDL_THREADS_DISABLED=1
|
|
61 )
|
|
62
|
|
63 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|
64 file(GLOB TMP
|
|
65 ${SDL_SOURCES_DIR}/src/core/linux/*.c
|
|
66 ${SDL_SOURCES_DIR}/src/loadso/dlopen/*.c
|
|
67 ${SDL_SOURCES_DIR}/src/render/opengl/*.c
|
|
68 ${SDL_SOURCES_DIR}/src/render/opengles2/*.c
|
|
69 ${SDL_SOURCES_DIR}/src/render/software/*.c
|
|
70 ${SDL_SOURCES_DIR}/src/thread/pthread/*.c
|
|
71 ${SDL_SOURCES_DIR}/src/timer/unix/*.c
|
|
72 ${SDL_SOURCES_DIR}/src/video/x11/*.c
|
|
73 )
|
|
74
|
|
75 list(APPEND SDL_SOURCES ${TMP})
|
|
76
|
|
77 add_definitions(
|
|
78 -DSDL_LOADSO_DLOPEN=1
|
|
79 -DSDL_THREAD_PTHREAD=1
|
|
80 -DSDL_TIMER_UNIX=1
|
|
81 -DSDL_POWER_DISABLED=1
|
|
82
|
|
83 -DSDL_VIDEO_DRIVER_X11=1
|
|
84 -DSDL_VIDEO_OPENGL=1
|
|
85 -DSDL_VIDEO_OPENGL_ES2=1
|
|
86 -DSDL_VIDEO_RENDER_OGL=1
|
|
87 -DSDL_VIDEO_RENDER_OGL_ES2=1
|
|
88 -DSDL_VIDEO_OPENGL_GLX=1
|
|
89 -DSDL_VIDEO_OPENGL_EGL=1
|
|
90
|
|
91 -DSDL_ASSEMBLY_ROUTINES=1
|
|
92 -DSDL_THREAD_PTHREAD_RECURSIVE_MUTEX=1
|
|
93 -DSDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS=1
|
|
94 -DHAVE_GCC_SYNC_LOCK_TEST_AND_SET=1
|
|
95 )
|
|
96
|
|
97 link_libraries(X11 Xext)
|
|
98
|
|
99 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
|
100 file(GLOB TMP
|
|
101 ${SDL_SOURCES_DIR}/src/audio/directsound/*.c
|
|
102 ${SDL_SOURCES_DIR}/src/audio/disk/*.c
|
|
103 ${SDL_SOURCES_DIR}/src/audio/winmm/*.c
|
|
104 ${SDL_SOURCES_DIR}/src/joystick/windows/*.c
|
|
105 ${SDL_SOURCES_DIR}/src/haptic/windows/*.c
|
|
106 ${SDL_SOURCES_DIR}/src/power/windows/*.c
|
|
107
|
|
108 ${SDL_SOURCES_DIR}/src/main/windows/*.c
|
|
109 ${SDL_SOURCES_DIR}/src/core/windows/*.c
|
|
110 ${SDL_SOURCES_DIR}/src/loadso/windows/*.c
|
|
111 ${SDL_SOURCES_DIR}/src/render/direct3d/*.c
|
|
112 ${SDL_SOURCES_DIR}/src/render/direct3d11/*.c
|
|
113 ${SDL_SOURCES_DIR}/src/render/opengl/*.c
|
|
114 ${SDL_SOURCES_DIR}/src/render/psp/*.c
|
|
115 ${SDL_SOURCES_DIR}/src/render/opengles/*.c
|
|
116 ${SDL_SOURCES_DIR}/src/render/opengles2/*.c
|
|
117 ${SDL_SOURCES_DIR}/src/render/software/*.c
|
|
118 ${SDL_SOURCES_DIR}/src/thread/generic/SDL_syscond.c # Don't include more files from "thread/generic/*.c"!
|
|
119 ${SDL_SOURCES_DIR}/src/thread/windows/*.c
|
|
120 ${SDL_SOURCES_DIR}/src/timer/windows/*.c
|
|
121 ${SDL_SOURCES_DIR}/src/video/windows/*.c
|
|
122 ${SDL_SOURCES_DIR}/src/windows/dlopen/*.c
|
|
123 )
|
|
124
|
|
125 list(APPEND SDL_SOURCES ${TMP})
|
|
126
|
|
127 # NB: OpenGL ES headers are not available in MinGW-W64
|
|
128 add_definitions(
|
|
129 -DSDL_LOADSO_WINDOWS=1
|
|
130 -DSDL_THREAD_WINDOWS=1
|
|
131 -DSDL_TIMER_WINDOWS=1
|
|
132 -DSDL_POWER_WINDOWS=1
|
|
133
|
|
134 -DSDL_VIDEO_OPENGL=1
|
|
135 -DSDL_VIDEO_OPENGL_WGL=1
|
|
136 -DSDL_VIDEO_RENDER_D3D=1
|
|
137 -DSDL_VIDEO_RENDER_OGL=1
|
|
138 -DSDL_VIDEO_DRIVER_WINDOWS=1
|
|
139 )
|
|
140
|
|
141 if (MSVC)
|
|
142 add_definitions(
|
|
143 -D__FLTUSED__
|
|
144 -DHAVE_LIBC=1
|
|
145 )
|
|
146 else()
|
|
147 add_definitions(
|
|
148 -DHAVE_GCC_ATOMICS=1
|
|
149 -DSDL_ASSEMBLY_ROUTINES=1
|
|
150 )
|
|
151 endif()
|
|
152
|
|
153 link_libraries(imm32 winmm version)
|
|
154 endif()
|
|
155
|
|
156 else()
|
|
157 pkg_search_module(SDL2 REQUIRED sdl2)
|
|
158 include_directories(${SDL2_INCLUDE_DIRS})
|
|
159 link_libraries(${SDL2_LIBRARIES})
|
|
160 endif()
|