comparison Resources/CMake/SdlConfiguration.cmake @ 0:351ab0da0150

initial commit
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 14 Oct 2016 15:34:11 +0200
parents
children 490347621f42
comparison
equal deleted inserted replaced
-1:000000000000 0:351ab0da0150
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()