Merged changes in the trunk up to revision 54421.
[blender.git] / intern / ghost / CMakeLists.txt
1 # ***** BEGIN GPL LICENSE BLOCK *****
2 #
3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software Foundation,
15 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 #
17 # The Original Code is Copyright (C) 2006, Blender Foundation
18 # All rights reserved.
19 #
20 # The Original Code is: all of this file.
21 #
22 # Contributor(s): Jacques Beaurain.
23 #
24 # ***** END GPL LICENSE BLOCK *****
25
26 set(INC
27         .
28         ../string
29         ../../source/blender/imbuf
30         ../../source/blender/makesdna
31 )
32
33 set(INC_SYS
34         ${GLEW_INCLUDE_PATH}
35 )
36
37 set(SRC
38         intern/GHOST_Buttons.cpp
39         intern/GHOST_C-api.cpp
40         intern/GHOST_CallbackEventConsumer.cpp
41         intern/GHOST_DisplayManager.cpp
42         intern/GHOST_EventManager.cpp
43         intern/GHOST_ISystem.cpp
44         intern/GHOST_ISystemPaths.cpp
45         intern/GHOST_ModifierKeys.cpp
46         intern/GHOST_Path-api.cpp
47         intern/GHOST_Path-api.cpp
48         intern/GHOST_Rect.cpp
49         intern/GHOST_System.cpp
50         intern/GHOST_TimerManager.cpp
51         intern/GHOST_Window.cpp
52         intern/GHOST_WindowManager.cpp
53
54         GHOST_C-api.h
55         GHOST_IEvent.h
56         GHOST_IEventConsumer.h
57         GHOST_ISystem.h
58         GHOST_ISystemPaths.h
59         GHOST_ITimerTask.h
60         GHOST_IWindow.h
61         GHOST_Path-api.h
62         GHOST_Rect.h
63         GHOST_Types.h
64
65         intern/GHOST_Buttons.h
66         intern/GHOST_CallbackEventConsumer.h
67         intern/GHOST_Debug.h
68         intern/GHOST_DisplayManager.h
69         intern/GHOST_Event.h
70         intern/GHOST_EventButton.h
71         intern/GHOST_EventCursor.h
72         intern/GHOST_EventDragnDrop.h
73         intern/GHOST_EventKey.h
74         intern/GHOST_EventManager.h
75         intern/GHOST_EventString.h
76         intern/GHOST_EventTrackpad.h
77         intern/GHOST_EventWheel.h
78         intern/GHOST_ModifierKeys.h
79         intern/GHOST_System.h
80         intern/GHOST_SystemPaths.h
81         intern/GHOST_TimerManager.h
82         intern/GHOST_TimerTask.h
83         intern/GHOST_Window.h
84         intern/GHOST_WindowManager.h
85 )
86
87 if(WITH_GHOST_DEBUG)
88         list(APPEND SRC
89                 intern/GHOST_EventPrinter.cpp
90
91                 intern/GHOST_EventPrinter.h
92         )
93         add_definitions(-DWITH_GHOST_DEBUG)
94 endif()
95
96 if(WITH_INPUT_NDOF)
97         add_definitions(-DWITH_INPUT_NDOF)
98
99         list(APPEND SRC
100                 intern/GHOST_NDOFManager.cpp
101
102                 intern/GHOST_EventNDOF.h
103                 intern/GHOST_NDOFManager.h
104         )
105
106         list(APPEND INC_SYS
107                 ${NDOF_INCLUDE_DIRS}
108         )
109 endif()
110
111 if(WITH_HEADLESS OR WITH_GHOST_SDL)
112         if(WITH_HEADLESS)
113                 list(APPEND SRC
114                         intern/GHOST_DisplayManagerNULL.h
115                         intern/GHOST_SystemNULL.h
116                         intern/GHOST_WindowNULL.h
117                 )
118                 add_definitions(-DWITH_HEADLESS)
119         else()
120                 list(APPEND SRC
121                         intern/GHOST_DisplayManagerSDL.cpp
122                         intern/GHOST_SystemSDL.cpp
123                         intern/GHOST_WindowSDL.cpp
124
125                         intern/GHOST_DisplayManagerSDL.h
126                         intern/GHOST_SystemSDL.h
127                         intern/GHOST_WindowSDL.h
128                 )
129                 add_definitions(-DWITH_GHOST_SDL)
130         endif()
131
132
133         # ack, this is still system dependant
134         if(APPLE)
135                 if(WITH_COCOA)
136                         list(APPEND SRC
137                                 intern/GHOST_SystemPathsCocoa.mm
138                                 intern/GHOST_SystemPathsCocoa.h
139                         )
140                 else()
141                         list(APPEND SRC
142                                 intern/GHOST_SystemPathsCarbon.cpp
143                                 intern/GHOST_SystemPathsCarbon.h
144                         )
145                 endif()
146
147         elseif(UNIX)
148                 list(APPEND SRC
149                         intern/GHOST_SystemPathsX11.cpp
150                         intern/GHOST_SystemPathsX11.h
151                 )
152
153                 if(NOT WITH_INSTALL_PORTABLE)
154                         add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
155                 endif()
156
157         elseif(WIN32)
158                 list(APPEND SRC
159                         intern/GHOST_SystemPathsWin32.cpp
160
161                         intern/GHOST_SystemPathsWin32.h
162                 )
163
164                 list(APPEND INC
165                         ../utfconv
166                 )
167         endif()
168
169         if(NOT WITH_HEADLESS)
170                 list(APPEND INC_SYS
171                         ${SDL_INCLUDE_DIR}
172                 )
173         endif()
174
175 elseif(APPLE)
176         if(WITH_COCOA)
177                 list(APPEND SRC
178                         intern/GHOST_DisplayManagerCocoa.mm
179                         intern/GHOST_SystemCocoa.mm
180                         intern/GHOST_SystemPathsCocoa.mm
181                         intern/GHOST_WindowCocoa.mm
182
183                         intern/GHOST_DisplayManagerCocoa.h
184                         intern/GHOST_SystemCocoa.h
185                         intern/GHOST_SystemPathsCocoa.h
186                         intern/GHOST_WindowCocoa.h
187                 )
188
189                 if(WITH_INPUT_NDOF)
190                         list(APPEND SRC
191                                 intern/GHOST_NDOFManagerCocoa.mm
192                                 intern/GHOST_NDOFManagerCocoa.h
193                         )
194                 endif()
195
196         else()
197                 list(APPEND SRC
198                         intern/GHOST_DisplayManagerCarbon.cpp
199                         intern/GHOST_SystemCarbon.cpp
200                         intern/GHOST_SystemPathsCarbon.cpp
201                         intern/GHOST_WindowCarbon.cpp
202
203                         intern/GHOST_DisplayManagerCarbon.h
204                         intern/GHOST_SystemCarbon.h
205                         intern/GHOST_SystemPathsCarbon.h
206                         intern/GHOST_WindowCarbon.h
207                 )
208         endif()
209
210         if(WITH_CODEC_QUICKTIME)
211                 add_definitions(-DWITH_QUICKTIME)
212         endif()
213
214 elseif(UNIX)
215
216         list(APPEND INC_SYS
217                 ${X11_X11_INCLUDE_PATH}
218         )
219
220         list(APPEND SRC
221                 intern/GHOST_DisplayManagerX11.cpp
222                 intern/GHOST_SystemX11.cpp
223                 intern/GHOST_SystemPathsX11.cpp
224                 intern/GHOST_WindowX11.cpp
225
226                 intern/GHOST_DisplayManagerX11.h
227                 intern/GHOST_SystemX11.h
228                 intern/GHOST_SystemPathsX11.h
229                 intern/GHOST_WindowX11.h
230         )
231
232         if(WITH_GHOST_XDND)
233                 add_definitions(-DWITH_XDND)
234
235                 list(APPEND INC
236                         ../../extern/xdnd
237                 )
238
239                 list(APPEND SRC
240                         intern/GHOST_DropTargetX11.cpp
241
242                         intern/GHOST_DropTargetX11.h
243                 )
244         endif()
245
246         if(X11_XF86keysym_INCLUDE_PATH)
247                 add_definitions(-DWITH_XF86KEYSYM)
248                 list(APPEND INC_SYS
249                         ${X11_XF86keysym_INCLUDE_PATH}
250                 )
251         endif()
252
253         if(WITH_X11_XF86VMODE)
254                 add_definitions(-DWITH_X11_XF86VMODE)
255                 list(APPEND INC_SYS
256                         ${X11_xf86vmode_INCLUDE_PATH}
257                 )
258         endif()
259
260         if(WITH_INPUT_NDOF)
261                 list(APPEND SRC
262                         intern/GHOST_NDOFManagerX11.cpp
263
264                         intern/GHOST_NDOFManagerX11.h
265                 )
266         endif()
267
268         if(NOT WITH_INSTALL_PORTABLE)
269                 add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
270         endif()
271
272         if(WITH_X11_XINPUT)
273                 add_definitions(-DWITH_X11_XINPUT)
274                 list(APPEND INC_SYS
275                         ${X11_Xinput_INCLUDE_PATH}
276                 )
277         endif()
278
279 elseif(WIN32)
280         ## Warnings as errors, this is too strict!
281         #if(MSVC)
282         #       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
283         #endif()
284
285         list(APPEND INC_SYS
286                 ${WINTAB_INC}
287         )
288
289         list(APPEND INC
290                 ../utfconv
291         )
292
293         list(APPEND SRC
294                 intern/GHOST_DisplayManagerWin32.cpp
295                 intern/GHOST_SystemWin32.cpp
296                 intern/GHOST_SystemPathsWin32.cpp
297                 intern/GHOST_WindowWin32.cpp
298                 intern/GHOST_DropTargetWin32.cpp
299
300                 intern/GHOST_DisplayManagerWin32.h
301                 intern/GHOST_DropTargetWin32.h
302                 intern/GHOST_SystemWin32.h
303                 intern/GHOST_SystemPathsWin32.h
304                 intern/GHOST_WindowWin32.h
305                 intern/GHOST_TaskbarWin32.h
306         )
307
308         if(WITH_INPUT_NDOF)
309                 list(APPEND SRC
310                         intern/GHOST_NDOFManagerWin32.cpp
311
312                         intern/GHOST_NDOFManagerWin32.h
313                 )
314         endif()
315
316 endif()
317
318 blender_add_lib(bf_intern_ghost "${SRC}" "${INC}" "${INC_SYS}")
319