/src/ois/CMakeLists.txt

https://bitbucket.org/cabalistic/ogredeps/ · CMake · 184 lines · 169 code · 10 blank · 5 comment · 13 complexity · a56621e1956ece4ba49be8d3833cb4d3 MD5 · raw file

  1. project(OIS)
  2. set(OIS_HEADERS
  3. includes/OISConfig.h
  4. includes/OISEffect.h
  5. includes/OISEvents.h
  6. includes/OISException.h
  7. includes/OISFactoryCreator.h
  8. includes/OISForceFeedback.h
  9. includes/OIS.h
  10. includes/OISInputManager.h
  11. includes/OISInterface.h
  12. includes/OISJoyStick.h
  13. includes/OISKeyboard.h
  14. includes/OISMouse.h
  15. includes/OISMultiTouch.h
  16. includes/OISObject.h
  17. includes/OISPrereqs.h
  18. )
  19. set(OIS_SOURCES
  20. src/OISEffect.cpp
  21. src/OISException.cpp
  22. src/OISForceFeedback.cpp
  23. src/OISInputManager.cpp
  24. src/OISJoyStick.cpp
  25. src/OISKeyboard.cpp
  26. src/OISObject.cpp
  27. src/extras/LIRC/OISLIRC.cpp
  28. src/extras/LIRC/OISLIRCFactoryCreator.cpp
  29. )
  30. if (WIN32)
  31. set(OIS_PLATFORM_HEADERS
  32. includes/win32/Win32ForceFeedback.h
  33. includes/win32/Win32InputManager.h
  34. includes/win32/Win32JoyStick.h
  35. includes/win32/Win32KeyBoard.h
  36. includes/win32/Win32Mouse.h
  37. includes/win32/Win32Prereqs.h
  38. )
  39. set(OIS_PLATFORM win32)
  40. set(OIS_PLATFORM_SOURCES
  41. src/win32/Win32ForceFeedback.cpp
  42. src/win32/Win32InputManager.cpp
  43. src/win32/Win32JoyStick.cpp
  44. src/win32/Win32KeyBoard.cpp
  45. src/win32/Win32Mouse.cpp
  46. src/win32/extras/WiiMote/hiddevice.cpp
  47. src/win32/extras/WiiMote/OISWiiMote.cpp
  48. src/win32/extras/WiiMote/OISWiiMoteFactoryCreator.cpp
  49. src/win32/extras/WiiMote/OISWiiMoteForceFeedback.cpp
  50. src/win32/extras/WiiMote/OISWiiMoteRingBuffer.cpp
  51. src/win32/extras/WiiMote/wiimote.cpp
  52. )
  53. # need DirectX includes and libraries
  54. include_directories(${DirectX_INCLUDE_DIRS})
  55. set(OIS_PLATFORM_LIBS ${DirectX_DINPUT8_LIBRARY} ${DirectX_DXGUID_LIBRARY})
  56. if (MINGW)
  57. # standard MinGW cannot cope with the new Win32JoyStick implementation
  58. # therefore we use the old one from OIS 1.2
  59. list(REMOVE_ITEM OIS_PLATFORM_SOURCES src/win32/Win32JoyStick.cpp)
  60. list(APPEND OIS_PLATFORM_SOURCES src/win32/Win32JoyStick.old.cpp)
  61. endif ()
  62. elseif (APPLE)
  63. if(OGRE_BUILD_PLATFORM_APPLE_IOS)
  64. set(OIS_PLATFORM_HEADERS
  65. includes/iphone/iPhoneAccelerometer.h
  66. includes/iphone/iPhoneHelpers.h
  67. includes/iphone/iPhoneInputManager.h
  68. includes/iphone/iPhoneMultiTouch.h
  69. includes/iphone/iPhonePrereqs.h
  70. )
  71. set(OIS_PLATFORM iphone)
  72. set(OIS_PLATFORM_SOURCES
  73. src/iphone/iPhoneAccelerometer.mm
  74. src/iphone/iPhoneInputManager.mm
  75. src/iphone/iPhoneMultiTouch.mm
  76. )
  77. else()
  78. set(OIS_PLATFORM_HEADERS
  79. includes/mac/CocoaInputManager.h
  80. includes/mac/CocoaJoyStick.h
  81. includes/mac/CocoaKeyboard.h
  82. includes/mac/CocoaMouse.h
  83. includes/mac/CocoaHelpers.h
  84. includes/mac/MacHelpers.h
  85. includes/mac/MacHIDManager.h
  86. includes/mac/MacInputManager.h
  87. includes/mac/MacJoyStick.h
  88. includes/mac/MacKeyboard.h
  89. includes/mac/MacMouse.h
  90. includes/mac/MacPrereqs.h
  91. )
  92. set(OIS_PLATFORM mac)
  93. set(OIS_PLATFORM_SOURCES
  94. src/mac/CocoaInputManager.mm
  95. src/mac/CocoaJoyStick.mm
  96. src/mac/CocoaKeyboard.mm
  97. src/mac/CocoaMouse.mm
  98. src/mac/MacHelpers.cpp
  99. src/mac/MacHIDManager.cpp
  100. src/mac/MacInputManager.cpp
  101. src/mac/MacJoyStick.cpp
  102. src/mac/MacKeyboard.cpp
  103. src/mac/MacMouse.cpp
  104. )
  105. endif()
  106. elseif (ANDROID)
  107. set(OIS_PLATFORM android)
  108. elseif (EMSCRIPTEN)
  109. set(OIS_PLATFORM emscripten)
  110. else()
  111. set(OIS_PLATFORM_HEADERS
  112. includes/linux/EventHelpers.h
  113. includes/linux/LinuxForceFeedback.h
  114. includes/linux/LinuxInputManager.h
  115. includes/linux/LinuxJoyStickEvents.h
  116. includes/linux/LinuxKeyboard.h
  117. includes/linux/LinuxMouse.h
  118. includes/linux/LinuxPrereqs.h
  119. )
  120. set(OIS_PLATFORM linux)
  121. set(OIS_PLATFORM_SOURCES
  122. src/linux/EventHelpers.cpp
  123. src/linux/LinuxForceFeedback.cpp
  124. src/linux/LinuxInputManager.cpp
  125. src/linux/LinuxJoyStickEvents.cpp
  126. src/linux/LinuxKeyboard.cpp
  127. src/linux/LinuxMouse.cpp
  128. )
  129. endif ()
  130. include_directories(includes)
  131. # Treat as Objective-C++ code if under OSX
  132. if(APPLE)
  133. set_source_files_properties(${OIS_HEADERS} ${OIS_SOURCES} PROPERTIES COMPILE_FLAGS "-x objective-c++")
  134. endif ()
  135. if(NOT APPLE AND NOT ANDROID)
  136. add_definitions(-DOIS_NONCLIENT_BUILD -DOIS_DYNAMIC_LIB)
  137. add_library(OIS SHARED ${OIS_HEADERS} ${OIS_SOURCES} ${OIS_PLATFORM_HEADERS} ${OIS_PLATFORM_SOURCES})
  138. else ()
  139. add_definitions(-DOIS_NONCLIENT_BUILD)
  140. add_library(OIS STATIC ${OIS_HEADERS} ${OIS_SOURCES} ${OIS_PLATFORM_HEADERS} ${OIS_PLATFORM_SOURCES})
  141. endif ()
  142. if (OGRE_PROJECT_FOLDERS)
  143. set_property(TARGET OIS PROPERTY FOLDER Dependencies)
  144. endif ()
  145. if (MINGW)
  146. # remove lib prefix from DLL outputs
  147. set_target_properties(OIS PROPERTIES PREFIX "")
  148. endif ()
  149. target_link_libraries(OIS ${OIS_PLATFORM_LIBS})
  150. install_dep(OIS include/OIS ${OIS_HEADERS})
  151. if (OGREDEPS_INSTALL_DEV)
  152. install(FILES ${OIS_PLATFORM_HEADERS} DESTINATION include/OIS/${OIS_PLATFORM})
  153. endif ()
  154. if (APPLE)
  155. if(OGRE_BUILD_PLATFORM_APPLE_IOS)
  156. set_target_properties(OIS PROPERTIES
  157. LINK_FLAGS "-framework UIKit"
  158. )
  159. else()
  160. set_target_properties(OIS PROPERTIES
  161. LINK_FLAGS "-framework IOKit -framework Cocoa -framework Carbon"
  162. )
  163. endif()
  164. endif ()
  165. if (APPLE)
  166. set_target_properties(OIS PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")
  167. if(OGRE_BUILD_PLATFORM_APPLE_IOS)
  168. set_target_properties(OIS PROPERTIES XCODE_ATTRIBUTE_GCC_THUMB_SUPPORT "NO")
  169. endif()
  170. endif()
  171. set(OIS_INCLUDE_DIR "${OIS_SOURCE_DIR}/includes" CACHE PATH "" FORCE)
  172. set(OIS_LIBRARY_DBG "OIS" CACHE STRING "" FORCE)
  173. set(OIS_LIBRARY_REL "OIS" CACHE STRING "" FORCE)
  174. mark_as_advanced(OIS_INCLUDE_DIR OIS_LIBRARY_DBG OIS_LIBRARY_REL)