add option WITH_BUILTIN_GLEW, so linux packagers can disable to use their own glew...
[blender.git] / intern / ghost / CMakeLists.txt
index 1e1380d..0d7a64d 100644 (file)
@@ -1,13 +1,10 @@
 # $Id$
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** BEGIN GPL LICENSE BLOCK *****
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License.  See http://www.blender.org/BL/ for information
-# about this.
+# of the License, or (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,7 +13,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 # The Original Code is Copyright (C) 2006, Blender Foundation
 # All rights reserved.
 #
 # Contributor(s): Jacques Beaurain.
 #
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
-
-SET(INC . ../string ${WINTAB_INC})
-
-FILE(GLOB SRC intern/*.cpp)
-
-IF(APPLE)
-  LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_DisplayManagerWin32.cpp")
-  LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemWin32.cpp")
-  LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowWin32.cpp")
-  LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_DisplayManagerX11.cpp")
-  LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemX11.cpp")
-  LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowX11.cpp")
-ELSE(APPLE)
-  IF(WIN32)
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_DisplayManagerCarbon.cpp")
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemCarbon.cpp")
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowCarbon.cpp")
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_DisplayManagerX11.cpp")
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemX11.cpp")
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowX11.cpp")
-  ELSE(WIN32)
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_DisplayManagerWin32.cpp")
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemWin32.cpp")
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowWin32.cpp")
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_DisplayManagerCarbon.cpp")
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemCarbon.cpp")
-    LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowCarbon.cpp")
-  ENDIF(WIN32)
-ENDIF(APPLE)
-
-BLENDERLIB(bf_ghost "${SRC}" "${INC}")
-#, libtype=['core','player'], priority = [25,15] ) 
+# ***** END GPL LICENSE BLOCK *****
+
+set(INC
+       .
+       ../string
+       ../../source/blender/imbuf
+       ../../source/blender/makesdna
+    ${GLEW_INCLUDE_PATH}
+)
+
+set(SRC
+       intern/GHOST_Buttons.cpp
+       intern/GHOST_CallbackEventConsumer.cpp
+       intern/GHOST_C-api.cpp
+       intern/GHOST_Path-api.cpp
+       intern/GHOST_DisplayManager.cpp
+       intern/GHOST_EventManager.cpp
+       intern/GHOST_EventPrinter.cpp
+       intern/GHOST_ISystem.cpp
+       intern/GHOST_ISystemPaths.cpp
+       intern/GHOST_ModifierKeys.cpp
+       intern/GHOST_NDOFManager.cpp
+       intern/GHOST_Path-api.cpp
+       intern/GHOST_Rect.cpp
+       intern/GHOST_System.cpp
+       intern/GHOST_TimerManager.cpp
+       intern/GHOST_Window.cpp
+       intern/GHOST_WindowManager.cpp
+
+       GHOST_C-api.h
+       GHOST_IEvent.h
+       GHOST_IEventConsumer.h
+       GHOST_ISystem.h
+       GHOST_ISystemPaths.h
+       GHOST_ITimerTask.h
+       GHOST_IWindow.h
+       GHOST_Path-api.h
+       GHOST_Rect.h
+       GHOST_Types.h
+       intern/GHOST_Buttons.h
+       intern/GHOST_CallbackEventConsumer.h
+       intern/GHOST_Debug.h
+       intern/GHOST_DisplayManager.h
+       intern/GHOST_Event.h
+       intern/GHOST_EventButton.h
+       intern/GHOST_EventCursor.h
+       intern/GHOST_EventDragnDrop.h
+       intern/GHOST_EventKey.h
+       intern/GHOST_EventManager.h
+       intern/GHOST_EventNDOF.h
+       intern/GHOST_EventPrinter.h
+       intern/GHOST_EventString.h
+       intern/GHOST_EventTrackpad.h
+       intern/GHOST_EventWheel.h
+       intern/GHOST_ModifierKeys.h
+       intern/GHOST_NDOFManager.h
+       intern/GHOST_System.h
+       intern/GHOST_SystemPaths.h
+       intern/GHOST_TimerManager.h
+       intern/GHOST_TimerTask.h
+       intern/GHOST_Window.h
+       intern/GHOST_WindowManager.h
+)
+
+if(APPLE)
+       if(WITH_COCOA)
+               list(APPEND SRC
+                       intern/GHOST_DisplayManagerCocoa.mm
+                       intern/GHOST_SystemCocoa.mm
+                       intern/GHOST_SystemPathsCocoa.mm
+                       intern/GHOST_WindowCocoa.mm
+                       
+                       intern/GHOST_DisplayManagerCocoa.h
+                       intern/GHOST_SystemCocoa.h
+                       intern/GHOST_SystemPathsCocoa.h
+                       intern/GHOST_WindowCocoa.h
+               )
+       else()
+               list(APPEND SRC
+                       intern/GHOST_DisplayManagerCarbon.cpp
+                       intern/GHOST_SystemCarbon.cpp
+                       intern/GHOST_SystemPathsCarbon.cpp
+                       intern/GHOST_WindowCarbon.cpp
+
+                       intern/GHOST_DisplayManagerCarbon.h
+                       intern/GHOST_SystemCarbon.h
+                       intern/GHOST_SystemPathsCarbon.h
+                       intern/GHOST_WindowCarbon.h
+               )
+       endif()
+
+       if(WITH_CODEC_QUICKTIME)
+               add_definitions(-DWITH_QUICKTIME)
+       endif()
+
+elseif(UNIX)
+
+       if(WITH_X11_XINPUT)
+               add_definitions(-DWITH_X11_XINPUT)
+       endif()
+
+       list(APPEND INC ${X11_X11_INCLUDE_PATH})
+
+       list(APPEND SRC
+               intern/GHOST_DisplayManagerX11.cpp
+               intern/GHOST_SystemX11.cpp
+               intern/GHOST_SystemPathsX11.cpp
+               intern/GHOST_WindowX11.cpp
+
+               intern/GHOST_DisplayManagerX11.h
+               intern/GHOST_SystemX11.h
+               intern/GHOST_SystemPathsX11.h
+               intern/GHOST_WindowX11.h
+       )
+
+       if(NOT WITH_INSTALL_PORTABLE)
+               add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
+       endif()
+
+       if(X11_XF86keysym_INCLUDE_PATH)
+               add_definitions(-DWITH_XF86KEYSYM)
+               list(APPEND INC ${X11_XF86keysym_INCLUDE_PATH})
+       endif()
+
+elseif(WIN32)
+       if(MSVC)
+               set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
+       endif()
+
+       list(APPEND INC ${WINTAB_INC})
+
+       list(APPEND SRC
+               intern/GHOST_DisplayManagerWin32.cpp
+               intern/GHOST_SystemWin32.cpp
+               intern/GHOST_SystemPathsWin32.cpp
+               intern/GHOST_WindowWin32.cpp
+               intern/GHOST_DropTargetWin32.cpp
+
+               intern/GHOST_DisplayManagerWin32.h
+               intern/GHOST_DropTargetWin32.h
+               intern/GHOST_SystemWin32.h
+               intern/GHOST_SystemPathsWin32.h
+               intern/GHOST_WindowWin32.h
+               intern/GHOST_TaskbarWin32.h
+       )
+endif()
+
+blender_add_lib(bf_intern_ghost "${SRC}" "${INC}")
+