From 9ab92b6d62d08cb28139f60ce904f2f818395558 Mon Sep 17 00:00:00 2001 From: Anthony Date: Mon, 8 Apr 2024 20:54:40 +0200 Subject: [PATCH] feat(plugin): create initial structure for XPLM --- plugin/CMakeLists.txt | 21 ++++++++++++++++++++ plugin/main.cpp | 45 +++++++++++++++++++++++++++++++++++++++++++ plugin/vcpkg.json | 15 +++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 plugin/CMakeLists.txt create mode 100644 plugin/main.cpp create mode 100644 plugin/vcpkg.json diff --git a/plugin/CMakeLists.txt b/plugin/CMakeLists.txt new file mode 100644 index 0000000..59716f9 --- /dev/null +++ b/plugin/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.27) + +project(XPL-Checklist-Connector CXX) + +set(CMAKE_CXX_STANDARD 17) + +# Set compile options for XPLM +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DXPLM401=1 -fvisibility=hidden -shared -rdynamic -nodefaultlibs -undefined_warning -lGL -lGLU") + +# Set output directory in X-Plane plugin structure +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/lin_x64) + +find_package(unofficial-x-plane CONFIG REQUIRED) + +add_executable(XPL-Checklist-Connector main.cpp) + +target_link_libraries(XPL-Checklist-Connector PRIVATE unofficial::x-plane::xplm unofficial::x-plane::xpwidgets unofficial::x-plane::xplm_cpp) + +# Rename compiled file to X-Plane conventions +set_target_properties(XPL-Checklist-Connector PROPERTIES RUNTIME_OUTPUT_NAME "lin") +set_target_properties(XPL-Checklist-Connector PROPERTIES SUFFIX ".xpl") diff --git a/plugin/main.cpp b/plugin/main.cpp new file mode 100644 index 0000000..f5847d6 --- /dev/null +++ b/plugin/main.cpp @@ -0,0 +1,45 @@ +#include + +#if IBM + #include + BOOL APIENTRY DllMain( HANDLE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) + { + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; + } +#endif +#if LIN + #include +#elif __GNUC__ + #include +#else + #include +#endif + +#ifndef XPLM401 + #error This is made to be compiled against the XPLM400 SDK +#endif + +PLUGIN_API int XPluginStart(char * outName, char * outSignature, char * outDescription) { + return 0; +} + +PLUGIN_API int XPluginEnable(void) { + return 1; +} + +PLUGIN_API void XPluginReceiveMessage(XPLMPluginID inFrom, int inMsg, void * inParam) { } + +PLUGIN_API void XPluginDisable(void) { } + +PLUGIN_API void XPluginStop(void) { } \ No newline at end of file diff --git a/plugin/vcpkg.json b/plugin/vcpkg.json new file mode 100644 index 0000000..af3b9a8 --- /dev/null +++ b/plugin/vcpkg.json @@ -0,0 +1,15 @@ +{ + "name" : "xpl-checklist-connector", + "version-string" : "1.0.0", + "builtin-baseline" : "5fa0f075ea51f305b627ecd5e050a363707353ff", + "dependencies" : [ { + "name" : "vcpkg-cmake-config", + "version>=" : "2022-02-06#1" + }, { + "name" : "vcpkg-cmake", + "version>=" : "2023-05-04" + }, { + "name" : "x-plane", + "version>=" : "4.0.1" + } ] +} \ No newline at end of file