summaryrefslogtreecommitdiffhomepage
path: root/x-plane-plugin
diff options
context:
space:
mode:
Diffstat (limited to 'x-plane-plugin')
-rw-r--r--x-plane-plugin/CMakeLists.txt31
-rw-r--r--x-plane-plugin/plugin.c11
2 files changed, 25 insertions, 17 deletions
diff --git a/x-plane-plugin/CMakeLists.txt b/x-plane-plugin/CMakeLists.txt
index 23881ca3..1d686d98 100644
--- a/x-plane-plugin/CMakeLists.txt
+++ b/x-plane-plugin/CMakeLists.txt
@@ -1,5 +1,5 @@
if(LINUX OR APPLE)
- set(SDK_XPLANE "" CACHE PATH "Path to X-Plane SDK")
+ set(SDK_XPLANE "" CACHE PATH "Path to the X-Plane SDK")
if(SDK_XPLANE)
otr_module(xplane-plugin NO-QT)
@@ -8,29 +8,28 @@ if(LINUX OR APPLE)
target_include_directories(opentrack-xplane-plugin SYSTEM PUBLIC ${SDK_XPLANE}/CHeaders ${SDK_XPLANE}/CHeaders/XPLM)
if(APPLE)
- set_property(TARGET opentrack-xplane-plugin APPEND_STRING PROPERTY
- COMPILE_FLAGS "-iframework ${SDK_XPLANE}/Libraries/Mac/ -DAPL -DXPLM200 -DXPLM210 -framework XPLM -framework XPWidgets ")
- set_property(TARGET opentrack-xplane-plugin APPEND_STRING PROPERTY
- LINK_FLAGS "-F${SDK_XPLANE}/Libraries/Mac/ -framework XPLM -framework XPWidgets ")
+ target_compile_options(${self} PRIVATE
+ -iframework "${SDK_XPLANE}/Libraries/Mac/"
+ -DAPL -DXPLM200 -DXPLM210
+ -framework XPLM -framework XPWidgets)
+ target_link_options(${self}
+ "-F${SDK_XPLANE}/Libraries/Mac/"
+ -framework XPLM -framework XPWidgets)
elseif(CMAKE_COMPILER_IS_GNUCXX)
- set_property(TARGET opentrack-xplane-plugin APPEND_STRING PROPERTY
- COMPILE_FLAGS "-fPIC -DLIN -DXPLM200 -DXPLM210 ")
- set_property(TARGET opentrack-xplane-plugin APPEND_STRING PROPERTY
- LINK_FLAGS "-rdynamic -nodefaultlibs -fPIC ")
+ target_compile_options(${self} PRIVATE -DLIN -DXPLM200 -DXPLM210)
+ target_link_options(${self} PRIVATE -rdynamic -nodefaultlibs)
endif()
- if(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_COMPILER_IS_CLANG)
- set_property(TARGET opentrack-xplane-plugin APPEND_STRING PROPERTY
- LINK_FLAGS "-undefined_warning ")
+ if(CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_COMPILER_IS_CLANG)
+ target_link_options(${self} PRIVATE -undefined_warning)
endif()
- set_target_properties(opentrack-xplane-plugin PROPERTIES
+ set_target_properties(${self} PROPERTIES
LIBRARY_OUTPUT_NAME "opentrack.xpl"
- PREFIX ""
- SUFFIX "")
+ PREFIX "" SUFFIX "")
if(UNIX AND NOT APPLE)
- target_link_libraries(opentrack-xplane-plugin rt)
+ target_link_libraries(${self} rt)
endif()
endif()
endif()
diff --git a/x-plane-plugin/plugin.c b/x-plane-plugin/plugin.c
index b0482d69..b062bb02 100644
--- a/x-plane-plugin/plugin.c
+++ b/x-plane-plugin/plugin.c
@@ -159,6 +159,15 @@ static int TranslationToggleHandler(XPLMCommandRef inCommand,
return 0;
}
+static inline
+void volatile_explicit_bzero(void volatile* restrict ptr, size_t len)
+{
+ for (size_t i = 0; i < len; i++)
+ *((char volatile* restrict)ptr + i) = 0;
+
+ asm volatile("" ::: "memory");
+}
+
PLUGIN_API OTR_GENERIC_EXPORT
int XPluginStart (char* outName, char* outSignature, char* outDescription) {
view_x = XPLMFindDataRef("sim/aircraft/view/acf_peX");
@@ -189,7 +198,7 @@ int XPluginStart (char* outName, char* outSignature, char* outDescription) {
return 0;
}
shm_posix = lck_posix->mem;
- memset(shm_posix, 0, sizeof(WineSHM));
+ volatile_explicit_bzero(shm_posix, sizeof(WineSHM));
strcpy(outName, "opentrack");
strcpy(outSignature, "opentrack - freetrack lives!");
strcpy(outDescription, "head tracking view control");