diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 87 |
1 files changed, 43 insertions, 44 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 01c5eba5..c7e3cedc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,6 @@ if(GIT_FOUND) git_describe(OPENTRACK__COMMIT --tags --always) endif() -#INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) SET(CMAKE_SKIP_INSTALL_RPATH FALSE) @@ -22,10 +21,11 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC OFF) set(CMAKE_POSITION_INDEPENDENT_CODE ON) -find_package(OpenCV REQUIRED) +find_package(OpenCV) include_directories(${OpenCV_INCLUDE_DIRS}) -find_package(Qt5 REQUIRED COMPONENTS Core Xml Network Widgets Gui ${maybe-serial-port} QUIET) +find_package(Qt5 REQUIRED COMPONENTS Core Xml Network Widgets Gui QUIET) +find_package(Qt5 COMPONENTS SerialPort QUIET) include_directories(${Qt5Core_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS}) add_definitions(${Qt5Core_DEFINITIONS} ${Qt5Xml_DEFINITIONS} ${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Network_DEFINITIONS}) @@ -35,8 +35,6 @@ if(WIN32) # hack to avoid breakage on buildbot endif() set(MY_QT_LIBS ${Qt5Widgets_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Xml_LIBRARIES} ${Qt5Core_LIBRARIES} ${my-qt-deps}) -#include_directories(${CMAKE_SOURCE_DIR}) - # note, hatire supports both ftnoir and opentrack # don't remove without being sure as hell -sh 20140922 add_definitions(-DOPENTRACK_API) @@ -94,7 +92,7 @@ macro(opentrack_library n dir) target_link_libraries(${n} ${MY_QT_LIBS}) if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE) SET_TARGET_PROPERTIES(${n} PROPERTIES - LINK_FLAGS "${foolib_LINK} -Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/${version-script}-version-script.txt" + LINK_FLAGS "${foolib_LINK} -Wl,--version-script=\"${CMAKE_SOURCE_DIR}/opentrack/${version-script}-version-script.txt\"" COMPILE_FLAGS "${foolib_COMPILE} -fvisibility=hidden -fvisibility-inlines-hidden" ) else() @@ -109,37 +107,36 @@ function(link_with_dinput8 n) endif() endfunction() +# ---- + # cache variables # ---- -if(UNIX) - set(SDK_ENABLE_LIBEVDEV FALSE CACHE BOOL "libevdev virtual joystick protocol support (probably Linux only)") -endif() - IF(WIN32) SET(SDK_VJOY "" CACHE PATH "VJoy SDK path") - SET(SDK_CONSOLE_DEBUG FALSE CACHE BOOL "Console build") + SET(SDK_CONSOLE_DEBUG FALSE CACHE BOOL "Console window visible at runtime") ENDIF() IF("${CMAKE_SYSTEM}" MATCHES "Linux" OR APPLE) set(SDK_XPLANE "" CACHE PATH "Path to X-Plane SDK") + set(SDK_ENABLE_LIBEVDEV FALSE CACHE BOOL "libevdev virtual joystick protocol support") endif() -SET(SDK_HYDRA "" CACHE PATH "libSixense path") -SET(SDK_HYDRA_AMD64 FALSE CACHE BOOL "whether target is amd64 (else ia-32)") -SET(SDK_RIFT "" CACHE PATH "libOVR path") +SET(SDK_HYDRA "" CACHE PATH "libSixense path for Razer Hydra") +SET(SDK_HYDRA_AMD64 FALSE CACHE BOOL "whether libSixense is amd64 (else ia-32)") +SET(SDK_RIFT "" CACHE PATH "libOVR path for Oculus Rift") -set(SDK_ARUCO_LIBPATH "" CACHE FILEPATH "Path to Aruco static library") +set(SDK_ARUCO_LIBPATH "" CACHE FILEPATH "Aruco paper marker tracker static library path") if(WIN32) - set(SDK_SIMCONNECT "" CACHE PATH "Path to SimConnect SDK") - set(SDK_FSUIPC "" CACHE PATH "Path to FSUIPC") + set(SDK_SIMCONNECT "" CACHE PATH "SimConnect SDK path for MS FSX") + set(SDK_FSUIPC "" CACHE PATH "FSUIPC for older MS FSX path") endif() if(NOT WIN32) - set(SDK_WINE_PREFIX "" CACHE PATH "Path where Wine is installed") - set(SDK_WINE_NO_WRAPPER FALSE CACHE BOOL "Don't build wrapper, for instance X-Plane is native Linux app") + set(SDK_WINE_PREFIX "" CACHE PATH "Wine install prefix") + set(SDK_WINE_NO_WRAPPER FALSE CACHE BOOL "disable Wine wrapper -- use Wine only for X-Plane") endif() # ---- @@ -158,7 +155,7 @@ string(REPLACE "refs/heads/" "" filename-branch_1 "${filename-branch_0}") string(REPLACE "/" "-" filename-branch "${filename-branch_1}") set(filename_0 opentrack-${filename-ostype}-${filename-branch}-${filename-date}-${filename-hash}) string(TOLOWER "${filename_0}" filename_1) -set(filename "${CMAKE_BINARY_DIR}/${filename_1}.tar.xz") +set(filename "${CMAKE_BINARY_DIR}/${filename_1}.zip") add_custom_command(OUTPUT ${filename} COMMAND env sh "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}" "${filename}") add_custom_target(tarball DEPENDS ${filename}) @@ -167,7 +164,7 @@ add_custom_target(tarball DEPENDS ${filename}) opentrack_module(opentrack-api opentrack) opentrack_qt(opentrack-api) add_library(opentrack-api STATIC ${opentrack-api-all}) -target_link_libraries(opentrack-api ${OpenCV_LIBS} ${MY_QT_LIBS}) +target_link_libraries(opentrack-api ${MY_QT_LIBS}) if(NOT WIN32) target_link_libraries(opentrack-api dl) @@ -200,11 +197,11 @@ endif() opentrack_module(opentrack-compat compat) opentrack_module(opentrack-xplane-plugin x-plane-plugin) -opentrack_module(freetrackclient freetrackclient) +#opentrack_module(freetrackclient freetrackclient) if(SDK_XPLANE) # probably librt already included - add_library(opentrack-xplane-plugin STATIC ${opentrack-xplane-plugin-c}) + add_library(opentrack-xplane-plugin SHARED ${opentrack-xplane-plugin-c}) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC AND NOT APPLE) SET_TARGET_PROPERTIES(opentrack-xplane-plugin PROPERTIES LINK_FLAGS @@ -228,13 +225,14 @@ if(NOT WIN32 AND NOT APPLE) target_link_libraries(opentrack-compat rt) endif() -opentrack_module(opentrack-csv ftnoir_csv) +opentrack_module(opentrack-csv csv) add_library(opentrack-csv STATIC ${opentrack-csv-c}) target_link_libraries(opentrack-csv ${MY_QT_LIBS}) -opentrack_module(opentrack-pose-widget ftnoir_posewidget) -include_directories(ftnoir_posewidget/) +opentrack_module(opentrack-pose-widget pose-widget) +include_directories(pose-widget/) # else Qt moc breaks opentrack_qt(opentrack-pose-widget) + add_library(opentrack-pose-widget STATIC ${opentrack-pose-widget-all}) target_link_libraries(opentrack-pose-widget ${MY_QT_LIBS}) @@ -253,8 +251,6 @@ opentrack_library(opentrack-filter-accela ftnoir_filter_accela) opentrack_library(opentrack-filter-kalman ftnoir_filter_kalman) opentrack_library(opentrack-filter-ewma ftnoir_filter_ewma2) -target_link_libraries(opentrack-filter-kalman ${OpenCV_LIBS}) - opentrack_library(opentrack-proto-fgfs ftnoir_protocol_fg) if(SDK_VJOY) @@ -269,11 +265,9 @@ endif() if(SDK_ENABLE_LIBEVDEV) opentrack_library(opentrack-proto-libevdev ftnoir_protocol_libevdev) - opentrack_library(opentrack-tracker-libevdev ftnoir_tracker_libevdev) pkg_check_modules(libevdev REQUIRED QUIET libevdev) include_directories(${libevdev_INCLUDE_DIRS}) target_link_libraries(opentrack-proto-libevdev ${libevdev_LIBRARIES}) - target_link_libraries(opentrack-tracker-libevdev ${libevdev_LIBRARIES}) endif() if(SDK_FSUIPC) @@ -293,17 +287,18 @@ if(WIN32) opentrack_library(opentrack-proto-win32-mouse ftnoir_protocol_mouse) endif() -if(WIN32) - add_library(freetrackclient SHARED ${freetrackclient-c}) - set_target_properties(freetrackclient PROPERTIES PREFIX "") -endif() - opentrack_library(opentrack-proto-udp ftnoir_protocol_ftn) if(WIN32) opentrack_library(opentrack-tracker-joystick ftnoir_tracker_joystick) endif() +if(Qt5SerialPort_FOUND) + opentrack_library(opentrack-tracker-hatire ftnoir_tracker_hatire) + include_directories(${Qt5SerialPort_INCLUDE_DIRS}) + target_link_libraries(opentrack-tracker-hatire ${Qt5SerialPort_LIBRARIES}) +endif() + if(SDK_WINE_PREFIX) opentrack_library(opentrack-proto-wine ftnoir_protocol_wine) target_link_libraries(opentrack-proto-wine opentrack-compat opentrack-csv) @@ -331,16 +326,19 @@ endif() opentrack_library(opentrack-tracker-ht ftnoir_tracker_ht) target_link_libraries(opentrack-tracker-ht opentrack-compat) -if(SDK_ARUCO_LIBPATH) - opentrack_library(opentrack-tracker-aruco ftnoir_tracker_aruco) - target_link_libraries(opentrack-tracker-aruco ${SDK_ARUCO_LIBPATH} ${OpenCV_LIBS}) -endif() - -opentrack_library(opentrack-tracker-pt ftnoir_tracker_pt) -target_link_libraries(opentrack-tracker-pt ${OpenCV_LIBS}) opentrack_library(opentrack-tracker-udp ftnoir_tracker_udp) opentrack_library(opentrack-tracker-freepie-udp ftnoir_tracker_freepie-udp) +if(OpenCV_FOUND) + opentrack_library(opentrack-tracker-pt ftnoir_tracker_pt) + target_link_libraries(opentrack-tracker-pt ${OpenCV_LIBS}) + if(SDK_ARUCO_LIBPATH) + opentrack_library(opentrack-tracker-aruco ftnoir_tracker_aruco) + target_link_libraries(opentrack-tracker-aruco ${SDK_ARUCO_LIBPATH} ${OpenCV_LIBS}) + endif() + target_link_libraries(opentrack-filter-kalman ${OpenCV_LIBS}) +endif() + link_with_dinput8(opentrack-tracker-ht) link_with_dinput8(opentrack-tracker-joystick) link_with_dinput8(opentrack-tracker-pt) @@ -467,13 +465,14 @@ endif() if(WIN32) install(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/tracker-ht DESTINATION .) - install(TARGETS freetrackclient RUNTIME DESTINATION . LIBRARY DESTINATION . ) + #install(TARGETS freetrackclient RUNTIME DESTINATION . LIBRARY DESTINATION . ) endif() install(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty-notices DESTINATION .) +install(FILES "${CMAKE_SOURCE_DIR}/bin/freetrackclient.dll" DESTINATION .) install(FILES "${CMAKE_SOURCE_DIR}/bin/NPClient.dll" "${CMAKE_SOURCE_DIR}/bin/NPClient64.dll" "${CMAKE_SOURCE_DIR}/bin/TrackIR.exe" DESTINATION .) -install(DIRECTORY "${CMAKE_SOURCE_DIR}/bin/settings" "${CMAKE_SOURCE_DIR}/facetracknoir/clientfiles" DESTINATION .) +install(DIRECTORY "${CMAKE_SOURCE_DIR}/bin/settings" "${CMAKE_SOURCE_DIR}/clientfiles" DESTINATION .) if(NOT WIN32 AND SDK_WINE_PREFIX AND NOT SDK_WINE_NO_WRAPPER) install(FILES "${CMAKE_BINARY_DIR}/opentrack-wrapper-wine.exe.so" |