XDND support now can be disabled using WITH_GHOST_XDND=OFF with CMake and WITH_GHOST_...
[blender.git] / intern / ghost / CMakeLists.txt
index 41c70b7cd169e502f8dd5a3beb024a0f0849b20d..5693aea08658c14a80ce8e78dfa4228a37c225a7 100644 (file)
@@ -1,4 +1,3 @@
-# $Id$
 # ***** BEGIN GPL LICENSE BLOCK *****
 #
 # This program is free software; you can redistribute it and/or
@@ -37,15 +36,14 @@ set(INC_SYS
 
 set(SRC
        intern/GHOST_Buttons.cpp
-       intern/GHOST_CallbackEventConsumer.cpp
        intern/GHOST_C-api.cpp
-       intern/GHOST_Path-api.cpp
+       intern/GHOST_CallbackEventConsumer.cpp
        intern/GHOST_DisplayManager.cpp
        intern/GHOST_EventManager.cpp
        intern/GHOST_ISystem.cpp
        intern/GHOST_ISystemPaths.cpp
        intern/GHOST_ModifierKeys.cpp
-       intern/GHOST_NDOFManager.cpp
+       intern/GHOST_Path-api.cpp
        intern/GHOST_Path-api.cpp
        intern/GHOST_Rect.cpp
        intern/GHOST_System.cpp
@@ -63,6 +61,7 @@ set(SRC
        GHOST_Path-api.h
        GHOST_Rect.h
        GHOST_Types.h
+
        intern/GHOST_Buttons.h
        intern/GHOST_CallbackEventConsumer.h
        intern/GHOST_Debug.h
@@ -73,12 +72,10 @@ set(SRC
        intern/GHOST_EventDragnDrop.h
        intern/GHOST_EventKey.h
        intern/GHOST_EventManager.h
-       intern/GHOST_EventNDOF.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
@@ -96,6 +93,24 @@ if(WITH_GHOST_DEBUG)
        add_definitions(-DWITH_GHOST_DEBUG)
 endif()
 
+if(WITH_INPUT_NDOF)
+       add_definitions(-DWITH_INPUT_NDOF)
+
+       list(APPEND SRC
+               intern/GHOST_NDOFManager.cpp
+
+               intern/GHOST_EventNDOF.h
+               intern/GHOST_NDOFManager.h
+       )
+
+       list(APPEND INC_SYS
+               ${NDOF_INCLUDE_DIRS}
+       )
+endif()
+
+if(WITH_XDG_USER_DIRS)
+       add_definitions(-DWITH_XDG_USER_DIRS)
+endif()
 
 if(WITH_HEADLESS OR WITH_GHOST_SDL)
        if(WITH_HEADLESS)
@@ -137,6 +152,10 @@ if(WITH_HEADLESS OR WITH_GHOST_SDL)
                        intern/GHOST_SystemPathsX11.cpp
                        intern/GHOST_SystemPathsX11.h
                )
+
+               if(NOT WITH_INSTALL_PORTABLE)
+                       add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
+               endif()
        elseif(WIN32)
 
                list(APPEND SRC
@@ -146,7 +165,9 @@ if(WITH_HEADLESS OR WITH_GHOST_SDL)
                )
        endif()
 
-       list(APPEND INC_SYS ${SDL_INCLUDE_DIR})
+       list(APPEND INC_SYS
+               ${SDL_INCLUDE_DIR}
+       )
 
 elseif(APPLE)
        if(WITH_COCOA)
@@ -155,12 +176,21 @@ elseif(APPLE)
                        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
                )
+
+               if(WITH_INPUT_NDOF)
+                       list(APPEND SRC
+                               intern/GHOST_NDOFManagerCocoa.mm
+
+                               intern/GHOST_NDOFManagerCocoa.h
+                       )
+               endif()
+
        else()
                list(APPEND SRC
                        intern/GHOST_DisplayManagerCarbon.cpp
@@ -181,11 +211,9 @@ elseif(APPLE)
 
 elseif(UNIX)
 
-       if(WITH_X11_XINPUT)
-               add_definitions(-DWITH_X11_XINPUT)
-       endif()
-
-       list(APPEND INC_SYS ${X11_X11_INCLUDE_PATH})
+       list(APPEND INC_SYS
+               ${X11_X11_INCLUDE_PATH}
+       )
 
        list(APPEND SRC
                intern/GHOST_DisplayManagerX11.cpp
@@ -199,21 +227,59 @@ elseif(UNIX)
                intern/GHOST_WindowX11.h
        )
 
-       if(NOT WITH_INSTALL_PORTABLE)
-               add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
+       if(WITH_GHOST_XDND)
+               add_definitions(-DWITH_XDND)
+
+               list(APPEND INC
+                       ../../extern/xdnd
+               )
+
+               list(APPEND SRC
+                       intern/GHOST_DropTargetX11.cpp
+
+                       intern/GHOST_DropTargetX11.h
+               )
        endif()
 
        if(X11_XF86keysym_INCLUDE_PATH)
                add_definitions(-DWITH_XF86KEYSYM)
-               list(APPEND INC_SYS ${X11_XF86keysym_INCLUDE_PATH})
+               list(APPEND INC_SYS
+                       ${X11_XF86keysym_INCLUDE_PATH}
+               )
        endif()
 
-elseif(WIN32)
-       if(MSVC)
-               set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
+       if(WITH_X11_XF86VMODE)
+               add_definitions(-DWITH_X11_XF86VMODE)
+               list(APPEND INC_SYS
+                       ${X11_xf86vmode_INCLUDE_PATH}
+               )
        endif()
 
-       list(APPEND INC_SYS ${WINTAB_INC})
+       if(WITH_INPUT_NDOF)
+               list(APPEND SRC
+                       intern/GHOST_NDOFManagerX11.cpp
+
+                       intern/GHOST_NDOFManagerX11.h
+               )
+       endif()
+
+       if(NOT WITH_INSTALL_PORTABLE)
+               add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
+       endif()
+
+       if(WITH_X11_XINPUT)
+               add_definitions(-DWITH_X11_XINPUT)
+       endif()
+
+elseif(WIN32)
+       ## Warnings as errors, this is too strict!
+       #if(MSVC)
+       #       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
+       #endif()
+
+       list(APPEND INC_SYS
+               ${WINTAB_INC}
+       )
 
        list(APPEND SRC
                intern/GHOST_DisplayManagerWin32.cpp
@@ -229,6 +295,15 @@ elseif(WIN32)
                intern/GHOST_WindowWin32.h
                intern/GHOST_TaskbarWin32.h
        )
+
+       if(WITH_INPUT_NDOF)
+               list(APPEND SRC
+                       intern/GHOST_NDOFManagerWin32.cpp
+
+                       intern/GHOST_NDOFManagerWin32.h
+               )
+       endif()
+
 endif()
 
 blender_add_lib(bf_intern_ghost "${SRC}" "${INC}" "${INC_SYS}")