summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--filter-accela/ftnoir_filter_accela.h2
-rw-r--r--filter-ewma2/ftnoir_filter_ewma2.h2
-rw-r--r--filter-kalman/ftnoir_filter_kalman.h2
-rw-r--r--gui/main.cpp2
-rw-r--r--gui/new_file_dialog.h2
-rw-r--r--gui/process_detector.h2
-rw-r--r--gui/ui.cpp4
-rw-r--r--gui/ui.h2
-rw-r--r--opentrack-compat/compat-export.hpp15
-rw-r--r--opentrack-compat/compat-import.hpp15
-rw-r--r--opentrack-compat/export.hpp22
-rw-r--r--opentrack-compat/import.hpp15
-rw-r--r--opentrack-compat/shm.h22
-rw-r--r--opentrack/CMakeLists.txt2
-rw-r--r--opentrack/main-settings.hpp2
-rw-r--r--opentrack/mappings.hpp2
-rw-r--r--opentrack/plugin-api.hpp40
-rw-r--r--opentrack/plugin-support.hpp2
-rw-r--r--opentrack/selected-libraries.hpp9
-rw-r--r--opentrack/shortcuts.h14
-rw-r--r--opentrack/state.hpp2
-rw-r--r--opentrack/tracker.h10
-rw-r--r--opentrack/win32-shortcuts.h8
-rw-r--r--proto-fg/ftnoir_protocol_fg.h2
-rw-r--r--proto-fsuipc/ftnoir_protocol_fsuipc.h2
-rw-r--r--proto-ft/ftnoir_protocol_ft.h2
-rw-r--r--proto-ftn/ftnoir_protocol_ftn.h2
-rw-r--r--proto-mouse/ftnoir_protocol_mouse.h2
-rw-r--r--proto-sc/ftnoir_protocol_sc.h2
-rw-r--r--spline-widget/CMakeLists.txt1
-rw-r--r--spline-widget/qfunctionconfigurator.cpp2
-rw-r--r--tracker-aruco/ftnoir_tracker_aruco.h2
-rw-r--r--tracker-freepie-udp/ftnoir_tracker_freepie-udp.h2
-rw-r--r--tracker-hatire/ftnoir_tracker_hat_settings.cpp2
-rw-r--r--tracker-ht/ftnoir_tracker_ht.h2
-rw-r--r--tracker-hydra/ftnoir_tracker_hydra.h2
-rw-r--r--tracker-joystick/ftnoir_tracker_joystick.h2
-rw-r--r--tracker-pt/ftnoir_tracker_pt_settings.h2
-rw-r--r--tracker-rift-025/ftnoir_tracker_rift_025.h2
-rw-r--r--tracker-rift-042/ftnoir_tracker_rift_042.h2
-rw-r--r--tracker-rift-080/ftnoir_tracker_rift_080.h2
-rw-r--r--tracker-udp/ftnoir_tracker_udp.h2
42 files changed, 157 insertions, 78 deletions
diff --git a/filter-accela/ftnoir_filter_accela.h b/filter-accela/ftnoir_filter_accela.h
index b15e0cea..289b84f0 100644
--- a/filter-accela/ftnoir_filter_accela.h
+++ b/filter-accela/ftnoir_filter_accela.h
@@ -12,7 +12,7 @@
#include <QMutex>
#include <QTimer>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
#include "opentrack-compat/timer.hpp"
diff --git a/filter-ewma2/ftnoir_filter_ewma2.h b/filter-ewma2/ftnoir_filter_ewma2.h
index bf4e83ad..bdb9cedc 100644
--- a/filter-ewma2/ftnoir_filter_ewma2.h
+++ b/filter-ewma2/ftnoir_filter_ewma2.h
@@ -5,7 +5,7 @@
#include <QElapsedTimer>
#include <QWidget>
#include <QMutex>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/filter-kalman/ftnoir_filter_kalman.h b/filter-kalman/ftnoir_filter_kalman.h
index a6f40bb7..773f61d5 100644
--- a/filter-kalman/ftnoir_filter_kalman.h
+++ b/filter-kalman/ftnoir_filter_kalman.h
@@ -16,7 +16,7 @@
#include <QString>
#include <QElapsedTimer>
#include <QWidget>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/gui/main.cpp b/gui/main.cpp
index a63fe54a..3ae01404 100644
--- a/gui/main.cpp
+++ b/gui/main.cpp
@@ -3,7 +3,7 @@
#endif
#include "ui.h"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
#include <QApplication>
#include <QCommandLineParser>
diff --git a/gui/new_file_dialog.h b/gui/new_file_dialog.h
index 3a35cf71..5fdabb3a 100644
--- a/gui/new_file_dialog.h
+++ b/gui/new_file_dialog.h
@@ -1,7 +1,7 @@
#pragma once
#include "ui_new_config.h"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
#include <QFile>
#include <QRegExp>
#include <QString>
diff --git a/gui/process_detector.h b/gui/process_detector.h
index f6497c90..e395e1a2 100644
--- a/gui/process_detector.h
+++ b/gui/process_detector.h
@@ -13,7 +13,7 @@
#include <QTableWidget>
#include <QResizeEvent>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
class FancyTable : public QTableWidget
diff --git a/gui/ui.cpp b/gui/ui.cpp
index 5ea5dbfa..fc6d4754 100644
--- a/gui/ui.cpp
+++ b/gui/ui.cpp
@@ -8,7 +8,7 @@
#include "ui.h"
#include "opentrack/tracker.h"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
#include "new_file_dialog.h"
#include <QFileDialog>
#include <QDesktopServices>
@@ -411,7 +411,7 @@ bool mk_dialog(mem<dylib> lib, mem<t>& orig)
dialog->show();
dialog->raise();
- QObject::connect(dialog.get(), &BaseDialog::closing, [&]() -> void { orig = nullptr; });
+ QObject::connect(dialog.get(), &plugin_api::detail::BaseDialog::closing, [&]() -> void { orig = nullptr; });
return true;
}
diff --git a/gui/ui.h b/gui/ui.h
index 91e4ebbf..44bcde0c 100644
--- a/gui/ui.h
+++ b/gui/ui.h
@@ -19,7 +19,7 @@
#include "ui_main.h"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
#include "opentrack/main-settings.hpp"
#include "opentrack/plugin-support.hpp"
#include "opentrack/tracker.h"
diff --git a/opentrack-compat/compat-export.hpp b/opentrack-compat/compat-export.hpp
new file mode 100644
index 00000000..2d6f1d3d
--- /dev/null
+++ b/opentrack-compat/compat-export.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#ifndef OPENTRACK_COMPAT_EXPORT
+# ifdef _WIN32
+# define OPENTRACK_COMPAT_LINKAGE __declspec(dllexport)
+# else
+# define OPENTRACK_COMPAT_LINKAGE
+# endif
+
+# ifndef _MSC_VER
+# define OPENTRACK_COMPAT_EXPORT __attribute__ ((visibility ("default"))) OPENTRACK_COMPAT_LINKAGE
+# else
+# define OPENTRACK_COMPAT_EXPORT OPENTRACK_COMPAT_LINKAGE
+# endif
+#endif
diff --git a/opentrack-compat/compat-import.hpp b/opentrack-compat/compat-import.hpp
new file mode 100644
index 00000000..161ccc5d
--- /dev/null
+++ b/opentrack-compat/compat-import.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#ifndef OPENTRACK_COMPAT_EXPORT
+# ifdef _WIN32
+# define OPENTRACK_COMPAT_LINKAGE __declspec(dllimport)
+# else
+# define OPENTRACK_COMPAT_LINKAGE
+# endif
+
+# ifndef _MSC_VER
+# define OPENTRACK_COMPAT_EXPORT __attribute__ ((visibility ("default"))) OPENTRACK_COMPAT_LINKAGE
+# else
+# define OPENTRACK_COMPAT_EXPORT OPENTRACK_COMPAT_LINKAGE
+# endif
+#endif
diff --git a/opentrack-compat/export.hpp b/opentrack-compat/export.hpp
index f0983b75..100950a0 100644
--- a/opentrack-compat/export.hpp
+++ b/opentrack-compat/export.hpp
@@ -1,13 +1,15 @@
#pragma once
-#ifdef _WIN32
-# define OPENTRACK_LINKAGE __declspec(dllexport)
-#else
-# define OPENTRACK_LINKAGE
-#endif
+#ifndef OPENTRACK_EXPORT
+# ifdef _WIN32
+# define OPENTRACK_LINKAGE __declspec(dllexport)
+# else
+# define OPENTRACK_LINKAGE
+# endif
-#ifndef _MSC_VER
-# define OPENTRACK_EXPORT __attribute__ ((visibility ("default"))) OPENTRACK_LINKAGE
-#else
-# define OPENTRACK_EXPORT OPENTRACK_LINKAGE
-#endif \ No newline at end of file
+# ifndef _MSC_VER
+# define OPENTRACK_EXPORT __attribute__ ((visibility ("default"))) OPENTRACK_LINKAGE
+# else
+# define OPENTRACK_EXPORT OPENTRACK_LINKAGE
+# endif
+#endif
diff --git a/opentrack-compat/import.hpp b/opentrack-compat/import.hpp
new file mode 100644
index 00000000..3747b141
--- /dev/null
+++ b/opentrack-compat/import.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#ifndef OPENTRACK_EXPORT
+# ifdef _WIN32
+# define OPENTRACK_LINKAGE __declspec(dllimport)
+# else
+# define OPENTRACK_LINKAGE
+# endif
+
+# ifndef _MSC_VER
+# define OPENTRACK_EXPORT __attribute__ ((visibility ("default"))) OPENTRACK_LINKAGE
+# else
+# define OPENTRACK_EXPORT OPENTRACK_LINKAGE
+# endif
+#endif
diff --git a/opentrack-compat/shm.h b/opentrack-compat/shm.h
index 28bda986..c62976bd 100644
--- a/opentrack-compat/shm.h
+++ b/opentrack-compat/shm.h
@@ -22,29 +22,13 @@
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wattributes"
-#ifdef __GNUC__
-# define COMPAT_GNUC_VISIBILITY __attribute__ ((visibility ("default")))
-#else
-# define COMPAT_GNUC_VISIBILITY
-#endif
-
#ifdef BUILD_compat
-# ifdef _WIN32
-# define COMPAT_WIN32_EXPORT __declspec(dllexport)
-# else
-# define COMPAT_WIN32_EXPORT
-# endif
+# include "compat-export.hpp"
#else
-# ifdef _WIN32
-# define COMPAT_WIN32_EXPORT __declspec(dllimport)
-# else
-# define COMPAT_WIN32_EXPORT
-# endif
+# include "compat-import.hpp"
#endif
-#define COMPAT_EXPORT COMPAT_WIN32_EXPORT COMPAT_GNUC_VISIBILITY
-
-class COMPAT_EXPORT PortableLockedShm {
+class OPENTRACK_COMPAT_EXPORT PortableLockedShm {
public:
PortableLockedShm(const char *shmName, const char *mutexName, int mapSize);
~PortableLockedShm();
diff --git a/opentrack/CMakeLists.txt b/opentrack/CMakeLists.txt
index c3676979..de5975e2 100644
--- a/opentrack/CMakeLists.txt
+++ b/opentrack/CMakeLists.txt
@@ -1,4 +1,4 @@
-opentrack_boilerplate(opentrack-api NO-LINKER-SCRIPT NO-COMPAT)
+opentrack_boilerplate(opentrack-api NO-LINKER-SCRIPT NO-COMPAT LINKAGE)
if(NOT WIN32)
target_link_libraries(opentrack-api opentrack-qxt-mini opentrack-compat dl)
else()
diff --git a/opentrack/main-settings.hpp b/opentrack/main-settings.hpp
index 613223ce..b7b086ad 100644
--- a/opentrack/main-settings.hpp
+++ b/opentrack/main-settings.hpp
@@ -9,7 +9,7 @@
#pragma once
#include <QString>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
#include "opentrack/plugin-api.hpp"
using namespace options;
diff --git a/opentrack/mappings.hpp b/opentrack/mappings.hpp
index bb38a3ca..087ea7f3 100644
--- a/opentrack/mappings.hpp
+++ b/opentrack/mappings.hpp
@@ -8,7 +8,7 @@
#pragma once
#include <QSettings>
-#include "options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
#include "spline-widget/functionconfig.h"
#include "main-settings.hpp"
diff --git a/opentrack/plugin-api.hpp b/opentrack/plugin-api.hpp
index a57077ab..5fdc3bcb 100644
--- a/opentrack/plugin-api.hpp
+++ b/opentrack/plugin-api.hpp
@@ -8,17 +8,38 @@
#pragma once
-#include "../opentrack-compat/export.hpp"
#include <QString>
#include <QWidget>
#include <QFrame>
#include <QIcon>
+#ifdef BUILD_api
+# include "opentrack-compat/export.hpp"
+#else
+# include "opentrack-compat/import.hpp"
+#endif
+
+#ifndef OPENTRACK_PLUGIN_EXPORT
+# ifdef _WIN32
+# define OPENTRACK_PLUGIN_LINKAGE __declspec(dllexport)
+# else
+# define OPENTRACK_PLUGIN_LINKAGE
+# endif
+# ifndef _MSC_VER
+# define OPENTRACK_PLUGIN_EXPORT __attribute__ ((visibility ("default"))) OPENTRACK_PLUGIN_LINKAGE
+# else
+# define OPENTRACK_PLUGIN_EXPORT OPENTRACK_PLUGIN_LINKAGE
+# endif
+#endif
+
enum Axis {
TX = 0, TY, TZ, Yaw, Pitch, Roll
};
-class BaseDialog : public QWidget
+namespace plugin_api {
+namespace detail {
+
+class OPENTRACK_EXPORT BaseDialog : public QWidget
{
Q_OBJECT
public:
@@ -27,16 +48,19 @@ signals:
void closing();
};
+} // ns
+} // ns
+
#define OPENTRACK_DECLARE_PLUGIN_INTERNAL(ctor_class, ctor_ret_class, metadata_class, dialog_class, dialog_ret_class) \
- extern "C" OPENTRACK_EXPORT ctor_ret_class* GetConstructor() \
+ extern "C" OPENTRACK_PLUGIN_EXPORT ctor_ret_class* GetConstructor() \
{ \
return new ctor_class; \
} \
- extern "C" OPENTRACK_EXPORT Metadata* GetMetadata() \
+ extern "C" OPENTRACK_PLUGIN_EXPORT Metadata* GetMetadata() \
{ \
return new metadata_class; \
} \
- extern "C" OPENTRACK_EXPORT dialog_ret_class* GetDialog() \
+ extern "C" OPENTRACK_PLUGIN_EXPORT dialog_ret_class* GetDialog() \
{ \
return new dialog_class; \
}
@@ -65,7 +89,7 @@ struct IFilter
virtual void center() {}
};
-struct IFilterDialog : public BaseDialog
+struct IFilterDialog : public plugin_api::detail::BaseDialog
{
// optional destructor
virtual ~IFilterDialog() {}
@@ -93,7 +117,7 @@ struct IProtocol
virtual QString game_name() = 0;
};
-struct IProtocolDialog : public BaseDialog
+struct IProtocolDialog : public plugin_api::detail::BaseDialog
{
// optional destructor
virtual ~IProtocolDialog() {}
@@ -118,7 +142,7 @@ struct ITracker
virtual void data(double *data) = 0;
};
-struct ITrackerDialog : public BaseDialog
+struct ITrackerDialog : public plugin_api::detail::BaseDialog
{
// optional destructor
virtual ~ITrackerDialog() {}
diff --git a/opentrack/plugin-support.hpp b/opentrack/plugin-support.hpp
index 102d11c4..650eec10 100644
--- a/opentrack/plugin-support.hpp
+++ b/opentrack/plugin-support.hpp
@@ -8,7 +8,7 @@
#pragma once
#include "plugin-api.hpp"
-#include "options.hpp"
+#include "opentrack-compat/options.hpp"
#include <QWidget>
#include <QDebug>
diff --git a/opentrack/selected-libraries.hpp b/opentrack/selected-libraries.hpp
index 3719b109..b396b5ec 100644
--- a/opentrack/selected-libraries.hpp
+++ b/opentrack/selected-libraries.hpp
@@ -11,7 +11,14 @@
#include "opentrack/plugin-support.hpp"
#include <QFrame>
-struct SelectedLibraries {
+
+#ifdef BUILD_api
+# include "opentrack-compat/export.hpp"
+#else
+# include "opentrack-compat/import.hpp"
+#endif
+
+struct OPENTRACK_EXPORT SelectedLibraries {
using dylibptr = mem<dylib>;
mem<ITracker> pTracker;
mem<IFilter> pFilter;
diff --git a/opentrack/shortcuts.h b/opentrack/shortcuts.h
index 63d91829..03adc1ab 100644
--- a/opentrack/shortcuts.h
+++ b/opentrack/shortcuts.h
@@ -17,9 +17,15 @@
#include <QSettings>
#include <QMutex>
+#ifdef BUILD_api
+# include "opentrack-compat/export.hpp"
+#else
+# include "opentrack-compat/import.hpp"
+#endif
+
#include "qxt-mini/QxtGlobalShortcut"
#include "opentrack/plugin-support.hpp"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
#include "opentrack/main-settings.hpp"
using namespace options;
@@ -66,9 +72,7 @@ typedef unsigned char BYTE;
struct Key { int foo; };
#endif
-struct Shortcuts;
-
-struct KeybindingWorker : public QThread {
+struct OPENTRACK_EXPORT KeybindingWorker : public QThread {
#ifdef _WIN32
private:
LPDIRECTINPUT8 din;
@@ -87,7 +91,7 @@ public:
#endif
};
-struct Shortcuts : public QObject {
+struct OPENTRACK_EXPORT Shortcuts : public QObject {
Q_OBJECT
public:
diff --git a/opentrack/state.hpp b/opentrack/state.hpp
index e4cb0f04..dcb18293 100644
--- a/opentrack/state.hpp
+++ b/opentrack/state.hpp
@@ -9,7 +9,7 @@
#pragma once
#include <vector>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
#include "opentrack/plugin-support.hpp"
#include "opentrack/main-settings.hpp"
diff --git a/opentrack/tracker.h b/opentrack/tracker.h
index 890660e1..e26c3f7a 100644
--- a/opentrack/tracker.h
+++ b/opentrack/tracker.h
@@ -18,7 +18,7 @@
#include "spline-widget/functionconfig.h"
#include "main-settings.hpp"
-#include "options.hpp"
+#include "opentrack-compat/options.hpp"
#include <QMutex>
#include <QThread>
@@ -40,7 +40,13 @@ public:
inline double operator()(int i) const { return axes[i]; }
};
-class Tracker : private QThread {
+#ifdef BUILD_api
+# include "opentrack-compat/export.hpp"
+#else
+# include "opentrack-compat/import.hpp"
+#endif
+
+class OPENTRACK_EXPORT Tracker : private QThread {
Q_OBJECT
private:
QMutex mtx;
diff --git a/opentrack/win32-shortcuts.h b/opentrack/win32-shortcuts.h
index fe92ae53..9b2c6121 100644
--- a/opentrack/win32-shortcuts.h
+++ b/opentrack/win32-shortcuts.h
@@ -10,7 +10,13 @@ struct win_key;
extern QList<win_key> windows_key_mods;
extern QList<win_key> windows_key_sequences;
-struct win_key
+#ifdef BUILD_api
+# include "opentrack-compat/export.hpp"
+#else
+# include "opentrack-compat/import.hpp"
+#endif
+
+struct OPENTRACK_EXPORT win_key
{
win_key(int win, Qt::Key qt) : win(win), qt(qt) {}
int win;
diff --git a/proto-fg/ftnoir_protocol_fg.h b/proto-fg/ftnoir_protocol_fg.h
index de528270..5b1cbc81 100644
--- a/proto-fg/ftnoir_protocol_fg.h
+++ b/proto-fg/ftnoir_protocol_fg.h
@@ -15,7 +15,7 @@
#include <QUdpSocket>
#include <QMessageBox>
#include "opentrack/plugin-api.hpp"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/proto-fsuipc/ftnoir_protocol_fsuipc.h b/proto-fsuipc/ftnoir_protocol_fsuipc.h
index c8e91a42..af59e988 100644
--- a/proto-fsuipc/ftnoir_protocol_fsuipc.h
+++ b/proto-fsuipc/ftnoir_protocol_fsuipc.h
@@ -24,7 +24,7 @@
#include <QDebug>
#include <QFile>
#include <QFileDialog>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
#define FSUIPC_FILENAME "C:\\Program Files\\Microsoft Games\\Flight Simulator 9\\Modules\\FSUIPC.dll"
diff --git a/proto-ft/ftnoir_protocol_ft.h b/proto-ft/ftnoir_protocol_ft.h
index 8e50f1cb..9cf16f03 100644
--- a/proto-ft/ftnoir_protocol_ft.h
+++ b/proto-ft/ftnoir_protocol_ft.h
@@ -19,7 +19,7 @@
#include <QMutex>
#include <QMutexLocker>
#include "opentrack-compat/shm.h"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
#include "freetrackclient/fttypes.h"
using namespace options;
diff --git a/proto-ftn/ftnoir_protocol_ftn.h b/proto-ftn/ftnoir_protocol_ftn.h
index 7fe6c225..d8b8aff0 100644
--- a/proto-ftn/ftnoir_protocol_ftn.h
+++ b/proto-ftn/ftnoir_protocol_ftn.h
@@ -16,7 +16,7 @@
#include <QMessageBox>
#include <cmath>
#include "opentrack/plugin-api.hpp"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/proto-mouse/ftnoir_protocol_mouse.h b/proto-mouse/ftnoir_protocol_mouse.h
index 595be393..f1730777 100644
--- a/proto-mouse/ftnoir_protocol_mouse.h
+++ b/proto-mouse/ftnoir_protocol_mouse.h
@@ -10,7 +10,7 @@
#include "ui_ftnoir_mousecontrols.h"
#include <QDebug>
#include "opentrack/plugin-api.hpp"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/proto-sc/ftnoir_protocol_sc.h b/proto-sc/ftnoir_protocol_sc.h
index 671a3500..dcc0ca77 100644
--- a/proto-sc/ftnoir_protocol_sc.h
+++ b/proto-sc/ftnoir_protocol_sc.h
@@ -20,7 +20,7 @@
#include <QProcess>
#include <QDebug>
#include <QFile>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
#include <windows.h>
diff --git a/spline-widget/CMakeLists.txt b/spline-widget/CMakeLists.txt
index 4d951f92..651a7874 100644
--- a/spline-widget/CMakeLists.txt
+++ b/spline-widget/CMakeLists.txt
@@ -1 +1,2 @@
opentrack_boilerplate(opentrack-spline-widget NO-LINKER-SCRIPT NO-COMPAT LINKAGE)
+target_link_libraries(opentrack-spline-widget opentrack-compat)
diff --git a/spline-widget/qfunctionconfigurator.cpp b/spline-widget/qfunctionconfigurator.cpp
index 7ab1e360..5d910826 100644
--- a/spline-widget/qfunctionconfigurator.cpp
+++ b/spline-widget/qfunctionconfigurator.cpp
@@ -5,7 +5,7 @@
* copyright notice and this permission notice appear in all copies.
*/
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
#include "spline-widget/qfunctionconfigurator.h"
#include <QPainter>
diff --git a/tracker-aruco/ftnoir_tracker_aruco.h b/tracker-aruco/ftnoir_tracker_aruco.h
index f827da77..018f69ea 100644
--- a/tracker-aruco/ftnoir_tracker_aruco.h
+++ b/tracker-aruco/ftnoir_tracker_aruco.h
@@ -15,7 +15,7 @@
#include <QHBoxLayout>
#include <QDialog>
#include <QTimer>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
#include "trans_calib.h"
#include "opentrack/plugin-api.hpp"
#include "opentrack/opencv-camera-dialog.hpp"
diff --git a/tracker-freepie-udp/ftnoir_tracker_freepie-udp.h b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.h
index 7cff2ec9..9d18c7d1 100644
--- a/tracker-freepie-udp/ftnoir_tracker_freepie-udp.h
+++ b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.h
@@ -10,7 +10,7 @@
#include <QThread>
#include "ui_freepie-udp-controls.h"
#include "opentrack/plugin-api.hpp"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/tracker-hatire/ftnoir_tracker_hat_settings.cpp b/tracker-hatire/ftnoir_tracker_hat_settings.cpp
index e6b32047..df0480a1 100644
--- a/tracker-hatire/ftnoir_tracker_hat_settings.cpp
+++ b/tracker-hatire/ftnoir_tracker_hat_settings.cpp
@@ -14,7 +14,7 @@
#include "ftnoir_tracker_hat_settings.h"
#ifdef OPENTRACK_API
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
#endif
void TrackerSettings::load_ini()
diff --git a/tracker-ht/ftnoir_tracker_ht.h b/tracker-ht/ftnoir_tracker_ht.h
index 1e364456..0563fe1c 100644
--- a/tracker-ht/ftnoir_tracker_ht.h
+++ b/tracker-ht/ftnoir_tracker_ht.h
@@ -12,7 +12,7 @@
#include "ht_video_widget.h"
#include "opentrack-compat/shm.h"
#include <QObject>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
#include "opentrack/plugin-api.hpp"
#include "opentrack/opencv-camera-dialog.hpp"
diff --git a/tracker-hydra/ftnoir_tracker_hydra.h b/tracker-hydra/ftnoir_tracker_hydra.h
index 47a1eb9a..94396b7c 100644
--- a/tracker-hydra/ftnoir_tracker_hydra.h
+++ b/tracker-hydra/ftnoir_tracker_hydra.h
@@ -1,6 +1,6 @@
#include "ui_ftnoir_hydra_clientcontrols.h"
#include "opentrack/plugin-api.hpp"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/tracker-joystick/ftnoir_tracker_joystick.h b/tracker-joystick/ftnoir_tracker_joystick.h
index 75305f07..29e65af1 100644
--- a/tracker-joystick/ftnoir_tracker_joystick.h
+++ b/tracker-joystick/ftnoir_tracker_joystick.h
@@ -27,7 +27,7 @@
#include <oleauto.h>
#include <shellapi.h>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/tracker-pt/ftnoir_tracker_pt_settings.h b/tracker-pt/ftnoir_tracker_pt_settings.h
index 85eec8f9..e4bfa371 100644
--- a/tracker-pt/ftnoir_tracker_pt_settings.h
+++ b/tracker-pt/ftnoir_tracker_pt_settings.h
@@ -9,7 +9,7 @@
#ifndef FTNOIR_TRACKER_PT_SETTINGS_H
#define FTNOIR_TRACKER_PT_SETTINGS_H
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings_pt : opts
diff --git a/tracker-rift-025/ftnoir_tracker_rift_025.h b/tracker-rift-025/ftnoir_tracker_rift_025.h
index 2bd5024b..8333e092 100644
--- a/tracker-rift-025/ftnoir_tracker_rift_025.h
+++ b/tracker-rift-025/ftnoir_tracker_rift_025.h
@@ -6,7 +6,7 @@
#include "opentrack/plugin-api.hpp"
#include "OVR.h"
#include <memory>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/tracker-rift-042/ftnoir_tracker_rift_042.h b/tracker-rift-042/ftnoir_tracker_rift_042.h
index 437a2a39..77e7ffa6 100644
--- a/tracker-rift-042/ftnoir_tracker_rift_042.h
+++ b/tracker-rift-042/ftnoir_tracker_rift_042.h
@@ -6,7 +6,7 @@
#include "opentrack/plugin-api.hpp"
#include "OVR.h"
#include <memory>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/tracker-rift-080/ftnoir_tracker_rift_080.h b/tracker-rift-080/ftnoir_tracker_rift_080.h
index 08684dd2..879d31d2 100644
--- a/tracker-rift-080/ftnoir_tracker_rift_080.h
+++ b/tracker-rift-080/ftnoir_tracker_rift_080.h
@@ -6,7 +6,7 @@
#include "opentrack/plugin-api.hpp"
#include "OVR.h"
#include <memory>
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {
diff --git a/tracker-udp/ftnoir_tracker_udp.h b/tracker-udp/ftnoir_tracker_udp.h
index 6de5b295..3f0e6d8c 100644
--- a/tracker-udp/ftnoir_tracker_udp.h
+++ b/tracker-udp/ftnoir_tracker_udp.h
@@ -4,7 +4,7 @@
#include <QThread>
#include <cmath>
#include "opentrack/plugin-api.hpp"
-#include "opentrack/options.hpp"
+#include "opentrack-compat/options.hpp"
using namespace options;
struct settings : opts {