summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2015-10-30 07:37:41 +0100
committerStanislaw Halik <sthalik@misaki.pl>2015-10-30 08:39:32 +0100
commitaa066bdd4622d4f6824fee864f6be6806813f04d (patch)
tree3df328b8b364cba2373a85827191b259bd78d546
parentd6a54431d178632a2bf466c9904f74abd143afe6 (diff)
move to subdirectory-based build system
Closes #224
-rw-r--r--CMakeLists.txt636
-rw-r--r--cmake/opentrack-install.cmake27
-rw-r--r--cmake/opentrack-macros.cmake79
-rw-r--r--cmake/opentrack-platform.cmake60
-rw-r--r--cmake/opentrack-policy.cmake10
-rw-r--r--cmake/opentrack-qt.cmake5
-rw-r--r--cmake/opentrack-rift.cmake37
-rw-r--r--cmake/opentrack-tarball.cmake23
-rw-r--r--cmake/opentrack-version.cmake33
-rw-r--r--csv/CMakeLists.txt4
-rw-r--r--facetracknoir/CMakeLists.txt62
-rw-r--r--facetracknoir/main.ui2
-rw-r--r--facetracknoir/mapping.ui2
-rw-r--r--filter-accela/CMakeLists.txt2
-rw-r--r--filter-accela/ftnoir_accela_filtercontrols.ui (renamed from ftnoir_filter_accela/ftnoir_accela_filtercontrols.ui)0
-rw-r--r--filter-accela/ftnoir_filter_accela.cpp (renamed from ftnoir_filter_accela/ftnoir_filter_accela.cpp)2
-rw-r--r--filter-accela/ftnoir_filter_accela.h (renamed from ftnoir_filter_accela/ftnoir_filter_accela.h)2
-rw-r--r--filter-accela/ftnoir_filter_accela_dialog.cpp (renamed from ftnoir_filter_accela/ftnoir_filter_accela_dialog.cpp)4
-rw-r--r--filter-ewma2/CMakeLists.txt1
-rw-r--r--filter-ewma2/ftnoir_ewma_filtercontrols.ui (renamed from ftnoir_filter_ewma2/ftnoir_ewma_filtercontrols.ui)0
-rw-r--r--filter-ewma2/ftnoir_filter_ewma2.cpp (renamed from ftnoir_filter_ewma2/ftnoir_filter_ewma2.cpp)0
-rw-r--r--filter-ewma2/ftnoir_filter_ewma2.h (renamed from ftnoir_filter_ewma2/ftnoir_filter_ewma2.h)0
-rw-r--r--filter-ewma2/ftnoir_filter_ewma2_dialog.cpp (renamed from ftnoir_filter_ewma2/ftnoir_filter_ewma2_dialog.cpp)0
-rw-r--r--filter-kalman/CMakeLists.txt4
-rw-r--r--filter-kalman/ftnoir_filter_kalman.h (renamed from ftnoir_filter_kalman/ftnoir_filter_kalman.h)0
-rw-r--r--filter-kalman/ftnoir_kalman_filtercontrols.ui (renamed from ftnoir_filter_kalman/ftnoir_kalman_filtercontrols.ui)0
-rw-r--r--filter-kalman/kalman.cpp (renamed from ftnoir_filter_kalman/kalman.cpp)0
-rw-r--r--opentrack-compat/CMakeLists.txt4
-rw-r--r--opentrack/CMakeLists.txt10
-rw-r--r--opentrack/mappings.hpp2
-rw-r--r--opentrack/tracker.h2
-rw-r--r--pose-widget/CMakeLists.txt6
-rw-r--r--protocol-fg/CMakeLists.txt1
-rw-r--r--protocol-fg/fg-protocol.qrc (renamed from ftnoir_protocol_fg/fg-protocol.qrc)0
-rw-r--r--protocol-fg/fgtypes.h (renamed from ftnoir_protocol_fg/fgtypes.h)0
-rw-r--r--protocol-fg/ftnoir_fgcontrols.ui (renamed from ftnoir_protocol_fg/ftnoir_fgcontrols.ui)0
-rw-r--r--protocol-fg/ftnoir_protocol_fg.cpp (renamed from ftnoir_protocol_fg/ftnoir_protocol_fg.cpp)0
-rw-r--r--protocol-fg/ftnoir_protocol_fg.h (renamed from ftnoir_protocol_fg/ftnoir_protocol_fg.h)0
-rw-r--r--protocol-fg/ftnoir_protocol_fg_dialog.cpp (renamed from ftnoir_protocol_fg/ftnoir_protocol_fg_dialog.cpp)0
-rw-r--r--protocol-fg/images/flightgear.png (renamed from ftnoir_protocol_fg/images/flightgear.png)bin979 -> 979 bytes
-rw-r--r--protocol-fsuipc/CMakeLists.txt11
-rw-r--r--protocol-fsuipc/fsuipc-protocol.qrc (renamed from ftnoir_protocol_fsuipc/fsuipc-protocol.qrc)0
-rw-r--r--protocol-fsuipc/ftnoir_fsuipccontrols.ui (renamed from ftnoir_protocol_fsuipc/ftnoir_fsuipccontrols.ui)0
-rw-r--r--protocol-fsuipc/ftnoir_protocol_fsuipc.cpp (renamed from ftnoir_protocol_fsuipc/ftnoir_protocol_fsuipc.cpp)0
-rw-r--r--protocol-fsuipc/ftnoir_protocol_fsuipc.h (renamed from ftnoir_protocol_fsuipc/ftnoir_protocol_fsuipc.h)0
-rw-r--r--protocol-fsuipc/ftnoir_protocol_fsuipc_dialog.cpp (renamed from ftnoir_protocol_fsuipc/ftnoir_protocol_fsuipc_dialog.cpp)0
-rw-r--r--protocol-fsuipc/images/fs9.png (renamed from ftnoir_protocol_fsuipc/images/fs9.png)bin758 -> 758 bytes
-rw-r--r--protocol-fsuipc/images/fs91.png (renamed from ftnoir_protocol_fsuipc/images/fs91.png)bin1644 -> 1644 bytes
-rw-r--r--protocol-ft/CMakeLists.txt4
-rw-r--r--protocol-ft/ft-protocol.qrc (renamed from ftnoir_protocol_ft/ft-protocol.qrc)0
-rw-r--r--protocol-ft/ftnoir_ftcontrols.ui (renamed from ftnoir_protocol_ft/ftnoir_ftcontrols.ui)0
-rw-r--r--protocol-ft/ftnoir_protocol_ft.cpp (renamed from ftnoir_protocol_ft/ftnoir_protocol_ft.cpp)0
-rw-r--r--protocol-ft/ftnoir_protocol_ft.h (renamed from ftnoir_protocol_ft/ftnoir_protocol_ft.h)0
-rw-r--r--protocol-ft/ftnoir_protocol_ft_dialog.cpp (renamed from ftnoir_protocol_ft/ftnoir_protocol_ft_dialog.cpp)0
-rw-r--r--protocol-ft/images/freetrack.png (renamed from ftnoir_protocol_ft/images/freetrack.png)bin1773 -> 1773 bytes
-rw-r--r--protocol-ftn/CMakeLists.txt1
-rw-r--r--protocol-ftn/ftnoir_ftncontrols.ui (renamed from ftnoir_protocol_ftn/ftnoir_ftncontrols.ui)0
-rw-r--r--protocol-ftn/ftnoir_protocol_ftn.cpp (renamed from ftnoir_protocol_ftn/ftnoir_protocol_ftn.cpp)0
-rw-r--r--protocol-ftn/ftnoir_protocol_ftn.h (renamed from ftnoir_protocol_ftn/ftnoir_protocol_ftn.h)0
-rw-r--r--protocol-ftn/ftnoir_protocol_ftn_dialog.cpp (renamed from ftnoir_protocol_ftn/ftnoir_protocol_ftn_dialog.cpp)0
-rw-r--r--protocol-libevdev/CMakeLists.txt10
-rw-r--r--protocol-libevdev/ftnoir_libevdev_controls.ui (renamed from ftnoir_protocol_libevdev/ftnoir_libevdev_controls.ui)0
-rw-r--r--protocol-libevdev/ftnoir_protocol_libevdev.cpp (renamed from ftnoir_protocol_libevdev/ftnoir_protocol_libevdev.cpp)0
-rw-r--r--protocol-libevdev/ftnoir_protocol_libevdev.h (renamed from ftnoir_protocol_libevdev/ftnoir_protocol_libevdev.h)0
-rw-r--r--protocol-libevdev/ftnoir_protocol_libevdev_dialog.cpp (renamed from ftnoir_protocol_libevdev/ftnoir_protocol_libevdev_dialog.cpp)0
-rw-r--r--protocol-libevdev/images/linux.png (renamed from ftnoir_protocol_libevdev/images/linux.png)bin668 -> 668 bytes
-rw-r--r--protocol-libevdev/libevdev-protocol.qrc (renamed from ftnoir_protocol_libevdev/libevdev-protocol.qrc)0
-rw-r--r--protocol-mouse/CMakeLists.txt3
-rw-r--r--protocol-mouse/ftnoir_mousecontrols.ui (renamed from ftnoir_protocol_mouse/ftnoir_mousecontrols.ui)0
-rw-r--r--protocol-mouse/ftnoir_protocol_mouse.cpp (renamed from ftnoir_protocol_mouse/ftnoir_protocol_mouse.cpp)0
-rw-r--r--protocol-mouse/ftnoir_protocol_mouse.h (renamed from ftnoir_protocol_mouse/ftnoir_protocol_mouse.h)0
-rw-r--r--protocol-mouse/ftnoir_protocol_mouse_dialog.cpp (renamed from ftnoir_protocol_mouse/ftnoir_protocol_mouse_dialog.cpp)0
-rw-r--r--protocol-mouse/images/mouse.png (renamed from ftnoir_protocol_mouse/images/mouse.png)bin1169 -> 1169 bytes
-rw-r--r--protocol-mouse/win32-mouse-protocol.qrc (renamed from ftnoir_protocol_mouse/win32-mouse-protocol.qrc)0
-rw-r--r--protocol-sc/CMakeLists.txt3
-rw-r--r--protocol-sc/ftnoir-protocol-sc.rc (renamed from ftnoir_protocol_sc/ftnoir-protocol-sc.rc)0
-rw-r--r--protocol-sc/ftnoir_protocol_sc.cpp (renamed from ftnoir_protocol_sc/ftnoir_protocol_sc.cpp)0
-rw-r--r--protocol-sc/ftnoir_protocol_sc.h (renamed from ftnoir_protocol_sc/ftnoir_protocol_sc.h)0
-rw-r--r--protocol-sc/ftnoir_protocol_sc_dialog.cpp (renamed from ftnoir_protocol_sc/ftnoir_protocol_sc_dialog.cpp)0
-rw-r--r--protocol-sc/ftnoir_sccontrols.ui (renamed from ftnoir_protocol_sc/ftnoir_sccontrols.ui)0
-rw-r--r--protocol-sc/images/fsx.png (renamed from ftnoir_protocol_sc/images/fsx.png)bin813 -> 813 bytes
-rw-r--r--protocol-sc/images/fsx1.png (renamed from ftnoir_protocol_sc/images/fsx1.png)bin1920 -> 1920 bytes
-rw-r--r--protocol-sc/sc-protocol.qrc (renamed from ftnoir_protocol_sc/sc-protocol.qrc)0
-rw-r--r--protocol-sc/scserver.manifest (renamed from ftnoir_protocol_sc/scserver.manifest)0
-rw-r--r--protocol-sc/scserver_acceleration.manifest (renamed from ftnoir_protocol_sc/scserver_acceleration.manifest)0
-rw-r--r--protocol-sc/scserver_sp2.manifest (renamed from ftnoir_protocol_sc/scserver_sp2.manifest)0
-rw-r--r--protocol-vjoy/CMakeLists.txt14
-rw-r--r--protocol-vjoy/ftnoir_protocol_vjoy.cpp (renamed from ftnoir_protocol_vjoy/ftnoir_protocol_vjoy.cpp)0
-rw-r--r--protocol-vjoy/ftnoir_protocol_vjoy.h (renamed from ftnoir_protocol_vjoy/ftnoir_protocol_vjoy.h)0
-rw-r--r--protocol-vjoy/ftnoir_protocol_vjoy_dialog.cpp (renamed from ftnoir_protocol_vjoy/ftnoir_protocol_vjoy_dialog.cpp)0
-rw-r--r--protocol-vjoy/ftnoir_vjoy_controls.ui (renamed from ftnoir_protocol_vjoy/ftnoir_vjoy_controls.ui)0
-rw-r--r--protocol-vjoy/images/vjoy.png (renamed from ftnoir_protocol_vjoy/images/vjoy.png)bin694 -> 694 bytes
-rw-r--r--protocol-vjoy/vjoy-protocol.qrc (renamed from ftnoir_protocol_vjoy/vjoy-protocol.qrc)0
-rw-r--r--protocol-vjoy/vjoy.def (renamed from ftnoir_protocol_vjoy/vjoy.def)0
-rw-r--r--protocol-wine/CMakeLists.txt26
-rw-r--r--protocol-wine/ftnoir_protocol_wine.cpp (renamed from ftnoir_protocol_wine/ftnoir_protocol_wine.cpp)0
-rw-r--r--protocol-wine/ftnoir_protocol_wine.h (renamed from ftnoir_protocol_wine/ftnoir_protocol_wine.h)0
-rw-r--r--protocol-wine/ftnoir_protocol_wine_dialog.cpp (renamed from ftnoir_protocol_wine/ftnoir_protocol_wine_dialog.cpp)0
-rw-r--r--protocol-wine/ftnoir_winecontrols.ui (renamed from ftnoir_protocol_wine/ftnoir_winecontrols.ui)0
-rw-r--r--protocol-wine/images/wine.png (renamed from ftnoir_protocol_wine/images/wine.png)bin376 -> 376 bytes
-rw-r--r--protocol-wine/opentrack-wrapper-wine-main.cxx (renamed from ftnoir_protocol_wine/opentrack-wrapper-wine-main.cxx)0
-rw-r--r--protocol-wine/opentrack-wrapper-wine-posix.cxx (renamed from ftnoir_protocol_wine/opentrack-wrapper-wine-posix.cxx)0
-rw-r--r--protocol-wine/opentrack-wrapper-wine-windows.cxx (renamed from ftnoir_protocol_wine/opentrack-wrapper-wine-windows.cxx)0
-rw-r--r--protocol-wine/wine-protocol.qrc (renamed from ftnoir_protocol_wine/wine-protocol.qrc)0
-rw-r--r--protocol-wine/wine-shm.h (renamed from ftnoir_protocol_wine/wine-shm.h)0
-rw-r--r--settings/facetracknoir supported games.csv (renamed from bin/settings/facetracknoir supported games.csv)0
-rw-r--r--spline-widget/CMakeLists.txt6
-rw-r--r--spline-widget/broken/qfunctionconfiguratorplugin.cpp (renamed from qfunctionconfigurator/broken/qfunctionconfiguratorplugin.cpp)0
-rw-r--r--spline-widget/broken/qfunctionconfiguratorplugin.h (renamed from qfunctionconfigurator/broken/qfunctionconfiguratorplugin.h)0
-rw-r--r--spline-widget/functionconfig.cpp (renamed from qfunctionconfigurator/functionconfig.cpp)0
-rw-r--r--spline-widget/functionconfig.h (renamed from qfunctionconfigurator/functionconfig.h)0
-rw-r--r--spline-widget/qfunctionconfigurator.cpp (renamed from qfunctionconfigurator/qfunctionconfigurator.cpp)2
-rw-r--r--spline-widget/qfunctionconfigurator.h (renamed from qfunctionconfigurator/qfunctionconfigurator.h)2
-rw-r--r--tracker-aruco/CMakeLists.txt8
-rw-r--r--tracker-aruco/ar_video_widget.cpp (renamed from ftnoir_tracker_aruco/ar_video_widget.cpp)0
-rw-r--r--tracker-aruco/ar_video_widget.h (renamed from ftnoir_tracker_aruco/ar_video_widget.h)0
-rw-r--r--tracker-aruco/aruco-tracker.qrc (renamed from ftnoir_tracker_aruco/aruco-tracker.qrc)0
-rw-r--r--tracker-aruco/aruco-trackercontrols.ui (renamed from ftnoir_tracker_aruco/aruco-trackercontrols.ui)0
-rw-r--r--tracker-aruco/ftnoir_tracker_aruco.cpp (renamed from ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp)0
-rw-r--r--tracker-aruco/ftnoir_tracker_aruco.h (renamed from ftnoir_tracker_aruco/ftnoir_tracker_aruco.h)2
-rw-r--r--tracker-aruco/images/aruco.png (renamed from ftnoir_tracker_aruco/images/aruco.png)bin987 -> 987 bytes
-rw-r--r--tracker-aruco/include/aruco.h (renamed from ftnoir_tracker_aruco/include/aruco.h)0
-rw-r--r--tracker-aruco/include/arucofidmarkers.h (renamed from ftnoir_tracker_aruco/include/arucofidmarkers.h)0
-rw-r--r--tracker-aruco/include/board.h (renamed from ftnoir_tracker_aruco/include/board.h)0
-rw-r--r--tracker-aruco/include/boarddetector.h (renamed from ftnoir_tracker_aruco/include/boarddetector.h)0
-rw-r--r--tracker-aruco/include/cameraparameters.h (renamed from ftnoir_tracker_aruco/include/cameraparameters.h)0
-rw-r--r--tracker-aruco/include/cvdrawingutils.h (renamed from ftnoir_tracker_aruco/include/cvdrawingutils.h)0
-rw-r--r--tracker-aruco/include/exports.h (renamed from ftnoir_tracker_aruco/include/exports.h)0
-rw-r--r--tracker-aruco/include/marker.h (renamed from ftnoir_tracker_aruco/include/marker.h)0
-rw-r--r--tracker-aruco/include/markerdetector.h (renamed from ftnoir_tracker_aruco/include/markerdetector.h)0
-rw-r--r--tracker-aruco/trans_calib.cpp (renamed from ftnoir_tracker_aruco/trans_calib.cpp)0
-rw-r--r--tracker-aruco/trans_calib.h (renamed from ftnoir_tracker_aruco/trans_calib.h)0
-rw-r--r--tracker-freepie-udp/CMakeLists.txt1
-rw-r--r--tracker-freepie-udp/freepie-udp-controls.ui (renamed from ftnoir_tracker_freepie-udp/freepie-udp-controls.ui)0
-rw-r--r--tracker-freepie-udp/freepie-udp-res.qrc (renamed from ftnoir_tracker_freepie-udp/freepie-udp-res.qrc)0
-rw-r--r--tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp (renamed from ftnoir_tracker_freepie-udp/ftnoir_tracker_freepie-udp.cpp)0
-rw-r--r--tracker-freepie-udp/ftnoir_tracker_freepie-udp.h (renamed from ftnoir_tracker_freepie-udp/ftnoir_tracker_freepie-udp.h)0
-rw-r--r--tracker-freepie-udp/ftnoir_tracker_freepie-udp_dialog.cpp (renamed from ftnoir_tracker_freepie-udp/ftnoir_tracker_freepie-udp_dialog.cpp)0
-rw-r--r--tracker-freepie-udp/glovepie.png (renamed from ftnoir_tracker_freepie-udp/glovepie.png)bin3584 -> 3584 bytes
-rw-r--r--tracker-hatire/CMakeLists.txt5
-rw-r--r--tracker-hatire/ftnoir_arduino_type.h (renamed from ftnoir_tracker_hatire/ftnoir_arduino_type.h)0
-rw-r--r--tracker-hatire/ftnoir_hat.qrc (renamed from ftnoir_tracker_hatire/ftnoir_hat.qrc)0
-rw-r--r--tracker-hatire/ftnoir_hatcontrols.ui (renamed from ftnoir_tracker_hatire/ftnoir_hatcontrols.ui)0
-rw-r--r--tracker-hatire/ftnoir_tracker_hat.cpp (renamed from ftnoir_tracker_hatire/ftnoir_tracker_hat.cpp)0
-rw-r--r--tracker-hatire/ftnoir_tracker_hat.h (renamed from ftnoir_tracker_hatire/ftnoir_tracker_hat.h)0
-rw-r--r--tracker-hatire/ftnoir_tracker_hat_dialog.cpp (renamed from ftnoir_tracker_hatire/ftnoir_tracker_hat_dialog.cpp)0
-rw-r--r--tracker-hatire/ftnoir_tracker_hat_dialog.h (renamed from ftnoir_tracker_hatire/ftnoir_tracker_hat_dialog.h)0
-rw-r--r--tracker-hatire/ftnoir_tracker_hat_settings.cpp (renamed from ftnoir_tracker_hatire/ftnoir_tracker_hat_settings.cpp)0
-rw-r--r--tracker-hatire/ftnoir_tracker_hat_settings.h (renamed from ftnoir_tracker_hatire/ftnoir_tracker_hat_settings.h)0
-rw-r--r--tracker-hatire/images/hat.ico (renamed from ftnoir_tracker_hatire/images/hat.ico)bin1150 -> 1150 bytes
-rw-r--r--tracker-hatire/images/hat.png (renamed from ftnoir_tracker_hatire/images/hat.png)bin249 -> 249 bytes
-rw-r--r--tracker-hatire/images/hat_logo.png (renamed from ftnoir_tracker_hatire/images/hat_logo.png)bin15210 -> 15210 bytes
-rw-r--r--tracker-ht/CMakeLists.txt11
-rw-r--r--tracker-ht/ftnoir_tracker_ht.cpp (renamed from ftnoir_tracker_ht/ftnoir_tracker_ht.cpp)0
-rw-r--r--tracker-ht/ftnoir_tracker_ht.h (renamed from ftnoir_tracker_ht/ftnoir_tracker_ht.h)0
-rw-r--r--tracker-ht/headtracker-ftnoir.h (renamed from ftnoir_tracker_ht/headtracker-ftnoir.h)0
-rw-r--r--tracker-ht/ht-api.h (renamed from ftnoir_tracker_ht/ht-api.h)0
-rw-r--r--tracker-ht/ht-tracker.qrc (renamed from ftnoir_tracker_ht/ht-tracker.qrc)0
-rw-r--r--tracker-ht/ht-trackercontrols.ui (renamed from ftnoir_tracker_ht/ht-trackercontrols.ui)0
-rw-r--r--tracker-ht/ht_video_widget.cpp (renamed from ftnoir_tracker_ht/ht_video_widget.cpp)0
-rw-r--r--tracker-ht/ht_video_widget.h (renamed from ftnoir_tracker_ht/ht_video_widget.h)0
-rw-r--r--tracker-ht/images/ht.png (renamed from ftnoir_tracker_ht/images/ht.png)bin2010 -> 2010 bytes
-rw-r--r--tracker-hydra/CMakeLists.txt44
-rw-r--r--tracker-hydra/ftnoir_hydra_clientcontrols.ui (renamed from ftnoir_tracker_hydra/ftnoir_hydra_clientcontrols.ui)0
-rw-r--r--tracker-hydra/ftnoir_tracker_hydra.cpp (renamed from ftnoir_tracker_hydra/ftnoir_tracker_hydra.cpp)0
-rw-r--r--tracker-hydra/ftnoir_tracker_hydra.h (renamed from ftnoir_tracker_hydra/ftnoir_tracker_hydra.h)0
-rw-r--r--tracker-hydra/ftnoir_tracker_hydra_dialog.cpp (renamed from ftnoir_tracker_hydra/ftnoir_tracker_hydra_dialog.cpp)0
-rw-r--r--tracker-joystick/CMakeLists.txt4
-rw-r--r--tracker-joystick/ftnoir_tracker_joystick.cpp (renamed from ftnoir_tracker_joystick/ftnoir_tracker_joystick.cpp)0
-rw-r--r--tracker-joystick/ftnoir_tracker_joystick.h (renamed from ftnoir_tracker_joystick/ftnoir_tracker_joystick.h)0
-rw-r--r--tracker-joystick/ftnoir_tracker_joystick_controls.ui (renamed from ftnoir_tracker_joystick/ftnoir_tracker_joystick_controls.ui)0
-rw-r--r--tracker-joystick/ftnoir_tracker_joystick_dialog.cpp (renamed from ftnoir_tracker_joystick/ftnoir_tracker_joystick_dialog.cpp)0
-rw-r--r--tracker-pt/CMakeLists.txt5
-rw-r--r--tracker-pt/FTNoIR_PT_Controls.ui (renamed from ftnoir_tracker_pt/FTNoIR_PT_Controls.ui)0
-rw-r--r--tracker-pt/Resources/Logo_IR.png (renamed from ftnoir_tracker_pt/Resources/Logo_IR.png)bin10386 -> 10386 bytes
-rw-r--r--tracker-pt/Resources/cap_front.png (renamed from ftnoir_tracker_pt/Resources/cap_front.png)bin1164 -> 1164 bytes
-rw-r--r--tracker-pt/Resources/cap_side.png (renamed from ftnoir_tracker_pt/Resources/cap_side.png)bin1733 -> 1733 bytes
-rw-r--r--tracker-pt/Resources/clip_front.png (renamed from ftnoir_tracker_pt/Resources/clip_front.png)bin571 -> 571 bytes
-rw-r--r--tracker-pt/Resources/clip_side.png (renamed from ftnoir_tracker_pt/Resources/clip_side.png)bin2677 -> 2677 bytes
-rw-r--r--tracker-pt/camera.cpp (renamed from ftnoir_tracker_pt/camera.cpp)0
-rw-r--r--tracker-pt/camera.h (renamed from ftnoir_tracker_pt/camera.h)0
-rw-r--r--tracker-pt/doc/index.htm (renamed from ftnoir_tracker_pt/doc/index.htm)0
-rw-r--r--tracker-pt/doc/logo.png (renamed from ftnoir_tracker_pt/doc/logo.png)bin10386 -> 10386 bytes
-rw-r--r--tracker-pt/doc/ptrack.ico (renamed from ftnoir_tracker_pt/doc/ptrack.ico)bin4286 -> 4286 bytes
-rw-r--r--tracker-pt/doc/settings1.png (renamed from ftnoir_tracker_pt/doc/settings1.png)bin25013 -> 25013 bytes
-rw-r--r--tracker-pt/doc/settings2.png (renamed from ftnoir_tracker_pt/doc/settings2.png)bin26841 -> 26841 bytes
-rw-r--r--tracker-pt/doc/settings3.png (renamed from ftnoir_tracker_pt/doc/settings3.png)bin29547 -> 29547 bytes
-rw-r--r--tracker-pt/doc/style.css (renamed from ftnoir_tracker_pt/doc/style.css)0
-rw-r--r--tracker-pt/ftnoir_tracker_pt.cpp (renamed from ftnoir_tracker_pt/ftnoir_tracker_pt.cpp)0
-rw-r--r--tracker-pt/ftnoir_tracker_pt.h (renamed from ftnoir_tracker_pt/ftnoir_tracker_pt.h)0
-rw-r--r--tracker-pt/ftnoir_tracker_pt.qrc (renamed from ftnoir_tracker_pt/ftnoir_tracker_pt.qrc)0
-rw-r--r--tracker-pt/ftnoir_tracker_pt_dialog.cpp (renamed from ftnoir_tracker_pt/ftnoir_tracker_pt_dialog.cpp)0
-rw-r--r--tracker-pt/ftnoir_tracker_pt_dialog.h (renamed from ftnoir_tracker_pt/ftnoir_tracker_pt_dialog.h)0
-rw-r--r--tracker-pt/ftnoir_tracker_pt_settings.h (renamed from ftnoir_tracker_pt/ftnoir_tracker_pt_settings.h)0
-rw-r--r--tracker-pt/point_extractor.cpp (renamed from ftnoir_tracker_pt/point_extractor.cpp)0
-rw-r--r--tracker-pt/point_extractor.h (renamed from ftnoir_tracker_pt/point_extractor.h)0
-rw-r--r--tracker-pt/point_tracker.cpp (renamed from ftnoir_tracker_pt/point_tracker.cpp)0
-rw-r--r--tracker-pt/point_tracker.h (renamed from ftnoir_tracker_pt/point_tracker.h)0
-rw-r--r--tracker-pt/pt_video_widget.cpp (renamed from ftnoir_tracker_pt/pt_video_widget.cpp)0
-rw-r--r--tracker-pt/pt_video_widget.h (renamed from ftnoir_tracker_pt/pt_video_widget.h)0
-rw-r--r--tracker-pt/trans_calib.cpp (renamed from ftnoir_tracker_pt/trans_calib.cpp)0
-rw-r--r--tracker-pt/trans_calib.h (renamed from ftnoir_tracker_pt/trans_calib.h)0
-rw-r--r--tracker-rift-025/CMakeLists.txt3
-rw-r--r--tracker-rift-025/ftnoir_rift_025.qrc (renamed from ftnoir_tracker_rift_025/ftnoir_rift_025.qrc)0
-rw-r--r--tracker-rift-025/ftnoir_rift_clientcontrols_025.ui (renamed from ftnoir_tracker_rift_025/ftnoir_rift_clientcontrols_025.ui)0
-rw-r--r--tracker-rift-025/ftnoir_tracker_rift_025.cpp (renamed from ftnoir_tracker_rift_025/ftnoir_tracker_rift_025.cpp)0
-rw-r--r--tracker-rift-025/ftnoir_tracker_rift_025.h (renamed from ftnoir_tracker_rift_025/ftnoir_tracker_rift_025.h)0
-rw-r--r--tracker-rift-025/ftnoir_tracker_rift_dialog_025.cpp (renamed from ftnoir_tracker_rift_025/ftnoir_tracker_rift_dialog_025.cpp)0
-rw-r--r--tracker-rift-025/images/medium.png (renamed from ftnoir_tracker_rift_025/images/medium.png)bin5764 -> 5764 bytes
-rw-r--r--tracker-rift-025/images/rift_medium.png (renamed from ftnoir_tracker_rift_025/images/rift_medium.png)bin5764 -> 5764 bytes
-rw-r--r--tracker-rift-025/images/rift_small.png (renamed from ftnoir_tracker_rift_025/images/rift_small.png)bin1212 -> 1212 bytes
-rw-r--r--tracker-rift-025/images/rift_tiny.png (renamed from ftnoir_tracker_rift_025/images/rift_tiny.png)bin624 -> 624 bytes
-rw-r--r--tracker-rift-025/images/small.png (renamed from ftnoir_tracker_rift_025/images/small.png)bin1212 -> 1212 bytes
-rw-r--r--tracker-rift-025/images/tiny.png (renamed from ftnoir_tracker_rift_025/images/tiny.png)bin624 -> 624 bytes
-rw-r--r--tracker-rift-042/CMakeLists.txt3
-rw-r--r--tracker-rift-042/ftnoir_rift_042.qrc (renamed from ftnoir_tracker_rift_042/ftnoir_rift_042.qrc)0
-rw-r--r--tracker-rift-042/ftnoir_rift_clientcontrols_042.ui (renamed from ftnoir_tracker_rift_042/ftnoir_rift_clientcontrols_042.ui)0
-rw-r--r--tracker-rift-042/ftnoir_tracker_rift_042.cpp (renamed from ftnoir_tracker_rift_042/ftnoir_tracker_rift_042.cpp)0
-rw-r--r--tracker-rift-042/ftnoir_tracker_rift_042.h (renamed from ftnoir_tracker_rift_042/ftnoir_tracker_rift_042.h)0
-rw-r--r--tracker-rift-042/ftnoir_tracker_rift_dialog_042.cpp (renamed from ftnoir_tracker_rift_042/ftnoir_tracker_rift_dialog_042.cpp)0
-rw-r--r--tracker-rift-042/images/medium.png (renamed from ftnoir_tracker_rift_042/images/medium.png)bin5764 -> 5764 bytes
-rw-r--r--tracker-rift-042/images/rift_medium.png (renamed from ftnoir_tracker_rift_042/images/rift_medium.png)bin5764 -> 5764 bytes
-rw-r--r--tracker-rift-042/images/rift_small.png (renamed from ftnoir_tracker_rift_042/images/rift_small.png)bin1212 -> 1212 bytes
-rw-r--r--tracker-rift-042/images/rift_tiny.png (renamed from ftnoir_tracker_rift_042/images/rift_tiny.png)bin624 -> 624 bytes
-rw-r--r--tracker-rift-042/images/small.png (renamed from ftnoir_tracker_rift_042/images/small.png)bin1212 -> 1212 bytes
-rw-r--r--tracker-rift-042/images/tiny.png (renamed from ftnoir_tracker_rift_042/images/tiny.png)bin624 -> 624 bytes
-rw-r--r--tracker-rift-080/CMakeLists.txt3
-rw-r--r--tracker-rift-080/ftnoir_rift_080.qrc (renamed from ftnoir_tracker_rift_080/ftnoir_rift_080.qrc)0
-rw-r--r--tracker-rift-080/ftnoir_rift_clientcontrols_080.ui (renamed from ftnoir_tracker_rift_080/ftnoir_rift_clientcontrols_080.ui)0
-rw-r--r--tracker-rift-080/ftnoir_tracker_rift_080.cpp (renamed from ftnoir_tracker_rift_080/ftnoir_tracker_rift_080.cpp)0
-rw-r--r--tracker-rift-080/ftnoir_tracker_rift_080.h (renamed from ftnoir_tracker_rift_080/ftnoir_tracker_rift_080.h)0
-rw-r--r--tracker-rift-080/ftnoir_tracker_rift_dialog_080.cpp (renamed from ftnoir_tracker_rift_080/ftnoir_tracker_rift_dialog_080.cpp)0
-rw-r--r--tracker-rift-080/images/medium.png (renamed from ftnoir_tracker_rift_080/images/medium.png)bin5764 -> 5764 bytes
-rw-r--r--tracker-rift-080/images/rift_medium.png (renamed from ftnoir_tracker_rift_080/images/rift_medium.png)bin5764 -> 5764 bytes
-rw-r--r--tracker-rift-080/images/rift_small.png (renamed from ftnoir_tracker_rift_080/images/rift_small.png)bin1212 -> 1212 bytes
-rw-r--r--tracker-rift-080/images/rift_tiny.png (renamed from ftnoir_tracker_rift_080/images/rift_tiny.png)bin624 -> 624 bytes
-rw-r--r--tracker-rift-080/images/small.png (renamed from ftnoir_tracker_rift_080/images/small.png)bin1212 -> 1212 bytes
-rw-r--r--tracker-rift-080/images/tiny.png (renamed from ftnoir_tracker_rift_080/images/tiny.png)bin624 -> 624 bytes
-rw-r--r--tracker-rs/CMakeLists.txt5
-rw-r--r--tracker-rs/README.md (renamed from ftnoir_tracker_rs/README.md)0
-rw-r--r--tracker-rs/ftnoir_tracker_rs.cpp (renamed from ftnoir_tracker_rs/ftnoir_tracker_rs.cpp)0
-rw-r--r--tracker-rs/ftnoir_tracker_rs.h (renamed from ftnoir_tracker_rs/ftnoir_tracker_rs.h)0
-rw-r--r--tracker-rs/ftnoir_tracker_rs_controls.cpp (renamed from ftnoir_tracker_rs/ftnoir_tracker_rs_controls.cpp)0
-rw-r--r--tracker-rs/ftnoir_tracker_rs_controls.h (renamed from ftnoir_tracker_rs/ftnoir_tracker_rs_controls.h)0
-rw-r--r--tracker-rs/ftnoir_tracker_rs_controls.ui (renamed from ftnoir_tracker_rs/ftnoir_tracker_rs_controls.ui)0
-rw-r--r--tracker-rs/images/RS.png (renamed from ftnoir_tracker_rs/images/RS.png)bin4770 -> 4770 bytes
-rw-r--r--tracker-rs/images/intel-16x16.png (renamed from ftnoir_tracker_rs/images/intel-16x16.png)bin637 -> 637 bytes
-rw-r--r--tracker-rs/redist/intel_rs_sdk_runtime_websetup_6.0.21.6598.exe (renamed from ftnoir_tracker_rs/redist/intel_rs_sdk_runtime_websetup_6.0.21.6598.exe)bin780456 -> 780456 bytes
-rw-r--r--tracker-rs/rs_impl/bin/opentrack-tracker-rs-impl.exe (renamed from ftnoir_tracker_rs/rs_impl/bin/opentrack-tracker-rs-impl.exe)bin83968 -> 83968 bytes
-rw-r--r--tracker-rs/rs_impl/build.bat (renamed from ftnoir_tracker_rs/rs_impl/build.bat)0
-rw-r--r--tracker-rs/rs_impl/ftnoir_tracker_rs_impl.cpp (renamed from ftnoir_tracker_rs/rs_impl/ftnoir_tracker_rs_impl.cpp)0
-rw-r--r--tracker-rs/rs_impl/ftnoir_tracker_rs_impl.h (renamed from ftnoir_tracker_rs/rs_impl/ftnoir_tracker_rs_impl.h)0
-rw-r--r--tracker-rs/rs_impl/udp_sender.cpp (renamed from ftnoir_tracker_rs/rs_impl/udp_sender.cpp)0
-rw-r--r--tracker-rs/rs_tracker.qrc (renamed from ftnoir_tracker_rs/rs_tracker.qrc)0
-rw-r--r--tracker-udp/CMakeLists.txt1
-rw-r--r--tracker-udp/ftnoir_ftnclientcontrols.ui (renamed from ftnoir_tracker_udp/ftnoir_ftnclientcontrols.ui)0
-rw-r--r--tracker-udp/ftnoir_tracker_udp.cpp (renamed from ftnoir_tracker_udp/ftnoir_tracker_udp.cpp)0
-rw-r--r--tracker-udp/ftnoir_tracker_udp.h (renamed from ftnoir_tracker_udp/ftnoir_tracker_udp.h)0
-rw-r--r--tracker-udp/ftnoir_tracker_udp_dialog.cpp (renamed from ftnoir_tracker_udp/ftnoir_tracker_udp_dialog.cpp)0
-rw-r--r--x-plane-plugin/CMakeLists.txt29
260 files changed, 605 insertions, 621 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a444bce3..0b43189c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,615 +1,31 @@
project(opentrack)
cmake_minimum_required(VERSION 2.8.11)
-cmake_policy(SET CMP0020 NEW)
-if(POLICY CMP0058)
- cmake_policy(SET CMP0058 OLD)
-endif()
-if(POLICY CMP0028)
- cmake_policy(SET CMP0028 OLD)
-endif()
-if(POLICY CMP0042)
- cmake_policy(SET CMP0042 NEW)
-endif()
-
-include(CMakeParseArguments)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/)
-include(GetGitRevisionDescription)
-find_package(Git QUIET)
-if(GIT_FOUND)
- git_describe(OPENTRACK_COMMIT --tags --always --dirty)
- git_describe(OPENTRACK_TAG_EXACT --tag --exact)
-endif()
-
-file(WRITE ${CMAKE_BINARY_DIR}/opentrack-version.h "#define OPENTRACK_VERSION \"${OPENTRACK_COMMIT}\"")
-
-## start crapola
-
-set(version-string "
-#include \"opentrack-compat/export.hpp\"
-
-#ifdef __cplusplus
-extern \"C\"
-#endif
-OPENTRACK_EXPORT
-const char* opentrack_version;
-
-const char* opentrack_version = \"${OPENTRACK_COMMIT}\";
-")
-
-set(crapola-ver)
-if(EXISTS ${CMAKE_BINARY_DIR}/version.cc)
- file(READ ${CMAKE_BINARY_DIR}/version.cc crapola-ver)
-endif()
-
-if(NOT (crapola-ver STREQUAL version-string))
- file(WRITE ${CMAKE_BINARY_DIR}/version.cc "${version-string}")
-endif()
-
-## end crapola
-
-SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
-set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
-SET(CMAKE_SKIP_INSTALL_RPATH FALSE)
-SET(CMAKE_SKIP_RPATH FALSE)
-SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX})
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-set(CMAKE_AUTOMOC OFF)
-set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-
-find_package(OpenCV 3.0)
-
-find_package(Qt5 REQUIRED COMPONENTS Core Xml Network Widgets Gui QUIET)
-find_package(Qt5 COMPONENTS SerialPort QUIET)
-include_directories(SYSTEM ${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})
-
-if(MSVC)
- add_definitions(-DNOMINMAX -D_CRT_SECURE_NO_WARNINGS)
-endif()
-
-set(MY_QT_LIBS ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Xml_LIBRARIES})
-
-# note, hatire supports both ftnoir and opentrack
-# don't remove without being sure as hell -sh 20140922
-add_definitions(-DOPENTRACK_API)
-
-if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
- set(CMAKE_COMPILER_IS_GNUCC TRUE)
- set(CMAKE_COMPILER_IS_GNUCXX TRUE)
-endif()
-
-if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE)
- if(MINGW)
- set(version-script mingw)
- else()
- set(version-script posix)
- endif()
-endif()
-
-if(APPLE)
- set(CMAKE_MACOSX_RPATH OFF)
- set(apple-frameworks "-stdlib=libc++ -framework Cocoa -framework CoreFoundation -lobjc -lz -framework Carbon")
- set(CMAKE_SHARED_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_SHARED_LINKER_FLAGS}")
- #set(CMAKE_STATIC_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_STATIC_LINKER_FLAGS}")
- set(CMAKE_EXE_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_EXE_LINKER_FLAGS}")
- set(CMAKE_MODULE_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_MODULE_LINKER_FLAGS}")
- set(CMAKE_CXX_FLAGS " -stdlib=libc++ ${CMAKE_CXX_FLAGS}")
-endif()
-
-if(CMAKE_COMPILER_IS_GNUCXX OR APPLE)
- set(CMAKE_CXX_FLAGS " -std=c++11 ${CMAKE_CXX_FLAGS} ")
-endif()
-
-set_property(GLOBAL PROPERTY USE_FOLDERS OFF)
-
-macro(opentrack_module n dir)
- file(GLOB ${n}-c ${dir}/*.cpp ${dir}/*.c ${dir}/*.h ${dir}/*.hpp)
- file(GLOB ${n}-res ${dir}/*.rc)
- foreach(f ${n}-res)
- set_source_files_properties(${f} PROPERTIES LANGUAGE RC)
- endforeach()
- file(GLOB ${n}-ui ${dir}/*.ui)
- file(GLOB ${n}-rc ${dir}/*.qrc)
-endmacro()
-
-macro(opentrack_qt n)
- qt5_wrap_cpp(${n}-moc ${${n}-c} OPTIONS --no-notes)
- QT5_WRAP_UI(${n}-uih ${${n}-ui})
- QT5_ADD_RESOURCES(${n}-rcc ${${n}-rc})
- set(${n}-all ${${n}-c} ${${n}-rc} ${${n}-rcc} ${${n}-uih} ${${n}-moc} ${${n}-res})
-endmacro()
-
-set(msvc-subsystem "/VERSION:5.1 /SUBSYSTEM:WINDOWS,5.01")
-function(opentrack_compat target)
- if(MSVC)
- set_target_properties(${target} PROPERTIES LINK_FLAGS "${msvc-subsystem} /DEBUG /OPT:ICF")
- endif()
-endfunction()
-
-macro(opentrack_library n dir)
- cmake_parse_arguments(foolib "" "LINK;COMPILE;GNU-LINK;GNU-COMPILE;STATIC" "" ${ARGN})
- if(NOT " ${foolib_UNPARSED_ARGUMENTS}" STREQUAL " ")
- message(FATAL_ERROR "opentrack_library bad formals")
- endif()
- opentrack_module(${n} ${dir})
- opentrack_qt(${n})
- set(link-mode SHARED)
- if (foolib_STATIC)
- set(link-mode STATIC)
- endif()
- add_library(${n} ${link-mode} ${${n}-all})
- target_link_libraries(${n} opentrack-api ${MY_QT_LIBS} opentrack-compat)
- if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE)
- SET_TARGET_PROPERTIES(${n} PROPERTIES
- LINK_FLAGS "${foolib_LINK} ${foolib_GNU-LINK} -Wl,--as-needed -Wl,--version-script=\"${CMAKE_SOURCE_DIR}/opentrack-compat/${version-script}-version-script.txt\""
- COMPILE_FLAGS "${foolib_COMPILE} ${foolib_GNU-COMPILE} -fvisibility=hidden -fvisibility-inlines-hidden"
- )
- else()
- set(link-flags)
- if(MSVC)
- set(link-flags "${msvc-subsystem} /DEBUG /OPT:ICF")
- endif()
- set_target_properties(${n} PROPERTIES LINK_FLAGS "${link-flags} ${foolib_LINK}" COMPILE_FLAGS "${foolib_COMPILE}")
- endif()
- if(NOT foolib_STATIC)
- install(TARGETS ${n} RUNTIME DESTINATION . LIBRARY DESTINATION .)
- endif()
- opentrack_compat(${n})
-endmacro()
-
-function(link_with_dinput8 n)
- if(WIN32)
- target_link_libraries(${n} dinput8 dxguid strmiids)
- endif()
-endfunction()
-
-# ----
-
-# cache variables
-
-# ----
-
-IF(WIN32)
- SET(SDK_VJOY "" CACHE PATH "VJoy SDK path")
- SET(SDK_CONSOLE_DEBUG FALSE CACHE BOOL "Console window visible at runtime")
-ENDIF()
-
-IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- set(LINUX TRUE)
-endif()
-
-if(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 for Razer Hydra")
-SET(SDK_HYDRA_AMD64 FALSE CACHE BOOL "whether libSixense is amd64 (else ia-32)")
-SET(SDK_RIFT_080 "" CACHE PATH "libOVR path for Oculus Rift")
-SET(SDK_RIFT_042 "" CACHE PATH "libOVR path for Oculus Rift")
-SET(SDK_RIFT_025 "" CACHE PATH "libOVR 0.2.5 path for Oculus Rift")
-
-set(SDK_ARUCO_LIBPATH "" CACHE FILEPATH "Aruco paper marker tracker static library path")
-
-set(SDK_HT "" CACHE FILEPATH "Path to headtracker library")
-set(SDK_HT_FLANDMARK "" CACHE FILEPATH "Path to flandmark library for headtracker")
-
-if(WIN32)
- set(SDK_FSUIPC "" CACHE PATH "FSUIPC for older MS FSX path")
-endif()
-
-if(NOT WIN32)
- 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()
-
-# --- tarball
-
-string(TIMESTAMP filename-date "%Y%m%d")
-set(filename-ostype ${CMAKE_SYSTEM_NAME})
-get_git_head_revision(filename-branch_0 filename-hash_0)
-if(filename-hash_0)
- string(SUBSTRING "${filename-hash_0}" 0 7 filename-hash)
-endif()
-string(REPLACE "refs/heads/" "" filename-branch_1 "${filename-branch_0}")
-string(REPLACE "/" "-" filename-branch "${filename-branch_1}")
-set(filename_0 "${OPENTRACK_COMMIT}")
-set(filename_1)
-if (NOT OPENTRACK_TAG_EXACT STREQUAL OPENTRACK_COMMIT)
- string(TIMESTAMP filename_1 "-%Y%m%d%H%M%S")
-endif()
-set(filename "${CMAKE_BINARY_DIR}/${filename_0}${filename_1}.zip")
-
-add_custom_target(tarball-real)
-add_custom_target(tarball-real2)
-add_custom_command(TARGET tarball-real COMMAND cmake -P ${CMAKE_SOURCE_DIR}/cmake/tarball.cmake)
-
-add_custom_command(TARGET tarball-real2 COMMAND /usr/bin/env sh
- "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}"
- "${filename}" "${CMAKE_BINARY_DIR}")
-add_custom_target(tarball DEPENDS tarball-real)
-
-# -- end tarball
-
-opentrack_module(opentrack-api opentrack)
-opentrack_qt(opentrack-api)
-add_library(opentrack-api STATIC ${opentrack-api-all})
-opentrack_compat(opentrack-api)
-target_link_libraries(opentrack-api ${MY_QT_LIBS})
-if(NOT WIN32)
- target_link_libraries(opentrack-api dl)
-else()
- target_link_libraries(opentrack-api winmm)
-endif()
-
-opentrack_module(opentrack-compat opentrack-compat)
-add_library(opentrack-compat STATIC ${opentrack-compat-c})
-opentrack_compat(opentrack-compat) # uh...
-if(NOT WIN32 AND NOT APPLE)
- target_link_libraries(opentrack-compat rt)
-endif()
-
-# ----
-
-# conditional targets
-
-# ----
-
-set(opentrack-perms PERMISSIONS WORLD_READ WORLD_EXECUTE OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE)
-
-if(WIN32)
- if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)
- set(CMAKE_RC_COMPILER_INIT i686-w64-mingw32-windres)
- SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> --use-temp-file -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
- endif()
- ENABLE_LANGUAGE(RC)
-endif(WIN32)
-
-opentrack_module(opentrack-xplane-plugin x-plane-plugin)
-
-if(SDK_XPLANE)
- # probably librt already included
- add_library(opentrack-xplane-plugin SHARED ${opentrack-xplane-plugin-c})
- target_include_directories(opentrack-xplane-plugin SYSTEM PUBLIC ${SDK_XPLANE}/CHeaders ${SDK_XPLANE}/CHeaders/XPLM)
- if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC AND NOT APPLE)
- SET_TARGET_PROPERTIES(opentrack-xplane-plugin
- PROPERTIES LINK_FLAGS
- "-Wl,--version-script=${CMAKE_SOURCE_DIR}/x-plane-plugin/version-script.txt -shared -rdynamic -nodefaultlibs -undefined_warning -fPIC"
- COMPILE_FLAGS "-Wall -O2 -pipe -fPIC -DLIN -DXPLM200 -DXPLM210"
- LIBRARY_OUTPUT_NAME "opentrack.xpl"
- PREFIX "" SUFFIX "")
- endif()
- if(APPLE)
- SET_TARGET_PROPERTIES(opentrack-xplane-plugin PROPERTIES
- COMPILE_FLAGS "-iframework ${SDK_XPLANE}/Libraries/Mac/ -DAPL -DXPLM200 -DXPLM210 -framework XPLM -framework XPWidgets"
- LINK_FLAGS "-F${SDK_XPLANE}/Libraries/Mac/ -framework XPLM -framework XPWidgets"
- LIBRARY_OUTPUT_NAME "opentrack.xpl"
- PREFIX "" SUFFIX "")
- endif()
- if(UNIX AND NOT APPLE)
- target_link_libraries(opentrack-xplane-plugin rt)
- endif()
-endif()
-
-opentrack_module(opentrack-csv csv)
-add_library(opentrack-csv STATIC ${opentrack-csv-c})
-opentrack_compat(opentrack-csv)
-target_link_libraries(opentrack-csv ${MY_QT_LIBS})
-
-opentrack_module(opentrack-pose-widget pose-widget)
-opentrack_qt(opentrack-pose-widget)
-
-add_library(opentrack-pose-widget STATIC ${opentrack-pose-widget-all})
-opentrack_compat(opentrack-pose-widget)
-target_include_directories(opentrack-pose-widget PUBLIC pose-widget/) # else Qt moc breaks
-target_link_libraries(opentrack-pose-widget ${MY_QT_LIBS})
-
-opentrack_module(opentrack-spline-widget qfunctionconfigurator)
-opentrack_qt(opentrack-spline-widget)
-add_library(opentrack-spline-widget STATIC ${opentrack-spline-widget-all})
-opentrack_compat(opentrack-spline-widget)
-target_include_directories(opentrack-spline-widget PUBLIC qfunctionconfigurator/)
-target_link_libraries(opentrack-spline-widget ${MY_QT_LIBS})
-
-add_library(opentrack-version STATIC ${CMAKE_BINARY_DIR}/version.cc)
-opentrack_compat(opentrack-version)
-
-opentrack_library(opentrack-filter-accela ftnoir_filter_accela)
-target_link_libraries(opentrack-filter-accela opentrack-spline-widget)
-opentrack_library(opentrack-filter-ewma ftnoir_filter_ewma2)
-
-opentrack_library(opentrack-proto-fgfs ftnoir_protocol_fg)
-
-if(SDK_VJOY)
- opentrack_library(opentrack-proto-vjoy ftnoir_protocol_vjoy GNU-LINK "-Wl,--enable-stdcall-fixup")
- if(MSVC)
- set(ext .lib)
- else()
- set(ext .dll)
- endif()
- target_link_libraries(opentrack-proto-vjoy ${MY_QT_LIBS} ${SDK_VJOY}/VJoy${ext})
- target_include_directories(opentrack-proto-vjoy SYSTEM PUBLIC ${SDK_VJOY})
-endif()
-
-if(SDK_ENABLE_LIBEVDEV)
- include(FindPkgConfig)
- opentrack_library(opentrack-proto-libevdev ftnoir_protocol_libevdev)
- pkg_check_modules(libevdev REQUIRED QUIET libevdev)
- target_link_libraries(opentrack-proto-libevdev ${libevdev_LIBRARIES})
- include_directories(opentrack-proto-libevdev SYSTEM PUBLIC ${libevdev_INCLUDE_DIRS})
-endif()
-
-if(SDK_FSUIPC)
- opentrack_library(opentrack-proto-fsuipc ftnoir_protocol_fsuipc)
- target_link_libraries(opentrack-proto-fsuipc ${SDK_FSUIPC}/FSUIPC_User.lib)
- target_include_directories(opentrack-proto-fsuipc SYSTEM PUBLIC ${SDK_FSUIPC})
- if(MSVC)
- set_target_properties(opentrack-proto-fsuipc PROPERTIES LINK_FLAGS "/NODEFAULTLIB:LIBC.lib")
- endif()
- #target_link_directories(${SDK_FSUIPC})
-endif()
-
-if(WIN32)
- opentrack_library(opentrack-proto-simconnect ftnoir_protocol_sc)
-endif()
-
-if(WIN32)
- opentrack_library(opentrack-proto-freetrack ftnoir_protocol_ft)
- target_link_libraries(opentrack-proto-freetrack opentrack-csv opentrack-compat)
- opentrack_library(opentrack-proto-win32-mouse ftnoir_protocol_mouse)
-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)
- target_link_libraries(opentrack-tracker-hatire ${Qt5SerialPort_LIBRARIES})
- target_include_directories(opentrack-tracker-hatire SYSTEM PUBLIC ${Qt5SerialPort_INCLUDE_DIRS})
-endif()
-
-if(SDK_WINE_PREFIX)
- opentrack_library(opentrack-proto-wine ftnoir_protocol_wine)
- target_link_libraries(opentrack-proto-wine opentrack-compat opentrack-csv)
- if(NOT SDK_WINE_NO_WRAPPER)
- set(my-rt -lrt)
- if(APPLE)
- set(my-rt)
- endif()
- file(GLOB wine-deps ${CMAKE_SOURCE_DIR}/ftnoir_protocol_wine/*.cxx)
- add_custom_command(
- OUTPUT opentrack-wrapper-wine.exe.so
- DEPENDS ${wine-deps}
- COMMAND ${SDK_WINE_PREFIX}/bin/wineg++ -g -DNOMINMAX -O2 -m32 -std=c++11 -o
- opentrack-wrapper-wine.exe -I "${CMAKE_SOURCE_DIR}"
- ${wine-deps}
- ${my-rt})
- add_custom_target(wine-wrapper ALL DEPENDS opentrack-wrapper-wine.exe.so)
- add_dependencies(opentrack-proto-wine wine-wrapper)
- add_dependencies(wine-wrapper opentrack-compat)
- endif()
-endif()
-
-opentrack_library(opentrack-tracker-udp ftnoir_tracker_udp)
-opentrack_library(opentrack-tracker-freepie-udp ftnoir_tracker_freepie-udp)
-
-if(WIN32)
- opentrack_library(opentrack-tracker-rs ftnoir_tracker_rs)
-endif()
-
-if(OpenCV_FOUND)
- opentrack_library(opentrack-tracker-pt ftnoir_tracker_pt)
- target_link_libraries(opentrack-tracker-pt ${OpenCV_LIBS})
- target_include_directories(opentrack-tracker-pt SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})
- link_with_dinput8(opentrack-tracker-pt)
-
- if(SDK_ARUCO_LIBPATH)
- opentrack_library(opentrack-tracker-aruco ftnoir_tracker_aruco)
- target_link_libraries(opentrack-tracker-aruco ${SDK_ARUCO_LIBPATH} ${OpenCV_LIBS})
- target_include_directories(opentrack-tracker-aruco SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})
- link_with_dinput8(opentrack-tracker-aruco)
- endif()
-
- opentrack_library(opentrack-filter-kalman ftnoir_filter_kalman)
- target_link_libraries(opentrack-filter-kalman ${OpenCV_LIBS})
- target_include_directories(opentrack-filter-kalman SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})
-
- if(SDK_HT AND SDK_HT_FLANDMARK)
- opentrack_library(opentrack-tracker-ht ftnoir_tracker_ht)
- target_link_libraries(opentrack-tracker-ht ${SDK_HT} ${SDK_HT_FLANDMARK} ${OpenCV_LIBS})
- link_with_dinput8(opentrack-tracker-ht)
- target_include_directories(opentrack-tracker-ht SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})
- endif()
-endif()
-
-link_with_dinput8(opentrack-tracker-joystick)
-
-foreach(ver 025 042 080)
- if(SDK_RIFT_${ver})
- set(link-flags)
- set(c-flags)
- if(APPLE)
- set(link-flags "-framework CoreFoundation -framework CoreGraphics -framework IOKit -framework Quartz")
- set(c-flags "-fno-strict-aliasing")
- else()
- if(NOT MSVC)
- set(c-flags "-fno-strict-aliasing")
- endif()
- endif()
- opentrack_library(opentrack-tracker-rift-${ver} ftnoir_tracker_rift_${ver} LINK ${link-flags} COMPILE ${c-flags})
- target_include_directories(opentrack-tracker-rift-${ver} SYSTEM PUBLIC
- ${SDK_RIFT_${ver}}/Include ${SDK_RIFT_${ver}}/Src
- )
- if(WIN32)
- if(MSVC)
- set(ext lib)
- set(p)
- else()
- set(ext a)
- set(p lib)
- endif()
- target_link_libraries(opentrack-tracker-rift-${ver} ${SDK_RIFT_${ver}}/${p}LibOVR.${ext} winmm setupapi ws2_32 imagehlp wbemuuid)
- else()
- if(NOT APPLE)
- target_link_libraries(opentrack-tracker-rift-${ver} ${SDK_RIFT_${ver}}/libLibOVR.a udev Xinerama)
- else()
- target_link_libraries(opentrack-tracker-rift-${ver} ${SDK_RIFT_${ver}}/libLibOVR.a)
- endif()
- endif()
- endif()
+include(CMakeParseArguments)
+include(opentrack-policy)
+include(opentrack-platform)
+include(opentrack-macros)
+include(opentrack-qt)
+include(opentrack-version)
+include(opentrack-tarball)
+include(opentrack-install)
+
+set(C CMakeLists.txt)
+file(GLOB opentrack-subprojects
+ "tracker-*/${C}"
+ "protocol-*/${C}"
+ "filter-*/${C}"
+ "opentrack*/${C}"
+ "facetracknoir/${C}"
+ "x-plane-plugin/${C}"
+ "csv/${C}"
+ "pose-widget/${C}"
+ "spline-widget/${C}"
+)
+foreach(i ${opentrack-subprojects})
+ get_filename_component(i ${i} DIRECTORY)
+ get_filename_component(j ${i} NAME)
+ message(STATUS "project ${j}")
+ add_subdirectory(${i})
endforeach()
-
-if(SDK_HYDRA)
- opentrack_library(opentrack-tracker-hydra ftnoir_tracker_hydra)
- target_include_directories(opentrack-tracker-hydra SYSTEM PUBLIC ${SDK_HYDRA}/include ${SDK_HYDRA}/include/sixense_utils)
- if(WIN32)
- if(MSVC)
- set(dir lib)
- set(ext lib)
- else()
- set(dir bin)
- set(ext dll)
- endif()
- target_link_libraries(opentrack-tracker-hydra
- "${SDK_HYDRA}/${dir}/win32/release_dll/sixense.${ext}"
- #"${SDK_HYDRA}/${dir}/win32/release_dll/sixense_utils.${ext}"
- )
- install(FILES "${SDK_HYDRA}/bin/win32/release_dll/sixense.dll"
- #"${SDK_HYDRA}/bin/win32/release_dll/sixense_utils.dll"
- DESTINATION . ${opentrack-perms})
- else()
- if(SDK_HYDRA_AMD64)
- set(underscore-sixtyfour _x64)
- else()
- set(underscore-sixtyfour)
- endif()
- if(APPLE)
- set(underscore-dll _dll)
- set(soext dylib)
- set(sixense-plat osx)
- else()
- set(underscore-dll)
- set(soext so)
- set(sixense-plat linux)
- endif()
- install(FILES
- "${SDK_HYDRA}/lib/${sixense-plat}${underscore-sixtyfour}/release${underscore-dll}/libsixense${underscore-sixtyfour}.${soext}"
- #"${SDK_HYDRA}/lib/${sixense-plat}${underscore-sixtyfour}/release${underscore-dll}/libsixense_utils${underscore-sixtyfour}.${soext}"
- DESTINATION .
- )
- target_link_libraries(opentrack-tracker-hydra
- "${SDK_HYDRA}/lib/${sixense-plat}${underscore-sixtyfour}/release${underscore-dll}/libsixense${underscore-sixtyfour}.${soext}"
- #"${SDK_HYDRA}/lib/${sixense-plat}${underscore-sixtyfour}/release${underscore-dll}/libsixense_utils${underscore-sixtyfour}.${soext}"
- )
- endif()
-endif()
-
-if(UNIX OR APPLE)
- # Qxt bundled :: sorry for this, but gentoo ebuild is broken
- include_directories("qxt-mini/")
- if(APPLE)
- set(qxt-plat mac)
- else()
- set(qxt-plat x11)
- endif()
- file(GLOB qxt-mini-c qxt-mini/*.h qxt-mini/qxtglobalshortcut.cpp qxt-mini/plat/qxtglobalshortcut_${qxt-plat}.cpp)
- opentrack_qt(qxt-mini)
- add_library(opentrack-qxt-mini STATIC ${qxt-mini-all})
- target_link_libraries(opentrack-qxt-mini ${MY_QT_LIBS})
- if(NOT APPLE)
- target_link_libraries(opentrack-qxt-mini X11)
- endif()
-endif()
-
-if(WIN32 AND NOT SDK_CONSOLE_DEBUG)
- set(opentrack-win32-executable WIN32)
-else()
- set(opentrack-win32-executable "")
-endif()
-
-opentrack_module(opentrack facetracknoir)
-if(UNIX OR APPLE)
- list(APPEND opentrack-c qxt-mini/qxtglobalshortcut.h)
-endif()
-opentrack_qt(opentrack)
-add_executable(opentrack ${opentrack-win32-executable} ${opentrack-all})
-opentrack_compat(opentrack)
-if(NOT WIN32)
- set_target_properties(opentrack PROPERTIES SUFFIX ".bin")
-endif()
-target_link_libraries(opentrack opentrack-api opentrack-version opentrack-pose-widget opentrack-spline-widget)
-
-if(APPLE)
- SET_TARGET_PROPERTIES(opentrack-qxt-mini PROPERTIES LINK_FLAGS "-framework Carbon -framework CoreFoundation")
-endif()
-
-if(UNIX OR APPLE)
- target_link_libraries(opentrack opentrack-qxt-mini)
-endif()
-
-link_with_dinput8(opentrack)
-target_link_libraries(opentrack ${MY_QT_LIBS})
-
-if(APPLE)
- # for process detector
- target_link_libraries(opentrack proc)
-endif()
-
-if(LINUX)
- # for process detector
- target_link_libraries(opentrack procps)
-endif()
-
-# ----
-
-# make install
-
-# ----
-
-install(FILES ${CMAKE_SOURCE_DIR}/README.md DESTINATION .)
-
-if(SDK_XPLANE)
- install(TARGETS opentrack-xplane-plugin RUNTIME DESTINATION . LIBRARY DESTINATION . )
-endif()
-
-install(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty-notices DESTINATION .)
-
-install(FILES "${CMAKE_SOURCE_DIR}/bin/freetrackclient.dll" DESTINATION . ${opentrack-perms})
-install(FILES "${CMAKE_SOURCE_DIR}/bin/NPClient.dll" "${CMAKE_SOURCE_DIR}/bin/NPClient64.dll" "${CMAKE_SOURCE_DIR}/bin/TrackIR.exe" DESTINATION .
- ${opentrack-perms})
-install(DIRECTORY "${CMAKE_SOURCE_DIR}/bin/settings" "${CMAKE_SOURCE_DIR}/contrib" DESTINATION .)
-
-if(NOT WIN32 AND SDK_WINE_PREFIX AND NOT SDK_WINE_NO_WRAPPER)
- install(FILES "${CMAKE_BINARY_DIR}/opentrack-wrapper-wine.exe.so"
- DESTINATION .)
-endif()
-
-install(TARGETS opentrack DESTINATION .)
-
-if(SDK_VJOY)
- install(FILES "${SDK_VJOY}/VJoy.dll" DESTINATION . ${opentrack-perms})
-endif()
-
-if(WIN32)
- install(FILES "${CMAKE_SOURCE_DIR}/bin/cleye.config" DESTINATION .)
-endif()
-
-if(WIN32)
- install(FILES "${CMAKE_SOURCE_DIR}/ftnoir_tracker_rs/rs_impl/bin/opentrack-tracker-rs-impl.exe" DESTINATION . ${opentrack-perms})
- install(FILES
- "${CMAKE_SOURCE_DIR}/ftnoir_tracker_rs/redist/intel_rs_sdk_runtime_websetup_6.0.21.6598.exe" DESTINATION ./contrib/ ${opentrack-perms})
-endif()
-
-if(APPLE)
- install(CODE "
- execute_process(COMMAND /bin/sh \"${CMAKE_SOURCE_DIR}/macosx/make-app-bundle.sh\"
- \"${CMAKE_SOURCE_DIR}/macosx\"
- \"${CMAKE_INSTALL_PREFIX}\"
- \"${CMAKE_BINARY_DIR}\"
- \"${OPENTRACK_COMMIT}\")
- ")
-endif()
diff --git a/cmake/opentrack-install.cmake b/cmake/opentrack-install.cmake
new file mode 100644
index 00000000..8e3d0420
--- /dev/null
+++ b/cmake/opentrack-install.cmake
@@ -0,0 +1,27 @@
+set(opentrack-perms PERMISSIONS WORLD_READ WORLD_EXECUTE OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE)
+
+if(WIN32)
+ install(FILES "${CMAKE_SOURCE_DIR}/bin/cleye.config" DESTINATION .)
+endif()
+
+install(FILES ${CMAKE_SOURCE_DIR}/README.md DESTINATION .)
+
+install(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty-notices DESTINATION .)
+install(DIRECTORY "${CMAKE_SOURCE_DIR}/settings" "${CMAKE_SOURCE_DIR}/contrib" DESTINATION .)
+
+install(FILES "${CMAKE_SOURCE_DIR}/bin/freetrackclient.dll" DESTINATION . ${opentrack-perms})
+install(FILES
+ "${CMAKE_SOURCE_DIR}/bin/NPClient.dll"
+ "${CMAKE_SOURCE_DIR}/bin/NPClient64.dll"
+ "${CMAKE_SOURCE_DIR}/bin/TrackIR.exe"
+ DESTINATION . ${opentrack-perms})
+
+if(APPLE)
+ install(CODE "
+ execute_process(COMMAND /bin/sh \"${CMAKE_SOURCE_DIR}/macosx/make-app-bundle.sh\"
+ \"${CMAKE_SOURCE_DIR}/macosx\"
+ \"${CMAKE_INSTALL_PREFIX}\"
+ \"${CMAKE_BINARY_DIR}\"
+ \"${OPENTRACK_COMMIT}\")
+ ")
+endif()
diff --git a/cmake/opentrack-macros.cmake b/cmake/opentrack-macros.cmake
new file mode 100644
index 00000000..a9fa5bc7
--- /dev/null
+++ b/cmake/opentrack-macros.cmake
@@ -0,0 +1,79 @@
+macro(opentrack_module n dir)
+ file(GLOB ${n}-c ${dir}/*.cpp ${dir}/*.c ${dir}/*.h ${dir}/*.hpp)
+ file(GLOB ${n}-res ${dir}/*.rc)
+ foreach(f ${n}-res)
+ set_source_files_properties(${f} PROPERTIES LANGUAGE RC)
+ endforeach()
+ file(GLOB ${n}-ui ${dir}/*.ui)
+ file(GLOB ${n}-rc ${dir}/*.qrc)
+endmacro()
+
+macro(opentrack_boilerplate opentrack-project-name)
+ set(extra_macro_args ${ARGN})
+ set(spliced ${extra_macro_args})
+ project(${opentrack-project-name})
+ opentrack_library(${opentrack-project-name} ${PROJECT_SOURCE_DIR} ${spliced})
+ set(spliced)
+endmacro()
+
+macro(opentrack_qt n)
+ qt5_wrap_cpp(${n}-moc ${${n}-c} OPTIONS --no-notes)
+ QT5_WRAP_UI(${n}-uih ${${n}-ui})
+ QT5_ADD_RESOURCES(${n}-rcc ${${n}-rc})
+ set(${n}-all ${${n}-c} ${${n}-rc} ${${n}-rcc} ${${n}-uih} ${${n}-moc} ${${n}-res})
+endmacro()
+
+set(msvc-subsystem "/VERSION:5.1 /SUBSYSTEM:WINDOWS,5.01")
+function(opentrack_compat target)
+ if(MSVC)
+ set_target_properties(${target} PROPERTIES LINK_FLAGS "${msvc-subsystem} /DEBUG /OPT:ICF")
+ endif()
+endfunction()
+
+macro(opentrack_library n dir)
+ cmake_parse_arguments(opentrack-foolib
+ "NO-LIBRARY;STATIC;NO-COMPAT"
+ "LINK;COMPILE;GNU-LINK;GNU-COMPILE"
+ ""
+ ${ARGN}
+ )
+ if(NOT " ${opentrack-foolib_UNPARSED_ARGUMENTS}" STREQUAL " ")
+ message(FATAL_ERROR "opentrack_library bad formals ${opentrack-foolib_UNPARSED_ARGUMENTS}")
+ endif()
+ opentrack_module(${n} ${dir})
+ opentrack_qt(${n})
+ set(link-mode SHARED)
+ if(NOT opentrack-foolib_NO-LIBRARY)
+ if (opentrack-foolib_STATIC)
+ set(link-mode STATIC)
+ endif()
+ add_library(${n} ${link-mode} ${${n}-all})
+ set(link-mode)
+ if(NOT opentrack-foolib_NO-COMPAT)
+ target_link_libraries(${n} opentrack-api ${MY_QT_LIBS} opentrack-compat)
+ endif()
+ if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE)
+ SET_TARGET_PROPERTIES(${n} PROPERTIES
+ LINK_FLAGS "${opentrack-foolib_LINK} ${opentrack-foolib_GNU-LINK} -Wl,--as-needed -Wl,--version-script=\"${CMAKE_SOURCE_DIR}/opentrack-compat/${version-script}-version-script.txt\""
+ COMPILE_FLAGS "${opentrack-foolib_COMPILE} ${opentrack-foolib_GNU-COMPILE} -fvisibility=hidden -fvisibility-inlines-hidden"
+ )
+ else()
+ set(link-flags)
+ if(MSVC)
+ set(link-flags "${msvc-subsystem} /DEBUG /OPT:ICF")
+ endif()
+ set_target_properties(${n} PROPERTIES LINK_FLAGS "${link-flags} ${opentrack-foolib_LINK}" COMPILE_FLAGS "${opentrack-foolib_COMPILE}")
+ set(link-flags)
+ endif()
+ if(NOT opentrack-foolib_STATIC)
+ install(TARGETS ${n} RUNTIME DESTINATION . LIBRARY DESTINATION .)
+ endif()
+ opentrack_compat(${n})
+ endif()
+endmacro()
+
+function(link_with_dinput8 n)
+ if(WIN32)
+ target_link_libraries(${n} dinput8 dxguid strmiids)
+ endif()
+endfunction()
diff --git a/cmake/opentrack-platform.cmake b/cmake/opentrack-platform.cmake
new file mode 100644
index 00000000..aac3a2b8
--- /dev/null
+++ b/cmake/opentrack-platform.cmake
@@ -0,0 +1,60 @@
+IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ set(LINUX TRUE)
+endif()
+
+if(MSVC)
+ add_definitions(-DNOMINMAX -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+if(WIN32)
+ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)
+ set(CMAKE_RC_COMPILER_INIT i686-w64-mingw32-windres)
+ SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> --use-temp-file -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
+ endif()
+ ENABLE_LANGUAGE(RC)
+endif(WIN32)
+
+set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
+set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+set(CMAKE_SKIP_INSTALL_RPATH FALSE)
+set(CMAKE_SKIP_RPATH FALSE)
+set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX})
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_AUTOMOC OFF)
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
+include_directories(${CMAKE_SOURCE_DIR})
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+
+# note, hatire supports both ftnoir and opentrack
+# don't remove without being sure as hell -sh 20140922
+add_definitions(-DOPENTRACK_API)
+
+if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
+ set(CMAKE_COMPILER_IS_GNUCC TRUE)
+ set(CMAKE_COMPILER_IS_GNUCXX TRUE)
+endif()
+
+if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE)
+ if(MINGW)
+ set(version-script mingw)
+ else()
+ set(version-script posix)
+ endif()
+endif()
+
+if(APPLE)
+ set(CMAKE_MACOSX_RPATH OFF)
+ set(apple-frameworks "-stdlib=libc++ -framework Cocoa -framework CoreFoundation -lobjc -lz -framework Carbon")
+ set(CMAKE_SHARED_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_SHARED_LINKER_FLAGS}")
+ #set(CMAKE_STATIC_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_STATIC_LINKER_FLAGS}")
+ set(CMAKE_EXE_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_EXE_LINKER_FLAGS}")
+ set(CMAKE_MODULE_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_MODULE_LINKER_FLAGS}")
+ set(CMAKE_CXX_FLAGS " -stdlib=libc++ ${CMAKE_CXX_FLAGS}")
+endif()
+
+if(CMAKE_COMPILER_IS_GNUCXX OR APPLE)
+ set(CMAKE_CXX_FLAGS " -std=c++11 ${CMAKE_CXX_FLAGS} ")
+endif()
+
+set_property(GLOBAL PROPERTY USE_FOLDERS OFF)
diff --git a/cmake/opentrack-policy.cmake b/cmake/opentrack-policy.cmake
new file mode 100644
index 00000000..48aba3cc
--- /dev/null
+++ b/cmake/opentrack-policy.cmake
@@ -0,0 +1,10 @@
+cmake_policy(SET CMP0020 NEW)
+if(POLICY CMP0058)
+ cmake_policy(SET CMP0058 OLD)
+endif()
+if(POLICY CMP0028)
+ cmake_policy(SET CMP0028 OLD)
+endif()
+if(POLICY CMP0042)
+ cmake_policy(SET CMP0042 NEW)
+endif()
diff --git a/cmake/opentrack-qt.cmake b/cmake/opentrack-qt.cmake
new file mode 100644
index 00000000..12966827
--- /dev/null
+++ b/cmake/opentrack-qt.cmake
@@ -0,0 +1,5 @@
+find_package(Qt5 REQUIRED COMPONENTS Core Xml Network Widgets Gui QUIET)
+find_package(Qt5 COMPONENTS SerialPort QUIET)
+include_directories(SYSTEM ${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})
+set(MY_QT_LIBS ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Xml_LIBRARIES})
diff --git a/cmake/opentrack-rift.cmake b/cmake/opentrack-rift.cmake
new file mode 100644
index 00000000..86396637
--- /dev/null
+++ b/cmake/opentrack-rift.cmake
@@ -0,0 +1,37 @@
+macro(opentrack_rift_boilerplate proj opt)
+ if(${opt})
+ set(link-flags)
+ set(c-flags)
+ if(APPLE)
+ set(link-flags "-framework CoreFoundation -framework CoreGraphics -framework IOKit -framework Quartz")
+ set(c-flags "-fno-strict-aliasing")
+ else()
+ if(NOT MSVC)
+ set(c-flags "-fno-strict-aliasing")
+ endif()
+ endif()
+ opentrack_boilerplate("${proj}" LINK ${link-flags} COMPILE ${c-flags})
+ set(proj ${opentrack-project-name})
+ target_include_directories(${proj} SYSTEM PUBLIC ${${opt}}/Include ${${opt}}/Src)
+ set(c-flags)
+ set(link-flags)
+ if(WIN32)
+ if(MSVC)
+ set(ext lib)
+ set(p)
+ else()
+ set(ext a)
+ set(p lib)
+ endif()
+ target_link_libraries(${proj} ${${opt}}/${p}LibOVR.${ext} winmm setupapi ws2_32 imagehlp wbemuuid)
+ set(ext)
+ set(p)
+ else()
+ if(NOT APPLE)
+ target_link_libraries(${proj} ${${opt}}/libLibOVR.a udev Xinerama)
+ else()
+ target_link_libraries(${proj} ${${opt}}/libLibOVR.a)
+ endif()
+ endif()
+ endif()
+endmacro()
diff --git a/cmake/opentrack-tarball.cmake b/cmake/opentrack-tarball.cmake
new file mode 100644
index 00000000..6b40081b
--- /dev/null
+++ b/cmake/opentrack-tarball.cmake
@@ -0,0 +1,23 @@
+string(TIMESTAMP filename-date "%Y%m%d")
+set(filename-ostype ${CMAKE_SYSTEM_NAME})
+get_git_head_revision(filename-branch_0 filename-hash_0)
+if(filename-hash_0)
+ string(SUBSTRING "${filename-hash_0}" 0 7 filename-hash)
+endif()
+string(REPLACE "refs/heads/" "" filename-branch_1 "${filename-branch_0}")
+string(REPLACE "/" "-" filename-branch "${filename-branch_1}")
+set(filename_0 "${OPENTRACK_COMMIT}")
+set(filename_1)
+if (NOT OPENTRACK_TAG_EXACT STREQUAL OPENTRACK_COMMIT)
+ string(TIMESTAMP filename_1 "-%Y%m%d%H%M%S")
+endif()
+set(filename "${CMAKE_BINARY_DIR}/${filename_0}${filename_1}.zip")
+
+add_custom_target(tarball-real)
+add_custom_target(tarball-real2)
+add_custom_command(TARGET tarball-real COMMAND cmake -P ${CMAKE_SOURCE_DIR}/cmake/tarball.cmake)
+
+add_custom_command(TARGET tarball-real2 COMMAND /usr/bin/env sh
+ "${CMAKE_SOURCE_DIR}/make-tar.sh" "${CMAKE_INSTALL_PREFIX}"
+ "${filename}" "${CMAKE_BINARY_DIR}")
+add_custom_target(tarball DEPENDS tarball-real)
diff --git a/cmake/opentrack-version.cmake b/cmake/opentrack-version.cmake
new file mode 100644
index 00000000..64072e1c
--- /dev/null
+++ b/cmake/opentrack-version.cmake
@@ -0,0 +1,33 @@
+include(GetGitRevisionDescription)
+
+find_package(Git QUIET)
+if(GIT_FOUND)
+ git_describe(OPENTRACK_COMMIT --tags --always --dirty)
+ git_describe(OPENTRACK_TAG_EXACT --tag --exact)
+endif()
+
+file(WRITE ${CMAKE_BINARY_DIR}/opentrack-version.h "#define OPENTRACK_VERSION \"${OPENTRACK_COMMIT}\"")
+
+add_library(opentrack-version STATIC ${CMAKE_BINARY_DIR}/version.cc)
+opentrack_compat(opentrack-version)
+
+set(version-string "
+#include \"opentrack-compat/export.hpp\"
+
+#ifdef __cplusplus
+extern \"C\"
+#endif
+OPENTRACK_EXPORT
+const char* opentrack_version;
+
+const char* opentrack_version = \"${OPENTRACK_COMMIT}\";
+")
+
+set(crapola-ver)
+if(EXISTS ${CMAKE_BINARY_DIR}/version.cc)
+ file(READ ${CMAKE_BINARY_DIR}/version.cc crapola-ver)
+endif()
+
+if(NOT (crapola-ver STREQUAL version-string))
+ file(WRITE ${CMAKE_BINARY_DIR}/version.cc "${version-string}")
+endif()
diff --git a/csv/CMakeLists.txt b/csv/CMakeLists.txt
new file mode 100644
index 00000000..07dae55c
--- /dev/null
+++ b/csv/CMakeLists.txt
@@ -0,0 +1,4 @@
+opentrack_boilerplate(opentrack-csv NO-LIBRARY)
+add_library(opentrack-csv STATIC ${opentrack-csv-c})
+opentrack_compat(opentrack-csv)
+target_link_libraries(opentrack-csv ${MY_QT_LIBS})
diff --git a/facetracknoir/CMakeLists.txt b/facetracknoir/CMakeLists.txt
new file mode 100644
index 00000000..51d0cea3
--- /dev/null
+++ b/facetracknoir/CMakeLists.txt
@@ -0,0 +1,62 @@
+opentrack_boilerplate(opentrack NO-LIBRARY)
+
+if(UNIX OR APPLE)
+ target_include_directories(opentrack "${CMAKE_SOURCE_DIR}/qxt-mini")
+ if(APPLE)
+ set(qxt-plat mac)
+ else()
+ set(qxt-plat x11)
+ endif()
+ file(GLOB qxt-mini-c
+ ${CMAKE_SOURCE_DIR}/qxt-mini/*.h
+ ${CMAKE_SOURCE_DIR}/qxt-mini/qxtglobalshortcut.cpp
+ ${CMAKE_SOURCE_DIR}/qxt-mini/plat/qxtglobalshortcut_${qxt-plat}.cpp
+ )
+ opentrack_qt(qxt-mini)
+ add_library(opentrack-qxt-mini STATIC ${qxt-mini-all})
+ target_link_libraries(opentrack-qxt-mini ${MY_QT_LIBS})
+ if(NOT APPLE)
+ target_link_libraries(opentrack-qxt-mini X11)
+ endif()
+endif()
+
+if(WIN32)
+ SET(SDK_CONSOLE_DEBUG FALSE CACHE BOOL "Console window visible at runtime")
+endif()
+
+if(WIN32 AND NOT SDK_CONSOLE_DEBUG)
+ set(opentrack-win32-executable WIN32)
+else()
+ set(opentrack-win32-executable "")
+endif()
+
+if(UNIX OR APPLE)
+ list(APPEND opentrack-c ${CMAKE_SOURCE_DIR}/qxt-mini/qxtglobalshortcut.h)
+endif()
+opentrack_qt(opentrack)
+add_executable(opentrack ${opentrack-win32-executable} ${opentrack-all})
+opentrack_compat(opentrack)
+if(NOT WIN32)
+ set_target_properties(opentrack PROPERTIES SUFFIX ".bin")
+endif()
+target_link_libraries(opentrack opentrack-api opentrack-version opentrack-pose-widget opentrack-spline-widget)
+if(APPLE)
+ SET_TARGET_PROPERTIES(opentrack-qxt-mini PROPERTIES LINK_FLAGS "-framework Carbon -framework CoreFoundation")
+endif()
+if(UNIX OR APPLE)
+ target_link_libraries(opentrack opentrack-qxt-mini)
+endif()
+link_with_dinput8(opentrack)
+target_link_libraries(opentrack ${MY_QT_LIBS})
+
+if(APPLE)
+ # for process detector
+ target_link_libraries(opentrack proc)
+endif()
+
+if(LINUX)
+ # for process detector
+ target_link_libraries(opentrack procps)
+endif()
+
+install(TARGETS opentrack DESTINATION .)
diff --git a/facetracknoir/main.ui b/facetracknoir/main.ui
index 24c3d38c..ab63e832 100644
--- a/facetracknoir/main.ui
+++ b/facetracknoir/main.ui
@@ -1231,7 +1231,7 @@
<customwidget>
<class>GLWidget</class>
<extends>QWidget</extends>
- <header>glwidget.h</header>
+ <header>pose-widget/glwidget.h</header>
</customwidget>
</customwidgets>
<tabstops>
diff --git a/facetracknoir/mapping.ui b/facetracknoir/mapping.ui
index 379bbe08..75c32e27 100644
--- a/facetracknoir/mapping.ui
+++ b/facetracknoir/mapping.ui
@@ -368,7 +368,7 @@
<customwidget>
<class>QFunctionConfigurator</class>
<extends>QWidget</extends>
- <header>qfunctionconfigurator.h</header>
+ <header>spline-widget/qfunctionconfigurator.h</header>
</customwidget>
</customwidgets>
<tabstops>
diff --git a/filter-accela/CMakeLists.txt b/filter-accela/CMakeLists.txt
new file mode 100644
index 00000000..5bfa8128
--- /dev/null
+++ b/filter-accela/CMakeLists.txt
@@ -0,0 +1,2 @@
+opentrack_boilerplate(opentrack-filter-accela)
+target_link_libraries(opentrack-filter-accela opentrack-spline-widget)
diff --git a/ftnoir_filter_accela/ftnoir_accela_filtercontrols.ui b/filter-accela/ftnoir_accela_filtercontrols.ui
index 3ab9a78e..3ab9a78e 100644
--- a/ftnoir_filter_accela/ftnoir_accela_filtercontrols.ui
+++ b/filter-accela/ftnoir_accela_filtercontrols.ui
diff --git a/ftnoir_filter_accela/ftnoir_filter_accela.cpp b/filter-accela/ftnoir_filter_accela.cpp
index 0158f27e..62d1598d 100644
--- a/ftnoir_filter_accela/ftnoir_filter_accela.cpp
+++ b/filter-accela/ftnoir_filter_accela.cpp
@@ -4,7 +4,7 @@
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*/
-#include "ftnoir_filter_accela/ftnoir_filter_accela.h"
+#include "ftnoir_filter_accela.h"
#include <algorithm>
#include <cmath>
#include <QDebug>
diff --git a/ftnoir_filter_accela/ftnoir_filter_accela.h b/filter-accela/ftnoir_filter_accela.h
index a6f04dfa..b15e0cea 100644
--- a/ftnoir_filter_accela/ftnoir_filter_accela.h
+++ b/filter-accela/ftnoir_filter_accela.h
@@ -7,7 +7,7 @@
#pragma once
#include "ui_ftnoir_accela_filtercontrols.h"
#include "opentrack/plugin-api.hpp"
-#include "qfunctionconfigurator/functionconfig.h"
+#include "spline-widget/functionconfig.h"
#include <atomic>
#include <QMutex>
#include <QTimer>
diff --git a/ftnoir_filter_accela/ftnoir_filter_accela_dialog.cpp b/filter-accela/ftnoir_filter_accela_dialog.cpp
index 3400ac92..599cb716 100644
--- a/ftnoir_filter_accela/ftnoir_filter_accela_dialog.cpp
+++ b/filter-accela/ftnoir_filter_accela_dialog.cpp
@@ -4,13 +4,13 @@
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*/
-#include "ftnoir_filter_accela/ftnoir_filter_accela.h"
+#include "ftnoir_filter_accela.h"
#include <cmath>
#include <QDebug>
#include <algorithm>
#include <QDoubleSpinBox>
#include "opentrack/plugin-api.hpp"
-#include "qfunctionconfigurator/qfunctionconfigurator.h"
+#include "spline-widget/qfunctionconfigurator.h"
#include <QDialog>
FilterControls::FilterControls() :
diff --git a/filter-ewma2/CMakeLists.txt b/filter-ewma2/CMakeLists.txt
new file mode 100644
index 00000000..af786487
--- /dev/null
+++ b/filter-ewma2/CMakeLists.txt
@@ -0,0 +1 @@
+opentrack_boilerplate(opentrack-filter-ewma)
diff --git a/ftnoir_filter_ewma2/ftnoir_ewma_filtercontrols.ui b/filter-ewma2/ftnoir_ewma_filtercontrols.ui
index 9387f0d5..9387f0d5 100644
--- a/ftnoir_filter_ewma2/ftnoir_ewma_filtercontrols.ui
+++ b/filter-ewma2/ftnoir_ewma_filtercontrols.ui
diff --git a/ftnoir_filter_ewma2/ftnoir_filter_ewma2.cpp b/filter-ewma2/ftnoir_filter_ewma2.cpp
index c09fb912..c09fb912 100644
--- a/ftnoir_filter_ewma2/ftnoir_filter_ewma2.cpp
+++ b/filter-ewma2/ftnoir_filter_ewma2.cpp
diff --git a/ftnoir_filter_ewma2/ftnoir_filter_ewma2.h b/filter-ewma2/ftnoir_filter_ewma2.h
index bf4e83ad..bf4e83ad 100644
--- a/ftnoir_filter_ewma2/ftnoir_filter_ewma2.h
+++ b/filter-ewma2/ftnoir_filter_ewma2.h
diff --git a/ftnoir_filter_ewma2/ftnoir_filter_ewma2_dialog.cpp b/filter-ewma2/ftnoir_filter_ewma2_dialog.cpp
index 30fb6003..30fb6003 100644
--- a/ftnoir_filter_ewma2/ftnoir_filter_ewma2_dialog.cpp
+++ b/filter-ewma2/ftnoir_filter_ewma2_dialog.cpp
diff --git a/filter-kalman/CMakeLists.txt b/filter-kalman/CMakeLists.txt
new file mode 100644
index 00000000..666a35db
--- /dev/null
+++ b/filter-kalman/CMakeLists.txt
@@ -0,0 +1,4 @@
+find_package(OpenCV 3.0)
+opentrack_boilerplate(opentrack-filter-kalman)
+target_link_libraries(opentrack-filter-kalman ${OpenCV_LIBS})
+target_include_directories(opentrack-filter-kalman SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})
diff --git a/ftnoir_filter_kalman/ftnoir_filter_kalman.h b/filter-kalman/ftnoir_filter_kalman.h
index a6f40bb7..a6f40bb7 100644
--- a/ftnoir_filter_kalman/ftnoir_filter_kalman.h
+++ b/filter-kalman/ftnoir_filter_kalman.h
diff --git a/ftnoir_filter_kalman/ftnoir_kalman_filtercontrols.ui b/filter-kalman/ftnoir_kalman_filtercontrols.ui
index 69297102..69297102 100644
--- a/ftnoir_filter_kalman/ftnoir_kalman_filtercontrols.ui
+++ b/filter-kalman/ftnoir_kalman_filtercontrols.ui
diff --git a/ftnoir_filter_kalman/kalman.cpp b/filter-kalman/kalman.cpp
index 39a08703..39a08703 100644
--- a/ftnoir_filter_kalman/kalman.cpp
+++ b/filter-kalman/kalman.cpp
diff --git a/opentrack-compat/CMakeLists.txt b/opentrack-compat/CMakeLists.txt
new file mode 100644
index 00000000..4f5fd724
--- /dev/null
+++ b/opentrack-compat/CMakeLists.txt
@@ -0,0 +1,4 @@
+opentrack_boilerplate(opentrack-compat STATIC NO-COMPAT)
+if(NOT WIN32 AND NOT APPLE)
+ target_link_libraries(opentrack-compat rt)
+endif()
diff --git a/opentrack/CMakeLists.txt b/opentrack/CMakeLists.txt
new file mode 100644
index 00000000..4581f394
--- /dev/null
+++ b/opentrack/CMakeLists.txt
@@ -0,0 +1,10 @@
+opentrack_boilerplate(opentrack-api NO-LIBRARY)
+opentrack_qt(opentrack-api)
+add_library(opentrack-api STATIC ${opentrack-api-all})
+opentrack_compat(opentrack-api)
+target_link_libraries(opentrack-api ${MY_QT_LIBS})
+if(NOT WIN32)
+ target_link_libraries(opentrack-api dl)
+else()
+ target_link_libraries(opentrack-api winmm)
+endif()
diff --git a/opentrack/mappings.hpp b/opentrack/mappings.hpp
index 2391efd1..bb38a3ca 100644
--- a/opentrack/mappings.hpp
+++ b/opentrack/mappings.hpp
@@ -10,7 +10,7 @@
#include <QSettings>
#include "options.hpp"
using namespace options;
-#include "qfunctionconfigurator/functionconfig.h"
+#include "spline-widget/functionconfig.h"
#include "main-settings.hpp"
class Mapping {
diff --git a/opentrack/tracker.h b/opentrack/tracker.h
index b0e89455..890660e1 100644
--- a/opentrack/tracker.h
+++ b/opentrack/tracker.h
@@ -16,7 +16,7 @@
#include "simple-mat.hpp"
#include "selected-libraries.hpp"
-#include "qfunctionconfigurator/functionconfig.h"
+#include "spline-widget/functionconfig.h"
#include "main-settings.hpp"
#include "options.hpp"
diff --git a/pose-widget/CMakeLists.txt b/pose-widget/CMakeLists.txt
new file mode 100644
index 00000000..66891c21
--- /dev/null
+++ b/pose-widget/CMakeLists.txt
@@ -0,0 +1,6 @@
+opentrack_boilerplate(opentrack-pose-widget NO-LIBRARY)
+opentrack_qt(opentrack-pose-widget)
+add_library(opentrack-pose-widget STATIC ${opentrack-pose-widget-all})
+opentrack_compat(opentrack-pose-widget)
+target_include_directories(opentrack-pose-widget PUBLIC pose-widget/) # else Qt moc breaks
+target_link_libraries(opentrack-pose-widget ${MY_QT_LIBS})
diff --git a/protocol-fg/CMakeLists.txt b/protocol-fg/CMakeLists.txt
new file mode 100644
index 00000000..151b30ee
--- /dev/null
+++ b/protocol-fg/CMakeLists.txt
@@ -0,0 +1 @@
+opentrack_boilerplate(opentrack-proto-fgfs)
diff --git a/ftnoir_protocol_fg/fg-protocol.qrc b/protocol-fg/fg-protocol.qrc
index 1c685437..1c685437 100644
--- a/ftnoir_protocol_fg/fg-protocol.qrc
+++ b/protocol-fg/fg-protocol.qrc
diff --git a/ftnoir_protocol_fg/fgtypes.h b/protocol-fg/fgtypes.h
index 2e493f46..2e493f46 100644
--- a/ftnoir_protocol_fg/fgtypes.h
+++ b/protocol-fg/fgtypes.h
diff --git a/ftnoir_protocol_fg/ftnoir_fgcontrols.ui b/protocol-fg/ftnoir_fgcontrols.ui
index 575549d6..575549d6 100644
--- a/ftnoir_protocol_fg/ftnoir_fgcontrols.ui
+++ b/protocol-fg/ftnoir_fgcontrols.ui
diff --git a/ftnoir_protocol_fg/ftnoir_protocol_fg.cpp b/protocol-fg/ftnoir_protocol_fg.cpp
index 660a7352..660a7352 100644
--- a/ftnoir_protocol_fg/ftnoir_protocol_fg.cpp
+++ b/protocol-fg/ftnoir_protocol_fg.cpp
diff --git a/ftnoir_protocol_fg/ftnoir_protocol_fg.h b/protocol-fg/ftnoir_protocol_fg.h
index de528270..de528270 100644
--- a/ftnoir_protocol_fg/ftnoir_protocol_fg.h
+++ b/protocol-fg/ftnoir_protocol_fg.h
diff --git a/ftnoir_protocol_fg/ftnoir_protocol_fg_dialog.cpp b/protocol-fg/ftnoir_protocol_fg_dialog.cpp
index 1d583115..1d583115 100644
--- a/ftnoir_protocol_fg/ftnoir_protocol_fg_dialog.cpp
+++ b/protocol-fg/ftnoir_protocol_fg_dialog.cpp
diff --git a/ftnoir_protocol_fg/images/flightgear.png b/protocol-fg/images/flightgear.png
index 2a546642..2a546642 100644
--- a/ftnoir_protocol_fg/images/flightgear.png
+++ b/protocol-fg/images/flightgear.png
Binary files differ
diff --git a/protocol-fsuipc/CMakeLists.txt b/protocol-fsuipc/CMakeLists.txt
new file mode 100644
index 00000000..ec897ae8
--- /dev/null
+++ b/protocol-fsuipc/CMakeLists.txt
@@ -0,0 +1,11 @@
+if(WIN32)
+ set(SDK_FSUIPC "" CACHE PATH "FSUIPC for older MS FSX path")
+ if(SDK_FSUIPC)
+ opentrack_boilerplate(opentrack-proto-fsuipc)
+ target_link_libraries(opentrack-proto-fsuipc ${SDK_FSUIPC}/FSUIPC_User.lib)
+ target_include_directories(opentrack-proto-fsuipc SYSTEM PUBLIC ${SDK_FSUIPC})
+ if(MSVC)
+ set_target_properties(opentrack-proto-fsuipc PROPERTIES LINK_FLAGS "/NODEFAULTLIB:LIBC.lib")
+ endif()
+ endif()
+endif()
diff --git a/ftnoir_protocol_fsuipc/fsuipc-protocol.qrc b/protocol-fsuipc/fsuipc-protocol.qrc
index 34756f84..34756f84 100644
--- a/ftnoir_protocol_fsuipc/fsuipc-protocol.qrc
+++ b/protocol-fsuipc/fsuipc-protocol.qrc
diff --git a/ftnoir_protocol_fsuipc/ftnoir_fsuipccontrols.ui b/protocol-fsuipc/ftnoir_fsuipccontrols.ui
index 637e4dba..637e4dba 100644
--- a/ftnoir_protocol_fsuipc/ftnoir_fsuipccontrols.ui
+++ b/protocol-fsuipc/ftnoir_fsuipccontrols.ui
diff --git a/ftnoir_protocol_fsuipc/ftnoir_protocol_fsuipc.cpp b/protocol-fsuipc/ftnoir_protocol_fsuipc.cpp
index 702a92d4..702a92d4 100644
--- a/ftnoir_protocol_fsuipc/ftnoir_protocol_fsuipc.cpp
+++ b/protocol-fsuipc/ftnoir_protocol_fsuipc.cpp
diff --git a/ftnoir_protocol_fsuipc/ftnoir_protocol_fsuipc.h b/protocol-fsuipc/ftnoir_protocol_fsuipc.h
index c8e91a42..c8e91a42 100644
--- a/ftnoir_protocol_fsuipc/ftnoir_protocol_fsuipc.h
+++ b/protocol-fsuipc/ftnoir_protocol_fsuipc.h
diff --git a/ftnoir_protocol_fsuipc/ftnoir_protocol_fsuipc_dialog.cpp b/protocol-fsuipc/ftnoir_protocol_fsuipc_dialog.cpp
index d573420a..d573420a 100644
--- a/ftnoir_protocol_fsuipc/ftnoir_protocol_fsuipc_dialog.cpp
+++ b/protocol-fsuipc/ftnoir_protocol_fsuipc_dialog.cpp
diff --git a/ftnoir_protocol_fsuipc/images/fs9.png b/protocol-fsuipc/images/fs9.png
index 914c9dcb..914c9dcb 100644
--- a/ftnoir_protocol_fsuipc/images/fs9.png
+++ b/protocol-fsuipc/images/fs9.png
Binary files differ
diff --git a/ftnoir_protocol_fsuipc/images/fs91.png b/protocol-fsuipc/images/fs91.png
index f9540d1d..f9540d1d 100644
--- a/ftnoir_protocol_fsuipc/images/fs91.png
+++ b/protocol-fsuipc/images/fs91.png
Binary files differ
diff --git a/protocol-ft/CMakeLists.txt b/protocol-ft/CMakeLists.txt
new file mode 100644
index 00000000..44f95ba3
--- /dev/null
+++ b/protocol-ft/CMakeLists.txt
@@ -0,0 +1,4 @@
+if(WIN32)
+ opentrack_boilerplate(opentrack-proto-freetrack)
+ target_link_libraries(opentrack-proto-freetrack opentrack-csv opentrack-compat)
+endif()
diff --git a/ftnoir_protocol_ft/ft-protocol.qrc b/protocol-ft/ft-protocol.qrc
index c04959f0..c04959f0 100644
--- a/ftnoir_protocol_ft/ft-protocol.qrc
+++ b/protocol-ft/ft-protocol.qrc
diff --git a/ftnoir_protocol_ft/ftnoir_ftcontrols.ui b/protocol-ft/ftnoir_ftcontrols.ui
index 5356d2e5..5356d2e5 100644
--- a/ftnoir_protocol_ft/ftnoir_ftcontrols.ui
+++ b/protocol-ft/ftnoir_ftcontrols.ui
diff --git a/ftnoir_protocol_ft/ftnoir_protocol_ft.cpp b/protocol-ft/ftnoir_protocol_ft.cpp
index 05253174..05253174 100644
--- a/ftnoir_protocol_ft/ftnoir_protocol_ft.cpp
+++ b/protocol-ft/ftnoir_protocol_ft.cpp
diff --git a/ftnoir_protocol_ft/ftnoir_protocol_ft.h b/protocol-ft/ftnoir_protocol_ft.h
index 8e50f1cb..8e50f1cb 100644
--- a/ftnoir_protocol_ft/ftnoir_protocol_ft.h
+++ b/protocol-ft/ftnoir_protocol_ft.h
diff --git a/ftnoir_protocol_ft/ftnoir_protocol_ft_dialog.cpp b/protocol-ft/ftnoir_protocol_ft_dialog.cpp
index 25f3a4cb..25f3a4cb 100644
--- a/ftnoir_protocol_ft/ftnoir_protocol_ft_dialog.cpp
+++ b/protocol-ft/ftnoir_protocol_ft_dialog.cpp
diff --git a/ftnoir_protocol_ft/images/freetrack.png b/protocol-ft/images/freetrack.png
index c184dc88..c184dc88 100644
--- a/ftnoir_protocol_ft/images/freetrack.png
+++ b/protocol-ft/images/freetrack.png
Binary files differ
diff --git a/protocol-ftn/CMakeLists.txt b/protocol-ftn/CMakeLists.txt
new file mode 100644
index 00000000..a0b74d9c
--- /dev/null
+++ b/protocol-ftn/CMakeLists.txt
@@ -0,0 +1 @@
+opentrack_boilerplate(opentrack-proto-udp)
diff --git a/ftnoir_protocol_ftn/ftnoir_ftncontrols.ui b/protocol-ftn/ftnoir_ftncontrols.ui
index ca811e99..ca811e99 100644
--- a/ftnoir_protocol_ftn/ftnoir_ftncontrols.ui
+++ b/protocol-ftn/ftnoir_ftncontrols.ui
diff --git a/ftnoir_protocol_ftn/ftnoir_protocol_ftn.cpp b/protocol-ftn/ftnoir_protocol_ftn.cpp
index db852f55..db852f55 100644
--- a/ftnoir_protocol_ftn/ftnoir_protocol_ftn.cpp
+++ b/protocol-ftn/ftnoir_protocol_ftn.cpp
diff --git a/ftnoir_protocol_ftn/ftnoir_protocol_ftn.h b/protocol-ftn/ftnoir_protocol_ftn.h
index 7fe6c225..7fe6c225 100644
--- a/ftnoir_protocol_ftn/ftnoir_protocol_ftn.h
+++ b/protocol-ftn/ftnoir_protocol_ftn.h
diff --git a/ftnoir_protocol_ftn/ftnoir_protocol_ftn_dialog.cpp b/protocol-ftn/ftnoir_protocol_ftn_dialog.cpp
index 77a1508a..77a1508a 100644
--- a/ftnoir_protocol_ftn/ftnoir_protocol_ftn_dialog.cpp
+++ b/protocol-ftn/ftnoir_protocol_ftn_dialog.cpp
diff --git a/protocol-libevdev/CMakeLists.txt b/protocol-libevdev/CMakeLists.txt
new file mode 100644
index 00000000..960a1271
--- /dev/null
+++ b/protocol-libevdev/CMakeLists.txt
@@ -0,0 +1,10 @@
+if(LINUX OR APPLE)
+ set(SDK_ENABLE_LIBEVDEV FALSE CACHE BOOL "libevdev virtual joystick protocol support")
+ if(SDK_ENABLE_LIBEVDEV)
+ include(FindPkgConfig)
+ opentrack_boilerplate(opentrack-proto-libevdev)
+ pkg_check_modules(libevdev REQUIRED QUIET libevdev)
+ target_link_libraries(opentrack-proto-libevdev ${libevdev_LIBRARIES})
+ include_directories(opentrack-proto-libevdev SYSTEM PUBLIC ${libevdev_INCLUDE_DIRS})
+ endif()
+endif()
diff --git a/ftnoir_protocol_libevdev/ftnoir_libevdev_controls.ui b/protocol-libevdev/ftnoir_libevdev_controls.ui
index d2b86445..d2b86445 100644
--- a/ftnoir_protocol_libevdev/ftnoir_libevdev_controls.ui
+++ b/protocol-libevdev/ftnoir_libevdev_controls.ui
diff --git a/ftnoir_protocol_libevdev/ftnoir_protocol_libevdev.cpp b/protocol-libevdev/ftnoir_protocol_libevdev.cpp
index 96805b39..96805b39 100644
--- a/ftnoir_protocol_libevdev/ftnoir_protocol_libevdev.cpp
+++ b/protocol-libevdev/ftnoir_protocol_libevdev.cpp
diff --git a/ftnoir_protocol_libevdev/ftnoir_protocol_libevdev.h b/protocol-libevdev/ftnoir_protocol_libevdev.h
index ecb3b201..ecb3b201 100644
--- a/ftnoir_protocol_libevdev/ftnoir_protocol_libevdev.h
+++ b/protocol-libevdev/ftnoir_protocol_libevdev.h
diff --git a/ftnoir_protocol_libevdev/ftnoir_protocol_libevdev_dialog.cpp b/protocol-libevdev/ftnoir_protocol_libevdev_dialog.cpp
index 70495a8f..70495a8f 100644
--- a/ftnoir_protocol_libevdev/ftnoir_protocol_libevdev_dialog.cpp
+++ b/protocol-libevdev/ftnoir_protocol_libevdev_dialog.cpp
diff --git a/ftnoir_protocol_libevdev/images/linux.png b/protocol-libevdev/images/linux.png
index 8836c0e2..8836c0e2 100644
--- a/ftnoir_protocol_libevdev/images/linux.png
+++ b/protocol-libevdev/images/linux.png
Binary files differ
diff --git a/ftnoir_protocol_libevdev/libevdev-protocol.qrc b/protocol-libevdev/libevdev-protocol.qrc
index 70bb415f..70bb415f 100644
--- a/ftnoir_protocol_libevdev/libevdev-protocol.qrc
+++ b/protocol-libevdev/libevdev-protocol.qrc
diff --git a/protocol-mouse/CMakeLists.txt b/protocol-mouse/CMakeLists.txt
new file mode 100644
index 00000000..b221c79c
--- /dev/null
+++ b/protocol-mouse/CMakeLists.txt
@@ -0,0 +1,3 @@
+if(WIN32)
+ opentrack_boilerplate(opentrack-proto-win32-mouse)
+endif()
diff --git a/ftnoir_protocol_mouse/ftnoir_mousecontrols.ui b/protocol-mouse/ftnoir_mousecontrols.ui
index b1f4bcf8..b1f4bcf8 100644
--- a/ftnoir_protocol_mouse/ftnoir_mousecontrols.ui
+++ b/protocol-mouse/ftnoir_mousecontrols.ui
diff --git a/ftnoir_protocol_mouse/ftnoir_protocol_mouse.cpp b/protocol-mouse/ftnoir_protocol_mouse.cpp
index c0a0a868..c0a0a868 100644
--- a/ftnoir_protocol_mouse/ftnoir_protocol_mouse.cpp
+++ b/protocol-mouse/ftnoir_protocol_mouse.cpp
diff --git a/ftnoir_protocol_mouse/ftnoir_protocol_mouse.h b/protocol-mouse/ftnoir_protocol_mouse.h
index 595be393..595be393 100644
--- a/ftnoir_protocol_mouse/ftnoir_protocol_mouse.h
+++ b/protocol-mouse/ftnoir_protocol_mouse.h
diff --git a/ftnoir_protocol_mouse/ftnoir_protocol_mouse_dialog.cpp b/protocol-mouse/ftnoir_protocol_mouse_dialog.cpp
index bb5fe3b8..bb5fe3b8 100644
--- a/ftnoir_protocol_mouse/ftnoir_protocol_mouse_dialog.cpp
+++ b/protocol-mouse/ftnoir_protocol_mouse_dialog.cpp
diff --git a/ftnoir_protocol_mouse/images/mouse.png b/protocol-mouse/images/mouse.png
index c6f9ea26..c6f9ea26 100644
--- a/ftnoir_protocol_mouse/images/mouse.png
+++ b/protocol-mouse/images/mouse.png
Binary files differ
diff --git a/ftnoir_protocol_mouse/win32-mouse-protocol.qrc b/protocol-mouse/win32-mouse-protocol.qrc
index ed6a71be..ed6a71be 100644
--- a/ftnoir_protocol_mouse/win32-mouse-protocol.qrc
+++ b/protocol-mouse/win32-mouse-protocol.qrc
diff --git a/protocol-sc/CMakeLists.txt b/protocol-sc/CMakeLists.txt
new file mode 100644
index 00000000..bd83e944
--- /dev/null
+++ b/protocol-sc/CMakeLists.txt
@@ -0,0 +1,3 @@
+if(WIN32)
+ opentrack_boilerplate(opentrack-proto-simconnect)
+endif()
diff --git a/ftnoir_protocol_sc/ftnoir-protocol-sc.rc b/protocol-sc/ftnoir-protocol-sc.rc
index c89eb9a7..c89eb9a7 100644
--- a/ftnoir_protocol_sc/ftnoir-protocol-sc.rc
+++ b/protocol-sc/ftnoir-protocol-sc.rc
diff --git a/ftnoir_protocol_sc/ftnoir_protocol_sc.cpp b/protocol-sc/ftnoir_protocol_sc.cpp
index 0c6cb486..0c6cb486 100644
--- a/ftnoir_protocol_sc/ftnoir_protocol_sc.cpp
+++ b/protocol-sc/ftnoir_protocol_sc.cpp
diff --git a/ftnoir_protocol_sc/ftnoir_protocol_sc.h b/protocol-sc/ftnoir_protocol_sc.h
index 671a3500..671a3500 100644
--- a/ftnoir_protocol_sc/ftnoir_protocol_sc.h
+++ b/protocol-sc/ftnoir_protocol_sc.h
diff --git a/ftnoir_protocol_sc/ftnoir_protocol_sc_dialog.cpp b/protocol-sc/ftnoir_protocol_sc_dialog.cpp
index 7c2ecfd4..7c2ecfd4 100644
--- a/ftnoir_protocol_sc/ftnoir_protocol_sc_dialog.cpp
+++ b/protocol-sc/ftnoir_protocol_sc_dialog.cpp
diff --git a/ftnoir_protocol_sc/ftnoir_sccontrols.ui b/protocol-sc/ftnoir_sccontrols.ui
index 5b2fd291..5b2fd291 100644
--- a/ftnoir_protocol_sc/ftnoir_sccontrols.ui
+++ b/protocol-sc/ftnoir_sccontrols.ui
diff --git a/ftnoir_protocol_sc/images/fsx.png b/protocol-sc/images/fsx.png
index 16b072a1..16b072a1 100644
--- a/ftnoir_protocol_sc/images/fsx.png
+++ b/protocol-sc/images/fsx.png
Binary files differ
diff --git a/ftnoir_protocol_sc/images/fsx1.png b/protocol-sc/images/fsx1.png
index a1f0f188..a1f0f188 100644
--- a/ftnoir_protocol_sc/images/fsx1.png
+++ b/protocol-sc/images/fsx1.png
Binary files differ
diff --git a/ftnoir_protocol_sc/sc-protocol.qrc b/protocol-sc/sc-protocol.qrc
index 127d5180..127d5180 100644
--- a/ftnoir_protocol_sc/sc-protocol.qrc
+++ b/protocol-sc/sc-protocol.qrc
diff --git a/ftnoir_protocol_sc/scserver.manifest b/protocol-sc/scserver.manifest
index d342cfda..d342cfda 100644
--- a/ftnoir_protocol_sc/scserver.manifest
+++ b/protocol-sc/scserver.manifest
diff --git a/ftnoir_protocol_sc/scserver_acceleration.manifest b/protocol-sc/scserver_acceleration.manifest
index 06459587..06459587 100644
--- a/ftnoir_protocol_sc/scserver_acceleration.manifest
+++ b/protocol-sc/scserver_acceleration.manifest
diff --git a/ftnoir_protocol_sc/scserver_sp2.manifest b/protocol-sc/scserver_sp2.manifest
index 3020d16c..3020d16c 100644
--- a/ftnoir_protocol_sc/scserver_sp2.manifest
+++ b/protocol-sc/scserver_sp2.manifest
diff --git a/protocol-vjoy/CMakeLists.txt b/protocol-vjoy/CMakeLists.txt
new file mode 100644
index 00000000..22678c32
--- /dev/null
+++ b/protocol-vjoy/CMakeLists.txt
@@ -0,0 +1,14 @@
+if(WIN32)
+ set(SDK_VJOY "" CACHE PATH "VJoy SDK path")
+ if(SDK_VJOY)
+ opentrack_boilerplate(opentrack-proto-vjoy GNU-LINK "-Wl,--enable-stdcall-fixup")
+ if(MSVC)
+ set(ext .lib)
+ else()
+ set(ext .dll)
+ endif()
+ target_link_libraries(opentrack-proto-vjoy ${MY_QT_LIBS} ${SDK_VJOY}/VJoy${ext})
+ target_include_directories(opentrack-proto-vjoy SYSTEM PUBLIC ${SDK_VJOY})
+ install(FILES "${SDK_VJOY}/VJoy.dll" DESTINATION . ${opentrack-perms})
+ endif()
+endif()
diff --git a/ftnoir_protocol_vjoy/ftnoir_protocol_vjoy.cpp b/protocol-vjoy/ftnoir_protocol_vjoy.cpp
index 24148c63..24148c63 100644
--- a/ftnoir_protocol_vjoy/ftnoir_protocol_vjoy.cpp
+++ b/protocol-vjoy/ftnoir_protocol_vjoy.cpp
diff --git a/ftnoir_protocol_vjoy/ftnoir_protocol_vjoy.h b/protocol-vjoy/ftnoir_protocol_vjoy.h
index 118306b5..118306b5 100644
--- a/ftnoir_protocol_vjoy/ftnoir_protocol_vjoy.h
+++ b/protocol-vjoy/ftnoir_protocol_vjoy.h
diff --git a/ftnoir_protocol_vjoy/ftnoir_protocol_vjoy_dialog.cpp b/protocol-vjoy/ftnoir_protocol_vjoy_dialog.cpp
index 08c65558..08c65558 100644
--- a/ftnoir_protocol_vjoy/ftnoir_protocol_vjoy_dialog.cpp
+++ b/protocol-vjoy/ftnoir_protocol_vjoy_dialog.cpp
diff --git a/ftnoir_protocol_vjoy/ftnoir_vjoy_controls.ui b/protocol-vjoy/ftnoir_vjoy_controls.ui
index 2214b887..2214b887 100644
--- a/ftnoir_protocol_vjoy/ftnoir_vjoy_controls.ui
+++ b/protocol-vjoy/ftnoir_vjoy_controls.ui
diff --git a/ftnoir_protocol_vjoy/images/vjoy.png b/protocol-vjoy/images/vjoy.png
index 8eb14be8..8eb14be8 100644
--- a/ftnoir_protocol_vjoy/images/vjoy.png
+++ b/protocol-vjoy/images/vjoy.png
Binary files differ
diff --git a/ftnoir_protocol_vjoy/vjoy-protocol.qrc b/protocol-vjoy/vjoy-protocol.qrc
index 7b3741f1..7b3741f1 100644
--- a/ftnoir_protocol_vjoy/vjoy-protocol.qrc
+++ b/protocol-vjoy/vjoy-protocol.qrc
diff --git a/ftnoir_protocol_vjoy/vjoy.def b/protocol-vjoy/vjoy.def
index aea590a4..aea590a4 100644
--- a/ftnoir_protocol_vjoy/vjoy.def
+++ b/protocol-vjoy/vjoy.def
diff --git a/protocol-wine/CMakeLists.txt b/protocol-wine/CMakeLists.txt
new file mode 100644
index 00000000..682e50de
--- /dev/null
+++ b/protocol-wine/CMakeLists.txt
@@ -0,0 +1,26 @@
+if(NOT WIN32)
+ 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")
+ if(SDK_WINE_PREFIX)
+ opentrack_boilerplate(opentrack-proto-wine)
+ target_link_libraries(opentrack-proto-wine opentrack-compat opentrack-csv)
+ if(NOT SDK_WINE_NO_WRAPPER)
+ set(my-rt -lrt)
+ if(APPLE)
+ set(my-rt)
+ endif()
+ file(GLOB wine-deps ${CMAKE_SOURCE_DIR}/ftnoir_protocol_wine/*.cxx)
+ add_custom_command(
+ OUTPUT opentrack-wrapper-wine.exe.so
+ DEPENDS ${wine-deps}
+ COMMAND ${SDK_WINE_PREFIX}/bin/wineg++ -g -DNOMINMAX -O2 -m32 -std=c++11 -o
+ opentrack-wrapper-wine.exe -I "${CMAKE_SOURCE_DIR}"
+ ${wine-deps}
+ ${my-rt})
+ add_custom_target(wine-wrapper ALL DEPENDS opentrack-wrapper-wine.exe.so)
+ add_dependencies(opentrack-proto-wine wine-wrapper)
+ add_dependencies(wine-wrapper opentrack-compat)
+ install(FILES "${CMAKE_BINARY_DIR}/opentrack-wrapper-wine.exe.so" DESTINATION .)
+ endif()
+ endif()
+endif()
diff --git a/ftnoir_protocol_wine/ftnoir_protocol_wine.cpp b/protocol-wine/ftnoir_protocol_wine.cpp
index 99ad30a2..99ad30a2 100644
--- a/ftnoir_protocol_wine/ftnoir_protocol_wine.cpp
+++ b/protocol-wine/ftnoir_protocol_wine.cpp
diff --git a/ftnoir_protocol_wine/ftnoir_protocol_wine.h b/protocol-wine/ftnoir_protocol_wine.h
index 2aeb4608..2aeb4608 100644
--- a/ftnoir_protocol_wine/ftnoir_protocol_wine.h
+++ b/protocol-wine/ftnoir_protocol_wine.h
diff --git a/ftnoir_protocol_wine/ftnoir_protocol_wine_dialog.cpp b/protocol-wine/ftnoir_protocol_wine_dialog.cpp
index e4027c73..e4027c73 100644
--- a/ftnoir_protocol_wine/ftnoir_protocol_wine_dialog.cpp
+++ b/protocol-wine/ftnoir_protocol_wine_dialog.cpp
diff --git a/ftnoir_protocol_wine/ftnoir_winecontrols.ui b/protocol-wine/ftnoir_winecontrols.ui
index 9356c448..9356c448 100644
--- a/ftnoir_protocol_wine/ftnoir_winecontrols.ui
+++ b/protocol-wine/ftnoir_winecontrols.ui
diff --git a/ftnoir_protocol_wine/images/wine.png b/protocol-wine/images/wine.png
index bcf3a012..bcf3a012 100644
--- a/ftnoir_protocol_wine/images/wine.png
+++ b/protocol-wine/images/wine.png
Binary files differ
diff --git a/ftnoir_protocol_wine/opentrack-wrapper-wine-main.cxx b/protocol-wine/opentrack-wrapper-wine-main.cxx
index ffe8938d..ffe8938d 100644
--- a/ftnoir_protocol_wine/opentrack-wrapper-wine-main.cxx
+++ b/protocol-wine/opentrack-wrapper-wine-main.cxx
diff --git a/ftnoir_protocol_wine/opentrack-wrapper-wine-posix.cxx b/protocol-wine/opentrack-wrapper-wine-posix.cxx
index 50cce728..50cce728 100644
--- a/ftnoir_protocol_wine/opentrack-wrapper-wine-posix.cxx
+++ b/protocol-wine/opentrack-wrapper-wine-posix.cxx
diff --git a/ftnoir_protocol_wine/opentrack-wrapper-wine-windows.cxx b/protocol-wine/opentrack-wrapper-wine-windows.cxx
index 19ee8ffd..19ee8ffd 100644
--- a/ftnoir_protocol_wine/opentrack-wrapper-wine-windows.cxx
+++ b/protocol-wine/opentrack-wrapper-wine-windows.cxx
diff --git a/ftnoir_protocol_wine/wine-protocol.qrc b/protocol-wine/wine-protocol.qrc
index af81caea..af81caea 100644
--- a/ftnoir_protocol_wine/wine-protocol.qrc
+++ b/protocol-wine/wine-protocol.qrc
diff --git a/ftnoir_protocol_wine/wine-shm.h b/protocol-wine/wine-shm.h
index c7e29abb..c7e29abb 100644
--- a/ftnoir_protocol_wine/wine-shm.h
+++ b/protocol-wine/wine-shm.h
diff --git a/bin/settings/facetracknoir supported games.csv b/settings/facetracknoir supported games.csv
index cf43d7f6..cf43d7f6 100644
--- a/bin/settings/facetracknoir supported games.csv
+++ b/settings/facetracknoir supported games.csv
diff --git a/spline-widget/CMakeLists.txt b/spline-widget/CMakeLists.txt
new file mode 100644
index 00000000..522491ea
--- /dev/null
+++ b/spline-widget/CMakeLists.txt
@@ -0,0 +1,6 @@
+opentrack_boilerplate(opentrack-spline-widget NO-LIBRARY)
+opentrack_qt(opentrack-spline-widget)
+add_library(opentrack-spline-widget STATIC ${opentrack-spline-widget-all})
+opentrack_compat(opentrack-spline-widget)
+target_include_directories(opentrack-spline-widget PUBLIC qfunctionconfigurator/)
+target_link_libraries(opentrack-spline-widget ${MY_QT_LIBS})
diff --git a/qfunctionconfigurator/broken/qfunctionconfiguratorplugin.cpp b/spline-widget/broken/qfunctionconfiguratorplugin.cpp
index 1a9da10a..1a9da10a 100644
--- a/qfunctionconfigurator/broken/qfunctionconfiguratorplugin.cpp
+++ b/spline-widget/broken/qfunctionconfiguratorplugin.cpp
diff --git a/qfunctionconfigurator/broken/qfunctionconfiguratorplugin.h b/spline-widget/broken/qfunctionconfiguratorplugin.h
index ca68e0e2..ca68e0e2 100644
--- a/qfunctionconfigurator/broken/qfunctionconfiguratorplugin.h
+++ b/spline-widget/broken/qfunctionconfiguratorplugin.h
diff --git a/qfunctionconfigurator/functionconfig.cpp b/spline-widget/functionconfig.cpp
index 27f3bf40..27f3bf40 100644
--- a/qfunctionconfigurator/functionconfig.cpp
+++ b/spline-widget/functionconfig.cpp
diff --git a/qfunctionconfigurator/functionconfig.h b/spline-widget/functionconfig.h
index 6d76d0de..6d76d0de 100644
--- a/qfunctionconfigurator/functionconfig.h
+++ b/spline-widget/functionconfig.h
diff --git a/qfunctionconfigurator/qfunctionconfigurator.cpp b/spline-widget/qfunctionconfigurator.cpp
index bcb895ec..7ab1e360 100644
--- a/qfunctionconfigurator/qfunctionconfigurator.cpp
+++ b/spline-widget/qfunctionconfigurator.cpp
@@ -7,7 +7,7 @@
#include "opentrack/options.hpp"
using namespace options;
-#include "qfunctionconfigurator/qfunctionconfigurator.h"
+#include "spline-widget/qfunctionconfigurator.h"
#include <QPainter>
#include <QPaintEvent>
#include <QPen>
diff --git a/qfunctionconfigurator/qfunctionconfigurator.h b/spline-widget/qfunctionconfigurator.h
index 667886cd..baea9e34 100644
--- a/qfunctionconfigurator/qfunctionconfigurator.h
+++ b/spline-widget/qfunctionconfigurator.h
@@ -12,7 +12,7 @@
#include <QWidget>
#include <QtGui>
#include <QPointF>
-#include "qfunctionconfigurator/functionconfig.h"
+#include "spline-widget/functionconfig.h"
#include "opentrack/plugin-api.hpp"
class QFunctionConfigurator : public QWidget
diff --git a/tracker-aruco/CMakeLists.txt b/tracker-aruco/CMakeLists.txt
new file mode 100644
index 00000000..ed52eee6
--- /dev/null
+++ b/tracker-aruco/CMakeLists.txt
@@ -0,0 +1,8 @@
+find_package(OpenCV 3.0)
+set(SDK_ARUCO_LIBPATH "" CACHE FILEPATH "Aruco paper marker tracker static library path")
+if(SDK_ARUCO_LIBPATH)
+ opentrack_boilerplate(opentrack-tracker-aruco)
+ target_link_libraries(opentrack-tracker-aruco ${SDK_ARUCO_LIBPATH} ${OpenCV_LIBS})
+ target_include_directories(opentrack-tracker-aruco SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})
+ link_with_dinput8(opentrack-tracker-aruco)
+endif()
diff --git a/ftnoir_tracker_aruco/ar_video_widget.cpp b/tracker-aruco/ar_video_widget.cpp
index 1c3af262..1c3af262 100644
--- a/ftnoir_tracker_aruco/ar_video_widget.cpp
+++ b/tracker-aruco/ar_video_widget.cpp
diff --git a/ftnoir_tracker_aruco/ar_video_widget.h b/tracker-aruco/ar_video_widget.h
index 6df2d626..6df2d626 100644
--- a/ftnoir_tracker_aruco/ar_video_widget.h
+++ b/tracker-aruco/ar_video_widget.h
diff --git a/ftnoir_tracker_aruco/aruco-tracker.qrc b/tracker-aruco/aruco-tracker.qrc
index 70859876..70859876 100644
--- a/ftnoir_tracker_aruco/aruco-tracker.qrc
+++ b/tracker-aruco/aruco-tracker.qrc
diff --git a/ftnoir_tracker_aruco/aruco-trackercontrols.ui b/tracker-aruco/aruco-trackercontrols.ui
index 7e32936c..7e32936c 100644
--- a/ftnoir_tracker_aruco/aruco-trackercontrols.ui
+++ b/tracker-aruco/aruco-trackercontrols.ui
diff --git a/ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp b/tracker-aruco/ftnoir_tracker_aruco.cpp
index 570c2e0d..570c2e0d 100644
--- a/ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp
+++ b/tracker-aruco/ftnoir_tracker_aruco.cpp
diff --git a/ftnoir_tracker_aruco/ftnoir_tracker_aruco.h b/tracker-aruco/ftnoir_tracker_aruco.h
index 436602a1..f827da77 100644
--- a/ftnoir_tracker_aruco/ftnoir_tracker_aruco.h
+++ b/tracker-aruco/ftnoir_tracker_aruco.h
@@ -16,7 +16,7 @@
#include <QDialog>
#include <QTimer>
#include "opentrack/options.hpp"
-#include "ftnoir_tracker_aruco/trans_calib.h"
+#include "trans_calib.h"
#include "opentrack/plugin-api.hpp"
#include "opentrack/opencv-camera-dialog.hpp"
diff --git a/ftnoir_tracker_aruco/images/aruco.png b/tracker-aruco/images/aruco.png
index 491c39e6..491c39e6 100644
--- a/ftnoir_tracker_aruco/images/aruco.png
+++ b/tracker-aruco/images/aruco.png
Binary files differ
diff --git a/ftnoir_tracker_aruco/include/aruco.h b/tracker-aruco/include/aruco.h
index 569b95fb..569b95fb 100644
--- a/ftnoir_tracker_aruco/include/aruco.h
+++ b/tracker-aruco/include/aruco.h
diff --git a/ftnoir_tracker_aruco/include/arucofidmarkers.h b/tracker-aruco/include/arucofidmarkers.h
index 7dad4672..7dad4672 100644
--- a/ftnoir_tracker_aruco/include/arucofidmarkers.h
+++ b/tracker-aruco/include/arucofidmarkers.h
diff --git a/ftnoir_tracker_aruco/include/board.h b/tracker-aruco/include/board.h
index ec7dd43f..ec7dd43f 100644
--- a/ftnoir_tracker_aruco/include/board.h
+++ b/tracker-aruco/include/board.h
diff --git a/ftnoir_tracker_aruco/include/boarddetector.h b/tracker-aruco/include/boarddetector.h
index 619b4798..619b4798 100644
--- a/ftnoir_tracker_aruco/include/boarddetector.h
+++ b/tracker-aruco/include/boarddetector.h
diff --git a/ftnoir_tracker_aruco/include/cameraparameters.h b/tracker-aruco/include/cameraparameters.h
index 083d5f96..083d5f96 100644
--- a/ftnoir_tracker_aruco/include/cameraparameters.h
+++ b/tracker-aruco/include/cameraparameters.h
diff --git a/ftnoir_tracker_aruco/include/cvdrawingutils.h b/tracker-aruco/include/cvdrawingutils.h
index ff67242f..ff67242f 100644
--- a/ftnoir_tracker_aruco/include/cvdrawingutils.h
+++ b/tracker-aruco/include/cvdrawingutils.h
diff --git a/ftnoir_tracker_aruco/include/exports.h b/tracker-aruco/include/exports.h
index 8f7dab8c..8f7dab8c 100644
--- a/ftnoir_tracker_aruco/include/exports.h
+++ b/tracker-aruco/include/exports.h
diff --git a/ftnoir_tracker_aruco/include/marker.h b/tracker-aruco/include/marker.h
index efc3e5fe..efc3e5fe 100644
--- a/ftnoir_tracker_aruco/include/marker.h
+++ b/tracker-aruco/include/marker.h
diff --git a/ftnoir_tracker_aruco/include/markerdetector.h b/tracker-aruco/include/markerdetector.h
index 8a7e75ca..8a7e75ca 100644
--- a/ftnoir_tracker_aruco/include/markerdetector.h
+++ b/tracker-aruco/include/markerdetector.h
diff --git a/ftnoir_tracker_aruco/trans_calib.cpp b/tracker-aruco/trans_calib.cpp
index b5148efd..b5148efd 100644
--- a/ftnoir_tracker_aruco/trans_calib.cpp
+++ b/tracker-aruco/trans_calib.cpp
diff --git a/ftnoir_tracker_aruco/trans_calib.h b/tracker-aruco/trans_calib.h
index 3d1e56fa..3d1e56fa 100644
--- a/ftnoir_tracker_aruco/trans_calib.h
+++ b/tracker-aruco/trans_calib.h
diff --git a/tracker-freepie-udp/CMakeLists.txt b/tracker-freepie-udp/CMakeLists.txt
new file mode 100644
index 00000000..34cb2fdc
--- /dev/null
+++ b/tracker-freepie-udp/CMakeLists.txt
@@ -0,0 +1 @@
+opentrack_boilerplate(opentrack-tracker-freepie-udp)
diff --git a/ftnoir_tracker_freepie-udp/freepie-udp-controls.ui b/tracker-freepie-udp/freepie-udp-controls.ui
index 74e5a6f1..74e5a6f1 100644
--- a/ftnoir_tracker_freepie-udp/freepie-udp-controls.ui
+++ b/tracker-freepie-udp/freepie-udp-controls.ui
diff --git a/ftnoir_tracker_freepie-udp/freepie-udp-res.qrc b/tracker-freepie-udp/freepie-udp-res.qrc
index 3fd3edc4..3fd3edc4 100644
--- a/ftnoir_tracker_freepie-udp/freepie-udp-res.qrc
+++ b/tracker-freepie-udp/freepie-udp-res.qrc
diff --git a/ftnoir_tracker_freepie-udp/ftnoir_tracker_freepie-udp.cpp b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp
index 12cf9bca..12cf9bca 100644
--- a/ftnoir_tracker_freepie-udp/ftnoir_tracker_freepie-udp.cpp
+++ b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp
diff --git a/ftnoir_tracker_freepie-udp/ftnoir_tracker_freepie-udp.h b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.h
index 7cff2ec9..7cff2ec9 100644
--- a/ftnoir_tracker_freepie-udp/ftnoir_tracker_freepie-udp.h
+++ b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.h
diff --git a/ftnoir_tracker_freepie-udp/ftnoir_tracker_freepie-udp_dialog.cpp b/tracker-freepie-udp/ftnoir_tracker_freepie-udp_dialog.cpp
index 55427d35..55427d35 100644
--- a/ftnoir_tracker_freepie-udp/ftnoir_tracker_freepie-udp_dialog.cpp
+++ b/tracker-freepie-udp/ftnoir_tracker_freepie-udp_dialog.cpp
diff --git a/ftnoir_tracker_freepie-udp/glovepie.png b/tracker-freepie-udp/glovepie.png
index 2156b7af..2156b7af 100644
--- a/ftnoir_tracker_freepie-udp/glovepie.png
+++ b/tracker-freepie-udp/glovepie.png
Binary files differ
diff --git a/tracker-hatire/CMakeLists.txt b/tracker-hatire/CMakeLists.txt
new file mode 100644
index 00000000..e4c7b9d1
--- /dev/null
+++ b/tracker-hatire/CMakeLists.txt
@@ -0,0 +1,5 @@
+if(Qt5SerialPort_FOUND)
+ opentrack_boilerplate(opentrack-tracker-hatire)
+ target_link_libraries(opentrack-tracker-hatire ${Qt5SerialPort_LIBRARIES})
+ target_include_directories(opentrack-tracker-hatire SYSTEM PUBLIC ${Qt5SerialPort_INCLUDE_DIRS})
+endif()
diff --git a/ftnoir_tracker_hatire/ftnoir_arduino_type.h b/tracker-hatire/ftnoir_arduino_type.h
index 57afed63..57afed63 100644
--- a/ftnoir_tracker_hatire/ftnoir_arduino_type.h
+++ b/tracker-hatire/ftnoir_arduino_type.h
diff --git a/ftnoir_tracker_hatire/ftnoir_hat.qrc b/tracker-hatire/ftnoir_hat.qrc
index 41d43617..41d43617 100644
--- a/ftnoir_tracker_hatire/ftnoir_hat.qrc
+++ b/tracker-hatire/ftnoir_hat.qrc
diff --git a/ftnoir_tracker_hatire/ftnoir_hatcontrols.ui b/tracker-hatire/ftnoir_hatcontrols.ui
index 2d347f08..2d347f08 100644
--- a/ftnoir_tracker_hatire/ftnoir_hatcontrols.ui
+++ b/tracker-hatire/ftnoir_hatcontrols.ui
diff --git a/ftnoir_tracker_hatire/ftnoir_tracker_hat.cpp b/tracker-hatire/ftnoir_tracker_hat.cpp
index eea1cbca..eea1cbca 100644
--- a/ftnoir_tracker_hatire/ftnoir_tracker_hat.cpp
+++ b/tracker-hatire/ftnoir_tracker_hat.cpp
diff --git a/ftnoir_tracker_hatire/ftnoir_tracker_hat.h b/tracker-hatire/ftnoir_tracker_hat.h
index 2472428b..2472428b 100644
--- a/ftnoir_tracker_hatire/ftnoir_tracker_hat.h
+++ b/tracker-hatire/ftnoir_tracker_hat.h
diff --git a/ftnoir_tracker_hatire/ftnoir_tracker_hat_dialog.cpp b/tracker-hatire/ftnoir_tracker_hat_dialog.cpp
index 3ef1a764..3ef1a764 100644
--- a/ftnoir_tracker_hatire/ftnoir_tracker_hat_dialog.cpp
+++ b/tracker-hatire/ftnoir_tracker_hat_dialog.cpp
diff --git a/ftnoir_tracker_hatire/ftnoir_tracker_hat_dialog.h b/tracker-hatire/ftnoir_tracker_hat_dialog.h
index ebaffc6d..ebaffc6d 100644
--- a/ftnoir_tracker_hatire/ftnoir_tracker_hat_dialog.h
+++ b/tracker-hatire/ftnoir_tracker_hat_dialog.h
diff --git a/ftnoir_tracker_hatire/ftnoir_tracker_hat_settings.cpp b/tracker-hatire/ftnoir_tracker_hat_settings.cpp
index e6b32047..e6b32047 100644
--- a/ftnoir_tracker_hatire/ftnoir_tracker_hat_settings.cpp
+++ b/tracker-hatire/ftnoir_tracker_hat_settings.cpp
diff --git a/ftnoir_tracker_hatire/ftnoir_tracker_hat_settings.h b/tracker-hatire/ftnoir_tracker_hat_settings.h
index ade46d54..ade46d54 100644
--- a/ftnoir_tracker_hatire/ftnoir_tracker_hat_settings.h
+++ b/tracker-hatire/ftnoir_tracker_hat_settings.h
diff --git a/ftnoir_tracker_hatire/images/hat.ico b/tracker-hatire/images/hat.ico
index d8f5aac4..d8f5aac4 100644
--- a/ftnoir_tracker_hatire/images/hat.ico
+++ b/tracker-hatire/images/hat.ico
Binary files differ
diff --git a/ftnoir_tracker_hatire/images/hat.png b/tracker-hatire/images/hat.png
index a5f7852f..a5f7852f 100644
--- a/ftnoir_tracker_hatire/images/hat.png
+++ b/tracker-hatire/images/hat.png
Binary files differ
diff --git a/ftnoir_tracker_hatire/images/hat_logo.png b/tracker-hatire/images/hat_logo.png
index c3a92b1b..c3a92b1b 100644
--- a/ftnoir_tracker_hatire/images/hat_logo.png
+++ b/tracker-hatire/images/hat_logo.png
Binary files differ
diff --git a/tracker-ht/CMakeLists.txt b/tracker-ht/CMakeLists.txt
new file mode 100644
index 00000000..74fd9056
--- /dev/null
+++ b/tracker-ht/CMakeLists.txt
@@ -0,0 +1,11 @@
+set(SDK_HT "" CACHE FILEPATH "Path to headtracker library")
+set(SDK_HT_FLANDMARK "" CACHE FILEPATH "Path to flandmark library for headtracker")
+find_package(OpenCV 3.0)
+if(OpenCV_FOUND)
+ if(SDK_HT AND SDK_HT_FLANDMARK)
+ opentrack_boilerplate(opentrack-tracker-ht)
+ target_link_libraries(opentrack-tracker-ht ${SDK_HT} ${SDK_HT_FLANDMARK} ${OpenCV_LIBS})
+ link_with_dinput8(opentrack-tracker-ht)
+ target_include_directories(opentrack-tracker-ht SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})
+ endif()
+endif()
diff --git a/ftnoir_tracker_ht/ftnoir_tracker_ht.cpp b/tracker-ht/ftnoir_tracker_ht.cpp
index cc9d2ba1..cc9d2ba1 100644
--- a/ftnoir_tracker_ht/ftnoir_tracker_ht.cpp
+++ b/tracker-ht/ftnoir_tracker_ht.cpp
diff --git a/ftnoir_tracker_ht/ftnoir_tracker_ht.h b/tracker-ht/ftnoir_tracker_ht.h
index 1e364456..1e364456 100644
--- a/ftnoir_tracker_ht/ftnoir_tracker_ht.h
+++ b/tracker-ht/ftnoir_tracker_ht.h
diff --git a/ftnoir_tracker_ht/headtracker-ftnoir.h b/tracker-ht/headtracker-ftnoir.h
index 9a343bae..9a343bae 100644
--- a/ftnoir_tracker_ht/headtracker-ftnoir.h
+++ b/tracker-ht/headtracker-ftnoir.h
diff --git a/ftnoir_tracker_ht/ht-api.h b/tracker-ht/ht-api.h
index 4629a00b..4629a00b 100644
--- a/ftnoir_tracker_ht/ht-api.h
+++ b/tracker-ht/ht-api.h
diff --git a/ftnoir_tracker_ht/ht-tracker.qrc b/tracker-ht/ht-tracker.qrc
index b6af7a18..b6af7a18 100644
--- a/ftnoir_tracker_ht/ht-tracker.qrc
+++ b/tracker-ht/ht-tracker.qrc
diff --git a/ftnoir_tracker_ht/ht-trackercontrols.ui b/tracker-ht/ht-trackercontrols.ui
index 29b80c8d..29b80c8d 100644
--- a/ftnoir_tracker_ht/ht-trackercontrols.ui
+++ b/tracker-ht/ht-trackercontrols.ui
diff --git a/ftnoir_tracker_ht/ht_video_widget.cpp b/tracker-ht/ht_video_widget.cpp
index 02fe71d1..02fe71d1 100644
--- a/ftnoir_tracker_ht/ht_video_widget.cpp
+++ b/tracker-ht/ht_video_widget.cpp
diff --git a/ftnoir_tracker_ht/ht_video_widget.h b/tracker-ht/ht_video_widget.h
index 054b2cf4..054b2cf4 100644
--- a/ftnoir_tracker_ht/ht_video_widget.h
+++ b/tracker-ht/ht_video_widget.h
diff --git a/ftnoir_tracker_ht/images/ht.png b/tracker-ht/images/ht.png
index 19c73d21..19c73d21 100644
--- a/ftnoir_tracker_ht/images/ht.png
+++ b/tracker-ht/images/ht.png
Binary files differ
diff --git a/tracker-hydra/CMakeLists.txt b/tracker-hydra/CMakeLists.txt
new file mode 100644
index 00000000..6a4a7cfe
--- /dev/null
+++ b/tracker-hydra/CMakeLists.txt
@@ -0,0 +1,44 @@
+SET(SDK_HYDRA "" CACHE PATH "libSixense path for Razer Hydra")
+SET(SDK_HYDRA_AMD64 FALSE CACHE BOOL "whether libSixense is amd64 (else ia-32)")
+if(SDK_HYDRA)
+ opentrack_boilerplate(opentrack-tracker-hydra)
+ target_include_directories(opentrack-tracker-hydra SYSTEM PUBLIC ${SDK_HYDRA}/include ${SDK_HYDRA}/include/sixense_utils)
+ if(WIN32)
+ if(MSVC)
+ set(dir lib)
+ set(ext lib)
+ else()
+ set(dir bin)
+ set(ext dll)
+ endif()
+ target_link_libraries(opentrack-tracker-hydra
+ "${SDK_HYDRA}/${dir}/win32/release_dll/sixense.${ext}"
+ #"${SDK_HYDRA}/${dir}/win32/release_dll/sixense_utils.${ext}"
+ )
+ install(FILES "${SDK_HYDRA}/bin/win32/release_dll/sixense.dll"
+ #"${SDK_HYDRA}/bin/win32/release_dll/sixense_utils.dll"
+ DESTINATION . ${opentrack-perms})
+ else()
+ if(SDK_HYDRA_AMD64)
+ set(six4 _x64)
+ else()
+ set(six4)
+ endif()
+ if(APPLE)
+ set(under-dll _dll)
+ set(soext dylib)
+ set(plat osx)
+ else()
+ set(under-dll)
+ set(soext so)
+ set(plat linux)
+ endif()
+ install(FILES
+ "${SDK_HYDRA}/lib/${plat}${six4}/release${under-dll}/libsixense${six4}.${soext}"
+ DESTINATION .
+ )
+ target_link_libraries(opentrack-tracker-hydra
+ "${SDK_HYDRA}/lib/${plat}${six4}/release${under-dll}/libsixense${six4}.${soext}"
+ )
+ endif()
+endif()
diff --git a/ftnoir_tracker_hydra/ftnoir_hydra_clientcontrols.ui b/tracker-hydra/ftnoir_hydra_clientcontrols.ui
index 7cfac075..7cfac075 100644
--- a/ftnoir_tracker_hydra/ftnoir_hydra_clientcontrols.ui
+++ b/tracker-hydra/ftnoir_hydra_clientcontrols.ui
diff --git a/ftnoir_tracker_hydra/ftnoir_tracker_hydra.cpp b/tracker-hydra/ftnoir_tracker_hydra.cpp
index 8d0e6832..8d0e6832 100644
--- a/ftnoir_tracker_hydra/ftnoir_tracker_hydra.cpp
+++ b/tracker-hydra/ftnoir_tracker_hydra.cpp
diff --git a/ftnoir_tracker_hydra/ftnoir_tracker_hydra.h b/tracker-hydra/ftnoir_tracker_hydra.h
index 47a1eb9a..47a1eb9a 100644
--- a/ftnoir_tracker_hydra/ftnoir_tracker_hydra.h
+++ b/tracker-hydra/ftnoir_tracker_hydra.h
diff --git a/ftnoir_tracker_hydra/ftnoir_tracker_hydra_dialog.cpp b/tracker-hydra/ftnoir_tracker_hydra_dialog.cpp
index 2c23ee46..2c23ee46 100644
--- a/ftnoir_tracker_hydra/ftnoir_tracker_hydra_dialog.cpp
+++ b/tracker-hydra/ftnoir_tracker_hydra_dialog.cpp
diff --git a/tracker-joystick/CMakeLists.txt b/tracker-joystick/CMakeLists.txt
new file mode 100644
index 00000000..c8d2d218
--- /dev/null
+++ b/tracker-joystick/CMakeLists.txt
@@ -0,0 +1,4 @@
+if(WIN32)
+ opentrack_boilerplate(opentrack-tracker-joystick)
+ link_with_dinput8(opentrack-tracker-joystick)
+endif()
diff --git a/ftnoir_tracker_joystick/ftnoir_tracker_joystick.cpp b/tracker-joystick/ftnoir_tracker_joystick.cpp
index 77fd7241..77fd7241 100644
--- a/ftnoir_tracker_joystick/ftnoir_tracker_joystick.cpp
+++ b/tracker-joystick/ftnoir_tracker_joystick.cpp
diff --git a/ftnoir_tracker_joystick/ftnoir_tracker_joystick.h b/tracker-joystick/ftnoir_tracker_joystick.h
index 75305f07..75305f07 100644
--- a/ftnoir_tracker_joystick/ftnoir_tracker_joystick.h
+++ b/tracker-joystick/ftnoir_tracker_joystick.h
diff --git a/ftnoir_tracker_joystick/ftnoir_tracker_joystick_controls.ui b/tracker-joystick/ftnoir_tracker_joystick_controls.ui
index 88737023..88737023 100644
--- a/ftnoir_tracker_joystick/ftnoir_tracker_joystick_controls.ui
+++ b/tracker-joystick/ftnoir_tracker_joystick_controls.ui
diff --git a/ftnoir_tracker_joystick/ftnoir_tracker_joystick_dialog.cpp b/tracker-joystick/ftnoir_tracker_joystick_dialog.cpp
index 0463933f..0463933f 100644
--- a/ftnoir_tracker_joystick/ftnoir_tracker_joystick_dialog.cpp
+++ b/tracker-joystick/ftnoir_tracker_joystick_dialog.cpp
diff --git a/tracker-pt/CMakeLists.txt b/tracker-pt/CMakeLists.txt
new file mode 100644
index 00000000..94b04437
--- /dev/null
+++ b/tracker-pt/CMakeLists.txt
@@ -0,0 +1,5 @@
+find_package(OpenCV 3.0)
+opentrack_boilerplate(opentrack-tracker-pt)
+target_link_libraries(opentrack-tracker-pt ${OpenCV_LIBS})
+target_include_directories(opentrack-tracker-pt SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})
+link_with_dinput8(opentrack-tracker-pt)
diff --git a/ftnoir_tracker_pt/FTNoIR_PT_Controls.ui b/tracker-pt/FTNoIR_PT_Controls.ui
index 88575644..88575644 100644
--- a/ftnoir_tracker_pt/FTNoIR_PT_Controls.ui
+++ b/tracker-pt/FTNoIR_PT_Controls.ui
diff --git a/ftnoir_tracker_pt/Resources/Logo_IR.png b/tracker-pt/Resources/Logo_IR.png
index 95032a25..95032a25 100644
--- a/ftnoir_tracker_pt/Resources/Logo_IR.png
+++ b/tracker-pt/Resources/Logo_IR.png
Binary files differ
diff --git a/ftnoir_tracker_pt/Resources/cap_front.png b/tracker-pt/Resources/cap_front.png
index 14207a67..14207a67 100644
--- a/ftnoir_tracker_pt/Resources/cap_front.png
+++ b/tracker-pt/Resources/cap_front.png
Binary files differ
diff --git a/ftnoir_tracker_pt/Resources/cap_side.png b/tracker-pt/Resources/cap_side.png
index 5ad4ee65..5ad4ee65 100644
--- a/ftnoir_tracker_pt/Resources/cap_side.png
+++ b/tracker-pt/Resources/cap_side.png
Binary files differ
diff --git a/ftnoir_tracker_pt/Resources/clip_front.png b/tracker-pt/Resources/clip_front.png
index 04880138..04880138 100644
--- a/ftnoir_tracker_pt/Resources/clip_front.png
+++ b/tracker-pt/Resources/clip_front.png
Binary files differ
diff --git a/ftnoir_tracker_pt/Resources/clip_side.png b/tracker-pt/Resources/clip_side.png
index 72667ac7..72667ac7 100644
--- a/ftnoir_tracker_pt/Resources/clip_side.png
+++ b/tracker-pt/Resources/clip_side.png
Binary files differ
diff --git a/ftnoir_tracker_pt/camera.cpp b/tracker-pt/camera.cpp
index 63b401a8..63b401a8 100644
--- a/ftnoir_tracker_pt/camera.cpp
+++ b/tracker-pt/camera.cpp
diff --git a/ftnoir_tracker_pt/camera.h b/tracker-pt/camera.h
index e73d9dff..e73d9dff 100644
--- a/ftnoir_tracker_pt/camera.h
+++ b/tracker-pt/camera.h
diff --git a/ftnoir_tracker_pt/doc/index.htm b/tracker-pt/doc/index.htm
index 87b7356f..87b7356f 100644
--- a/ftnoir_tracker_pt/doc/index.htm
+++ b/tracker-pt/doc/index.htm
diff --git a/ftnoir_tracker_pt/doc/logo.png b/tracker-pt/doc/logo.png
index 95032a25..95032a25 100644
--- a/ftnoir_tracker_pt/doc/logo.png
+++ b/tracker-pt/doc/logo.png
Binary files differ
diff --git a/ftnoir_tracker_pt/doc/ptrack.ico b/tracker-pt/doc/ptrack.ico
index c4b2aedc..c4b2aedc 100644
--- a/ftnoir_tracker_pt/doc/ptrack.ico
+++ b/tracker-pt/doc/ptrack.ico
Binary files differ
diff --git a/ftnoir_tracker_pt/doc/settings1.png b/tracker-pt/doc/settings1.png
index 35b84c5c..35b84c5c 100644
--- a/ftnoir_tracker_pt/doc/settings1.png
+++ b/tracker-pt/doc/settings1.png
Binary files differ
diff --git a/ftnoir_tracker_pt/doc/settings2.png b/tracker-pt/doc/settings2.png
index c6cfd1f3..c6cfd1f3 100644
--- a/ftnoir_tracker_pt/doc/settings2.png
+++ b/tracker-pt/doc/settings2.png
Binary files differ
diff --git a/ftnoir_tracker_pt/doc/settings3.png b/tracker-pt/doc/settings3.png
index 5922403d..5922403d 100644
--- a/ftnoir_tracker_pt/doc/settings3.png
+++ b/tracker-pt/doc/settings3.png
Binary files differ
diff --git a/ftnoir_tracker_pt/doc/style.css b/tracker-pt/doc/style.css
index 0c3d29a6..0c3d29a6 100644
--- a/ftnoir_tracker_pt/doc/style.css
+++ b/tracker-pt/doc/style.css
diff --git a/ftnoir_tracker_pt/ftnoir_tracker_pt.cpp b/tracker-pt/ftnoir_tracker_pt.cpp
index 15a60962..15a60962 100644
--- a/ftnoir_tracker_pt/ftnoir_tracker_pt.cpp
+++ b/tracker-pt/ftnoir_tracker_pt.cpp
diff --git a/ftnoir_tracker_pt/ftnoir_tracker_pt.h b/tracker-pt/ftnoir_tracker_pt.h
index f73d106b..f73d106b 100644
--- a/ftnoir_tracker_pt/ftnoir_tracker_pt.h
+++ b/tracker-pt/ftnoir_tracker_pt.h
diff --git a/ftnoir_tracker_pt/ftnoir_tracker_pt.qrc b/tracker-pt/ftnoir_tracker_pt.qrc
index a8f9a1af..a8f9a1af 100644
--- a/ftnoir_tracker_pt/ftnoir_tracker_pt.qrc
+++ b/tracker-pt/ftnoir_tracker_pt.qrc
diff --git a/ftnoir_tracker_pt/ftnoir_tracker_pt_dialog.cpp b/tracker-pt/ftnoir_tracker_pt_dialog.cpp
index b1ae2238..b1ae2238 100644
--- a/ftnoir_tracker_pt/ftnoir_tracker_pt_dialog.cpp
+++ b/tracker-pt/ftnoir_tracker_pt_dialog.cpp
diff --git a/ftnoir_tracker_pt/ftnoir_tracker_pt_dialog.h b/tracker-pt/ftnoir_tracker_pt_dialog.h
index 3502e227..3502e227 100644
--- a/ftnoir_tracker_pt/ftnoir_tracker_pt_dialog.h
+++ b/tracker-pt/ftnoir_tracker_pt_dialog.h
diff --git a/ftnoir_tracker_pt/ftnoir_tracker_pt_settings.h b/tracker-pt/ftnoir_tracker_pt_settings.h
index 85eec8f9..85eec8f9 100644
--- a/ftnoir_tracker_pt/ftnoir_tracker_pt_settings.h
+++ b/tracker-pt/ftnoir_tracker_pt_settings.h
diff --git a/ftnoir_tracker_pt/point_extractor.cpp b/tracker-pt/point_extractor.cpp
index ec37dd00..ec37dd00 100644
--- a/ftnoir_tracker_pt/point_extractor.cpp
+++ b/tracker-pt/point_extractor.cpp
diff --git a/ftnoir_tracker_pt/point_extractor.h b/tracker-pt/point_extractor.h
index b9368ab6..b9368ab6 100644
--- a/ftnoir_tracker_pt/point_extractor.h
+++ b/tracker-pt/point_extractor.h
diff --git a/ftnoir_tracker_pt/point_tracker.cpp b/tracker-pt/point_tracker.cpp
index 924b75de..924b75de 100644
--- a/ftnoir_tracker_pt/point_tracker.cpp
+++ b/tracker-pt/point_tracker.cpp
diff --git a/ftnoir_tracker_pt/point_tracker.h b/tracker-pt/point_tracker.h
index fd002948..fd002948 100644
--- a/ftnoir_tracker_pt/point_tracker.h
+++ b/tracker-pt/point_tracker.h
diff --git a/ftnoir_tracker_pt/pt_video_widget.cpp b/tracker-pt/pt_video_widget.cpp
index cbb7c268..cbb7c268 100644
--- a/ftnoir_tracker_pt/pt_video_widget.cpp
+++ b/tracker-pt/pt_video_widget.cpp
diff --git a/ftnoir_tracker_pt/pt_video_widget.h b/tracker-pt/pt_video_widget.h
index af1d60fd..af1d60fd 100644
--- a/ftnoir_tracker_pt/pt_video_widget.h
+++ b/tracker-pt/pt_video_widget.h
diff --git a/ftnoir_tracker_pt/trans_calib.cpp b/tracker-pt/trans_calib.cpp
index a1a4b641..a1a4b641 100644
--- a/ftnoir_tracker_pt/trans_calib.cpp
+++ b/tracker-pt/trans_calib.cpp
diff --git a/ftnoir_tracker_pt/trans_calib.h b/tracker-pt/trans_calib.h
index e20fc767..e20fc767 100644
--- a/ftnoir_tracker_pt/trans_calib.h
+++ b/tracker-pt/trans_calib.h
diff --git a/tracker-rift-025/CMakeLists.txt b/tracker-rift-025/CMakeLists.txt
new file mode 100644
index 00000000..7891ad4d
--- /dev/null
+++ b/tracker-rift-025/CMakeLists.txt
@@ -0,0 +1,3 @@
+include(opentrack-rift)
+opentrack_rift_boilerplate(opentrack-tracker-rift-025 SDK_RIFT_025)
+SET(SDK_RIFT_025 "" CACHE PATH "libOVR 0.2.5 path for Oculus Rift")
diff --git a/ftnoir_tracker_rift_025/ftnoir_rift_025.qrc b/tracker-rift-025/ftnoir_rift_025.qrc
index cd174fc4..cd174fc4 100644
--- a/ftnoir_tracker_rift_025/ftnoir_rift_025.qrc
+++ b/tracker-rift-025/ftnoir_rift_025.qrc
diff --git a/ftnoir_tracker_rift_025/ftnoir_rift_clientcontrols_025.ui b/tracker-rift-025/ftnoir_rift_clientcontrols_025.ui
index 20c8f00b..20c8f00b 100644
--- a/ftnoir_tracker_rift_025/ftnoir_rift_clientcontrols_025.ui
+++ b/tracker-rift-025/ftnoir_rift_clientcontrols_025.ui
diff --git a/ftnoir_tracker_rift_025/ftnoir_tracker_rift_025.cpp b/tracker-rift-025/ftnoir_tracker_rift_025.cpp
index 9588aaf8..9588aaf8 100644
--- a/ftnoir_tracker_rift_025/ftnoir_tracker_rift_025.cpp
+++ b/tracker-rift-025/ftnoir_tracker_rift_025.cpp
diff --git a/ftnoir_tracker_rift_025/ftnoir_tracker_rift_025.h b/tracker-rift-025/ftnoir_tracker_rift_025.h
index 2bd5024b..2bd5024b 100644
--- a/ftnoir_tracker_rift_025/ftnoir_tracker_rift_025.h
+++ b/tracker-rift-025/ftnoir_tracker_rift_025.h
diff --git a/ftnoir_tracker_rift_025/ftnoir_tracker_rift_dialog_025.cpp b/tracker-rift-025/ftnoir_tracker_rift_dialog_025.cpp
index 8100e362..8100e362 100644
--- a/ftnoir_tracker_rift_025/ftnoir_tracker_rift_dialog_025.cpp
+++ b/tracker-rift-025/ftnoir_tracker_rift_dialog_025.cpp
diff --git a/ftnoir_tracker_rift_025/images/medium.png b/tracker-rift-025/images/medium.png
index a5ba49e7..a5ba49e7 100644
--- a/ftnoir_tracker_rift_025/images/medium.png
+++ b/tracker-rift-025/images/medium.png
Binary files differ
diff --git a/ftnoir_tracker_rift_025/images/rift_medium.png b/tracker-rift-025/images/rift_medium.png
index a5ba49e7..a5ba49e7 100644
--- a/ftnoir_tracker_rift_025/images/rift_medium.png
+++ b/tracker-rift-025/images/rift_medium.png
Binary files differ
diff --git a/ftnoir_tracker_rift_025/images/rift_small.png b/tracker-rift-025/images/rift_small.png
index 3f18080c..3f18080c 100644
--- a/ftnoir_tracker_rift_025/images/rift_small.png
+++ b/tracker-rift-025/images/rift_small.png
Binary files differ
diff --git a/ftnoir_tracker_rift_025/images/rift_tiny.png b/tracker-rift-025/images/rift_tiny.png
index 76fe0f58..76fe0f58 100644
--- a/ftnoir_tracker_rift_025/images/rift_tiny.png
+++ b/tracker-rift-025/images/rift_tiny.png
Binary files differ
diff --git a/ftnoir_tracker_rift_025/images/small.png b/tracker-rift-025/images/small.png
index 3f18080c..3f18080c 100644
--- a/ftnoir_tracker_rift_025/images/small.png
+++ b/tracker-rift-025/images/small.png
Binary files differ
diff --git a/ftnoir_tracker_rift_025/images/tiny.png b/tracker-rift-025/images/tiny.png
index 76fe0f58..76fe0f58 100644
--- a/ftnoir_tracker_rift_025/images/tiny.png
+++ b/tracker-rift-025/images/tiny.png
Binary files differ
diff --git a/tracker-rift-042/CMakeLists.txt b/tracker-rift-042/CMakeLists.txt
new file mode 100644
index 00000000..9d444cd0
--- /dev/null
+++ b/tracker-rift-042/CMakeLists.txt
@@ -0,0 +1,3 @@
+include(opentrack-rift)
+opentrack_rift_boilerplate(opentrack-tracker-rift-042 SDK_RIFT_042)
+SET(SDK_RIFT_042 "" CACHE PATH "libOVR 0.4.2 path for Oculus Rift")
diff --git a/ftnoir_tracker_rift_042/ftnoir_rift_042.qrc b/tracker-rift-042/ftnoir_rift_042.qrc
index cd174fc4..cd174fc4 100644
--- a/ftnoir_tracker_rift_042/ftnoir_rift_042.qrc
+++ b/tracker-rift-042/ftnoir_rift_042.qrc
diff --git a/ftnoir_tracker_rift_042/ftnoir_rift_clientcontrols_042.ui b/tracker-rift-042/ftnoir_rift_clientcontrols_042.ui
index 20c8f00b..20c8f00b 100644
--- a/ftnoir_tracker_rift_042/ftnoir_rift_clientcontrols_042.ui
+++ b/tracker-rift-042/ftnoir_rift_clientcontrols_042.ui
diff --git a/ftnoir_tracker_rift_042/ftnoir_tracker_rift_042.cpp b/tracker-rift-042/ftnoir_tracker_rift_042.cpp
index deea4a08..deea4a08 100644
--- a/ftnoir_tracker_rift_042/ftnoir_tracker_rift_042.cpp
+++ b/tracker-rift-042/ftnoir_tracker_rift_042.cpp
diff --git a/ftnoir_tracker_rift_042/ftnoir_tracker_rift_042.h b/tracker-rift-042/ftnoir_tracker_rift_042.h
index 437a2a39..437a2a39 100644
--- a/ftnoir_tracker_rift_042/ftnoir_tracker_rift_042.h
+++ b/tracker-rift-042/ftnoir_tracker_rift_042.h
diff --git a/ftnoir_tracker_rift_042/ftnoir_tracker_rift_dialog_042.cpp b/tracker-rift-042/ftnoir_tracker_rift_dialog_042.cpp
index 9a8b7549..9a8b7549 100644
--- a/ftnoir_tracker_rift_042/ftnoir_tracker_rift_dialog_042.cpp
+++ b/tracker-rift-042/ftnoir_tracker_rift_dialog_042.cpp
diff --git a/ftnoir_tracker_rift_042/images/medium.png b/tracker-rift-042/images/medium.png
index a5ba49e7..a5ba49e7 100644
--- a/ftnoir_tracker_rift_042/images/medium.png
+++ b/tracker-rift-042/images/medium.png
Binary files differ
diff --git a/ftnoir_tracker_rift_042/images/rift_medium.png b/tracker-rift-042/images/rift_medium.png
index a5ba49e7..a5ba49e7 100644
--- a/ftnoir_tracker_rift_042/images/rift_medium.png
+++ b/tracker-rift-042/images/rift_medium.png
Binary files differ
diff --git a/ftnoir_tracker_rift_042/images/rift_small.png b/tracker-rift-042/images/rift_small.png
index 3f18080c..3f18080c 100644
--- a/ftnoir_tracker_rift_042/images/rift_small.png
+++ b/tracker-rift-042/images/rift_small.png
Binary files differ
diff --git a/ftnoir_tracker_rift_042/images/rift_tiny.png b/tracker-rift-042/images/rift_tiny.png
index 76fe0f58..76fe0f58 100644
--- a/ftnoir_tracker_rift_042/images/rift_tiny.png
+++ b/tracker-rift-042/images/rift_tiny.png
Binary files differ
diff --git a/ftnoir_tracker_rift_042/images/small.png b/tracker-rift-042/images/small.png
index 3f18080c..3f18080c 100644
--- a/ftnoir_tracker_rift_042/images/small.png
+++ b/tracker-rift-042/images/small.png
Binary files differ
diff --git a/ftnoir_tracker_rift_042/images/tiny.png b/tracker-rift-042/images/tiny.png
index 76fe0f58..76fe0f58 100644
--- a/ftnoir_tracker_rift_042/images/tiny.png
+++ b/tracker-rift-042/images/tiny.png
Binary files differ
diff --git a/tracker-rift-080/CMakeLists.txt b/tracker-rift-080/CMakeLists.txt
new file mode 100644
index 00000000..e59e9fdc
--- /dev/null
+++ b/tracker-rift-080/CMakeLists.txt
@@ -0,0 +1,3 @@
+include(opentrack-rift)
+opentrack_rift_boilerplate(opentrack-tracker-rift-080 SDK_RIFT_080)
+SET(SDK_RIFT_080 "" CACHE PATH "libOVR 0.8.0 path for Oculus Rift")
diff --git a/ftnoir_tracker_rift_080/ftnoir_rift_080.qrc b/tracker-rift-080/ftnoir_rift_080.qrc
index cd174fc4..cd174fc4 100644
--- a/ftnoir_tracker_rift_080/ftnoir_rift_080.qrc
+++ b/tracker-rift-080/ftnoir_rift_080.qrc
diff --git a/ftnoir_tracker_rift_080/ftnoir_rift_clientcontrols_080.ui b/tracker-rift-080/ftnoir_rift_clientcontrols_080.ui
index 20c8f00b..20c8f00b 100644
--- a/ftnoir_tracker_rift_080/ftnoir_rift_clientcontrols_080.ui
+++ b/tracker-rift-080/ftnoir_rift_clientcontrols_080.ui
diff --git a/ftnoir_tracker_rift_080/ftnoir_tracker_rift_080.cpp b/tracker-rift-080/ftnoir_tracker_rift_080.cpp
index 889ac8c3..889ac8c3 100644
--- a/ftnoir_tracker_rift_080/ftnoir_tracker_rift_080.cpp
+++ b/tracker-rift-080/ftnoir_tracker_rift_080.cpp
diff --git a/ftnoir_tracker_rift_080/ftnoir_tracker_rift_080.h b/tracker-rift-080/ftnoir_tracker_rift_080.h
index 08684dd2..08684dd2 100644
--- a/ftnoir_tracker_rift_080/ftnoir_tracker_rift_080.h
+++ b/tracker-rift-080/ftnoir_tracker_rift_080.h
diff --git a/ftnoir_tracker_rift_080/ftnoir_tracker_rift_dialog_080.cpp b/tracker-rift-080/ftnoir_tracker_rift_dialog_080.cpp
index 0bf797be..0bf797be 100644
--- a/ftnoir_tracker_rift_080/ftnoir_tracker_rift_dialog_080.cpp
+++ b/tracker-rift-080/ftnoir_tracker_rift_dialog_080.cpp
diff --git a/ftnoir_tracker_rift_080/images/medium.png b/tracker-rift-080/images/medium.png
index a5ba49e7..a5ba49e7 100644
--- a/ftnoir_tracker_rift_080/images/medium.png
+++ b/tracker-rift-080/images/medium.png
Binary files differ
diff --git a/ftnoir_tracker_rift_080/images/rift_medium.png b/tracker-rift-080/images/rift_medium.png
index a5ba49e7..a5ba49e7 100644
--- a/ftnoir_tracker_rift_080/images/rift_medium.png
+++ b/tracker-rift-080/images/rift_medium.png
Binary files differ
diff --git a/ftnoir_tracker_rift_080/images/rift_small.png b/tracker-rift-080/images/rift_small.png
index 3f18080c..3f18080c 100644
--- a/ftnoir_tracker_rift_080/images/rift_small.png
+++ b/tracker-rift-080/images/rift_small.png
Binary files differ
diff --git a/ftnoir_tracker_rift_080/images/rift_tiny.png b/tracker-rift-080/images/rift_tiny.png
index 76fe0f58..76fe0f58 100644
--- a/ftnoir_tracker_rift_080/images/rift_tiny.png
+++ b/tracker-rift-080/images/rift_tiny.png
Binary files differ
diff --git a/ftnoir_tracker_rift_080/images/small.png b/tracker-rift-080/images/small.png
index 3f18080c..3f18080c 100644
--- a/ftnoir_tracker_rift_080/images/small.png
+++ b/tracker-rift-080/images/small.png
Binary files differ
diff --git a/ftnoir_tracker_rift_080/images/tiny.png b/tracker-rift-080/images/tiny.png
index 76fe0f58..76fe0f58 100644
--- a/ftnoir_tracker_rift_080/images/tiny.png
+++ b/tracker-rift-080/images/tiny.png
Binary files differ
diff --git a/tracker-rs/CMakeLists.txt b/tracker-rs/CMakeLists.txt
new file mode 100644
index 00000000..f4f6d4b9
--- /dev/null
+++ b/tracker-rs/CMakeLists.txt
@@ -0,0 +1,5 @@
+if(WIN32)
+ opentrack_boilerplate(opentrack-tracker-rs)
+ install(FILES "${CMAKE_SOURCE_DIR}/tracker-rs/rs_impl/bin/opentrack-tracker-rs-impl.exe" DESTINATION . ${opentrack-perms})
+ install(FILES "${CMAKE_SOURCE_DIR}/tracker-rs/redist/intel_rs_sdk_runtime_websetup_6.0.21.6598.exe" DESTINATION ./contrib/ ${opentrack-perms})
+endif()
diff --git a/ftnoir_tracker_rs/README.md b/tracker-rs/README.md
index 5fca4392..5fca4392 100644
--- a/ftnoir_tracker_rs/README.md
+++ b/tracker-rs/README.md
diff --git a/ftnoir_tracker_rs/ftnoir_tracker_rs.cpp b/tracker-rs/ftnoir_tracker_rs.cpp
index 3e9b23c8..3e9b23c8 100644
--- a/ftnoir_tracker_rs/ftnoir_tracker_rs.cpp
+++ b/tracker-rs/ftnoir_tracker_rs.cpp
diff --git a/ftnoir_tracker_rs/ftnoir_tracker_rs.h b/tracker-rs/ftnoir_tracker_rs.h
index 7cda7370..7cda7370 100644
--- a/ftnoir_tracker_rs/ftnoir_tracker_rs.h
+++ b/tracker-rs/ftnoir_tracker_rs.h
diff --git a/ftnoir_tracker_rs/ftnoir_tracker_rs_controls.cpp b/tracker-rs/ftnoir_tracker_rs_controls.cpp
index 6c71d58f..6c71d58f 100644
--- a/ftnoir_tracker_rs/ftnoir_tracker_rs_controls.cpp
+++ b/tracker-rs/ftnoir_tracker_rs_controls.cpp
diff --git a/ftnoir_tracker_rs/ftnoir_tracker_rs_controls.h b/tracker-rs/ftnoir_tracker_rs_controls.h
index 010dac99..010dac99 100644
--- a/ftnoir_tracker_rs/ftnoir_tracker_rs_controls.h
+++ b/tracker-rs/ftnoir_tracker_rs_controls.h
diff --git a/ftnoir_tracker_rs/ftnoir_tracker_rs_controls.ui b/tracker-rs/ftnoir_tracker_rs_controls.ui
index 834803d1..834803d1 100644
--- a/ftnoir_tracker_rs/ftnoir_tracker_rs_controls.ui
+++ b/tracker-rs/ftnoir_tracker_rs_controls.ui
diff --git a/ftnoir_tracker_rs/images/RS.png b/tracker-rs/images/RS.png
index 4ca11aac..4ca11aac 100644
--- a/ftnoir_tracker_rs/images/RS.png
+++ b/tracker-rs/images/RS.png
Binary files differ
diff --git a/ftnoir_tracker_rs/images/intel-16x16.png b/tracker-rs/images/intel-16x16.png
index e985ace1..e985ace1 100644
--- a/ftnoir_tracker_rs/images/intel-16x16.png
+++ b/tracker-rs/images/intel-16x16.png
Binary files differ
diff --git a/ftnoir_tracker_rs/redist/intel_rs_sdk_runtime_websetup_6.0.21.6598.exe b/tracker-rs/redist/intel_rs_sdk_runtime_websetup_6.0.21.6598.exe
index 34ecc9df..34ecc9df 100644
--- a/ftnoir_tracker_rs/redist/intel_rs_sdk_runtime_websetup_6.0.21.6598.exe
+++ b/tracker-rs/redist/intel_rs_sdk_runtime_websetup_6.0.21.6598.exe
Binary files differ
diff --git a/ftnoir_tracker_rs/rs_impl/bin/opentrack-tracker-rs-impl.exe b/tracker-rs/rs_impl/bin/opentrack-tracker-rs-impl.exe
index 1e2a57f1..1e2a57f1 100644
--- a/ftnoir_tracker_rs/rs_impl/bin/opentrack-tracker-rs-impl.exe
+++ b/tracker-rs/rs_impl/bin/opentrack-tracker-rs-impl.exe
Binary files differ
diff --git a/ftnoir_tracker_rs/rs_impl/build.bat b/tracker-rs/rs_impl/build.bat
index 15206431..15206431 100644
--- a/ftnoir_tracker_rs/rs_impl/build.bat
+++ b/tracker-rs/rs_impl/build.bat
diff --git a/ftnoir_tracker_rs/rs_impl/ftnoir_tracker_rs_impl.cpp b/tracker-rs/rs_impl/ftnoir_tracker_rs_impl.cpp
index c1ba5c75..c1ba5c75 100644
--- a/ftnoir_tracker_rs/rs_impl/ftnoir_tracker_rs_impl.cpp
+++ b/tracker-rs/rs_impl/ftnoir_tracker_rs_impl.cpp
diff --git a/ftnoir_tracker_rs/rs_impl/ftnoir_tracker_rs_impl.h b/tracker-rs/rs_impl/ftnoir_tracker_rs_impl.h
index 0e4073d0..0e4073d0 100644
--- a/ftnoir_tracker_rs/rs_impl/ftnoir_tracker_rs_impl.h
+++ b/tracker-rs/rs_impl/ftnoir_tracker_rs_impl.h
diff --git a/ftnoir_tracker_rs/rs_impl/udp_sender.cpp b/tracker-rs/rs_impl/udp_sender.cpp
index 095edd8f..095edd8f 100644
--- a/ftnoir_tracker_rs/rs_impl/udp_sender.cpp
+++ b/tracker-rs/rs_impl/udp_sender.cpp
diff --git a/ftnoir_tracker_rs/rs_tracker.qrc b/tracker-rs/rs_tracker.qrc
index 155a5bd1..155a5bd1 100644
--- a/ftnoir_tracker_rs/rs_tracker.qrc
+++ b/tracker-rs/rs_tracker.qrc
diff --git a/tracker-udp/CMakeLists.txt b/tracker-udp/CMakeLists.txt
new file mode 100644
index 00000000..51e96773
--- /dev/null
+++ b/tracker-udp/CMakeLists.txt
@@ -0,0 +1 @@
+opentrack_boilerplate(opentrack-tracker-udp)
diff --git a/ftnoir_tracker_udp/ftnoir_ftnclientcontrols.ui b/tracker-udp/ftnoir_ftnclientcontrols.ui
index cb9362ca..cb9362ca 100644
--- a/ftnoir_tracker_udp/ftnoir_ftnclientcontrols.ui
+++ b/tracker-udp/ftnoir_ftnclientcontrols.ui
diff --git a/ftnoir_tracker_udp/ftnoir_tracker_udp.cpp b/tracker-udp/ftnoir_tracker_udp.cpp
index 1610f917..1610f917 100644
--- a/ftnoir_tracker_udp/ftnoir_tracker_udp.cpp
+++ b/tracker-udp/ftnoir_tracker_udp.cpp
diff --git a/ftnoir_tracker_udp/ftnoir_tracker_udp.h b/tracker-udp/ftnoir_tracker_udp.h
index 6de5b295..6de5b295 100644
--- a/ftnoir_tracker_udp/ftnoir_tracker_udp.h
+++ b/tracker-udp/ftnoir_tracker_udp.h
diff --git a/ftnoir_tracker_udp/ftnoir_tracker_udp_dialog.cpp b/tracker-udp/ftnoir_tracker_udp_dialog.cpp
index 5e7d5437..5e7d5437 100644
--- a/ftnoir_tracker_udp/ftnoir_tracker_udp_dialog.cpp
+++ b/tracker-udp/ftnoir_tracker_udp_dialog.cpp
diff --git a/x-plane-plugin/CMakeLists.txt b/x-plane-plugin/CMakeLists.txt
new file mode 100644
index 00000000..de42b5a5
--- /dev/null
+++ b/x-plane-plugin/CMakeLists.txt
@@ -0,0 +1,29 @@
+opentrack_boilerplate(opentrack-xplane-plugin NO-LIBRARY)
+
+if(LINUX OR APPLE)
+ set(SDK_XPLANE "" CACHE PATH "Path to X-Plane SDK")
+ if(SDK_XPLANE)
+ # probably librt already included
+ add_library(opentrack-xplane-plugin SHARED ${opentrack-xplane-plugin-c})
+ target_include_directories(opentrack-xplane-plugin SYSTEM PUBLIC ${SDK_XPLANE}/CHeaders ${SDK_XPLANE}/CHeaders/XPLM)
+ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC AND NOT APPLE)
+ SET_TARGET_PROPERTIES(opentrack-xplane-plugin
+ PROPERTIES LINK_FLAGS
+ "-Wl,--version-script=${CMAKE_SOURCE_DIR}/x-plane-plugin/version-script.txt -shared -rdynamic -nodefaultlibs -undefined_warning -fPIC"
+ COMPILE_FLAGS "-Wall -O2 -pipe -fPIC -DLIN -DXPLM200 -DXPLM210"
+ LIBRARY_OUTPUT_NAME "opentrack.xpl"
+ PREFIX "" SUFFIX "")
+ endif()
+ if(APPLE)
+ SET_TARGET_PROPERTIES(opentrack-xplane-plugin PROPERTIES
+ COMPILE_FLAGS "-iframework ${SDK_XPLANE}/Libraries/Mac/ -DAPL -DXPLM200 -DXPLM210 -framework XPLM -framework XPWidgets"
+ LINK_FLAGS "-F${SDK_XPLANE}/Libraries/Mac/ -framework XPLM -framework XPWidgets"
+ LIBRARY_OUTPUT_NAME "opentrack.xpl"
+ PREFIX "" SUFFIX "")
+ endif()
+ if(UNIX AND NOT APPLE)
+ target_link_libraries(opentrack-xplane-plugin rt)
+ endif()
+ install(TARGETS opentrack-xplane-plugin RUNTIME DESTINATION . LIBRARY DESTINATION . )
+ endif()
+endif()