diff options
Diffstat (limited to 'x-plane-plugin')
| -rw-r--r-- | x-plane-plugin/CMakeLists.txt | 31 | ||||
| -rw-r--r-- | x-plane-plugin/plugin.c | 11 | 
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"); | 
