summaryrefslogtreecommitdiffhomepage
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt87
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"