CMakeLists.txt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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. ${CMAKE_CURRENT_LIST_DIR}/src/shaders.c
  24. )
  25. OPTION(OPENHMD_DRIVER_OCULUS_RIFT "Oculus Rift DK1 and DK2" ON)
  26. OPTION(OPENHMD_DRIVER_DEEPOON "Deepoon E2" ON)
  27. OPTION(OPENHMD_DRIVER_PSVR "Sony PSVR" ON)
  28. OPTION(OPENHMD_DRIVER_HTC_VIVE "HTC Vive" ON)
  29. OPTION(OPENHMD_DRIVER_EXTERNAL "External sensor driver" ON)
  30. OPTION(OPENHMD_DRIVER_ANDROID "General Android driver" OFF)
  31. OPTION(OPENHMD_EXAMPLE_SIMPLE "Simple test binary" ON)
  32. OPTION(OPENHMD_EXAMPLE_SDL "SDL OpenGL test (outdated)" OFF)
  33. if(OPENHMD_DRIVER_OCULUS_RIFT)
  34. set(openhmd_source_files ${openhmd_source_files}
  35. ${CMAKE_CURRENT_LIST_DIR}/src/drv_oculus_rift/rift.c
  36. ${CMAKE_CURRENT_LIST_DIR}/src/drv_oculus_rift/packet.c
  37. )
  38. add_definitions(-DDRIVER_OCULUS_RIFT)
  39. find_package(HIDAPI REQUIRED)
  40. include_directories(${HIDAPI_INCLUDE_DIRS})
  41. set(LIBS ${LIBS} ${HIDAPI_LIBRARIES})
  42. endif(OPENHMD_DRIVER_OCULUS_RIFT)
  43. if(OPENHMD_DRIVER_DEEPOON)
  44. set(openhmd_source_files ${openhmd_source_files}
  45. ${CMAKE_CURRENT_LIST_DIR}/src/drv_deepoon/deepoon.c
  46. ${CMAKE_CURRENT_LIST_DIR}/src/drv_deepoon/packet.c
  47. )
  48. add_definitions(-DDRIVER_DEEPOON)
  49. find_package(HIDAPI REQUIRED)
  50. include_directories(${HIDAPI_INCLUDE_DIRS})
  51. set(LIBS ${LIBS} ${HIDAPI_LIBRARIES})
  52. endif(OPENHMD_DRIVER_DEEPOON)
  53. if(OPENHMD_DRIVER_PSVR)
  54. set(openhmd_source_files ${openhmd_source_files}
  55. ${CMAKE_CURRENT_LIST_DIR}/src/drv_psvr/psvr.c
  56. ${CMAKE_CURRENT_LIST_DIR}/src/drv_psvr/packet.c
  57. )
  58. add_definitions(-DDRIVER_PSVR)
  59. find_package(HIDAPI REQUIRED)
  60. include_directories(${HIDAPI_INCLUDE_DIRS})
  61. set(LIBS ${LIBS} ${HIDAPI_LIBRARIES})
  62. endif(OPENHMD_DRIVER_PSVR)
  63. if(OPENHMD_DRIVER_HTC_VIVE)
  64. set(openhmd_source_files ${openhmd_source_files}
  65. ${CMAKE_CURRENT_LIST_DIR}/src/drv_htc_vive/vive.c
  66. ${CMAKE_CURRENT_LIST_DIR}/src/drv_htc_vive/packet.c
  67. #${CMAKE_CURRENT_LIST_DIR}/src/ext_deps/miniz.c
  68. ${CMAKE_CURRENT_LIST_DIR}/src/ext_deps/mjson.c
  69. )
  70. add_definitions(-DDRIVER_HTC_VIVE)
  71. find_package(HIDAPI REQUIRED)
  72. include_directories(${HIDAPI_INCLUDE_DIRS})
  73. set(LIBS ${LIBS} ${HIDAPI_LIBRARIES})
  74. endif(OPENHMD_DRIVER_HTC_VIVE)
  75. if (OPENHMD_DRIVER_EXTERNAL)
  76. set(openhmd_source_files ${openhmd_source_files}
  77. ${CMAKE_CURRENT_LIST_DIR}/src/drv_external/external.c
  78. )
  79. add_definitions(-DDRIVER_EXTERNAL)
  80. endif(OPENHMD_DRIVER_EXTERNAL)
  81. if (OPENHMD_DRIVER_ANDROID)
  82. set(openhmd_source_files ${openhmd_source_files}
  83. ${CMAKE_CURRENT_LIST_DIR}/src/drv_android/android.c
  84. )
  85. add_definitions(-DDRIVER_ANDROID)
  86. endif(OPENHMD_DRIVER_ANDROID)
  87. if (OPENHMD_EXAMPLE_SIMPLE)
  88. add_subdirectory(./examples/simple)
  89. endif(OPENHMD_EXAMPLE_SIMPLE)
  90. if (OPENHMD_EXAMPLE_SDL)
  91. find_package(SDL2 REQUIRED)
  92. find_package(GLEW REQUIRED)
  93. find_package(OpenGL REQUIRED)
  94. add_subdirectory(./examples/opengl)
  95. endif (OPENHMD_EXAMPLE_SDL)
  96. if (UNIX)
  97. set(LIBS ${LIBS} rt pthread)
  98. endif (UNIX)
  99. link_libraries(${LIBS})
  100. add_library(openhmd-shared SHARED ${openhmd_source_files})
  101. SET_TARGET_PROPERTIES(openhmd-shared PROPERTIES OUTPUT_NAME openhmd CLEAN_DIRECT_OUTPUT 1)
  102. add_library(openhmd-static STATIC ${openhmd_source_files})
  103. SET_TARGET_PROPERTIES(openhmd-static PROPERTIES OUTPUT_NAME openhmd CLEAN_DIRECT_OUTPUT 1)
  104. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_DIR}/)
  105. #install properties
  106. install (TARGETS openhmd-shared openhmd-static DESTINATION lib)
  107. install (FILES include/openhmd.h DESTINATION include/openhmd/)