CMakeLists.txt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. cmake_minimum_required(VERSION 2.8)
  2. project(openhmd C CXX)
  3. set(CMAKE_C_FLAGS "-std=c99")
  4. set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
  5. include_directories(${CMAKE_CURRENT_LIST_DIR}/include)
  6. if (MSVC)
  7. # Add the "lib" prefix for generated .lib outputs.
  8. set(LIB_PREFIX lib)
  9. else (MSVC)
  10. # When building with "make", "lib" prefix will be added automatically by
  11. # the build tool.
  12. set(LIB_PREFIX)
  13. endif (MSVC)
  14. #source files set just for Android
  15. set(openhmd_source_files
  16. ${CMAKE_CURRENT_LIST_DIR}/src/openhmd.c
  17. ${CMAKE_CURRENT_LIST_DIR}/src/platform-win32.c
  18. ${CMAKE_CURRENT_LIST_DIR}/src/drv_dummy/dummy.c
  19. ${CMAKE_CURRENT_LIST_DIR}/src/omath.c
  20. ${CMAKE_CURRENT_LIST_DIR}/src/platform-posix.c
  21. ${CMAKE_CURRENT_LIST_DIR}/src/fusion.c
  22. ${CMAKE_CURRENT_LIST_DIR}/src/queue.c
  23. )
  24. OPTION(OPENHMD_DRIVER_OCULUS_RIFT "Oculus Rift DK1 and DK2" ON)
  25. OPTION(OPENHMD_DRIVER_DEEPOON "Deepoon E2" ON)
  26. OPTION(OPENHMD_DRIVER_EXTERNAL "External sensor driver" ON)
  27. OPTION(OPENHMD_DRIVER_ANDROID "General Android driver" OFF)
  28. OPTION(OPENHMD_EXAMPLE_SIMPLE "Simple test binary" ON)
  29. OPTION(OPENHMD_EXAMPLE_SDL "SDL OpenGL test (outdated)" OFF)
  30. if(OPENHMD_DRIVER_OCULUS_RIFT)
  31. set(openhmd_source_files ${openhmd_source_files}
  32. ${CMAKE_CURRENT_LIST_DIR}/src/drv_oculus_rift/rift.c
  33. ${CMAKE_CURRENT_LIST_DIR}/src/drv_oculus_rift/packet.c
  34. )
  35. add_definitions(-DDRIVER_OCULUS_RIFT)
  36. find_package(HIDAPI REQUIRED)
  37. include_directories(${HIDAPI_INCLUDE_DIRS})
  38. set(LIBS ${LIBS} ${HIDAPI_LIBRARIES})
  39. endif(OPENHMD_DRIVER_OCULUS_RIFT)
  40. if(OPENHMD_DRIVER_DEEPOON)
  41. set(openhmd_source_files ${openhmd_source_files}
  42. ${CMAKE_CURRENT_LIST_DIR}/src/drv_deepoon/deepoon.c
  43. ${CMAKE_CURRENT_LIST_DIR}/src/drv_deepoon/packet.c
  44. )
  45. add_definitions(-DDRIVER_DEEPOON)
  46. find_package(HIDAPI REQUIRED)
  47. include_directories(${HIDAPI_INCLUDE_DIRS})
  48. set(LIBS ${LIBS} ${HIDAPI_LIBRARIES})
  49. endif(OPENHMD_DRIVER_DEEPOON)
  50. if (OPENHMD_DRIVER_EXTERNAL)
  51. set(openhmd_source_files ${openhmd_source_files}
  52. ${CMAKE_CURRENT_LIST_DIR}/src/drv_external/external.c
  53. )
  54. add_definitions(-DDRIVER_EXTERNAL)
  55. endif(OPENHMD_DRIVER_EXTERNAL)
  56. if (OPENHMD_DRIVER_ANDROID)
  57. set(openhmd_source_files ${openhmd_source_files}
  58. ${CMAKE_CURRENT_LIST_DIR}/src/drv_android/android.c
  59. )
  60. add_definitions(-DDRIVER_ANDROID)
  61. endif(OPENHMD_DRIVER_ANDROID)
  62. if (OPENHMD_EXAMPLE_SIMPLE)
  63. add_subdirectory(./examples/simple)
  64. endif(OPENHMD_EXAMPLE_SIMPLE)
  65. if (OPENHMD_EXAMPLE_SDL)
  66. find_package(SDL REQUIRED)
  67. find_package(GLEW REQUIRED)
  68. find_package(OpenGL REQUIRED)
  69. add_subdirectory(./examples/opengl)
  70. endif (OPENHMD_EXAMPLE_SDL)
  71. if (UNIX)
  72. set(LIBS ${LIBS} rt pthread)
  73. endif (UNIX)
  74. link_libraries(${LIBS})
  75. add_library(openhmd ${openhmd_source_files})
  76. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_DIR}/)
  77. #install properties
  78. install (TARGETS openhmd DESTINATION lib)
  79. install (FILES include/openhmd.h DESTINATION include)