diff --git a/plugin/CMakeLists.txt b/plugin/CMakeLists.txt index 8159198..7e540ae 100644 --- a/plugin/CMakeLists.txt +++ b/plugin/CMakeLists.txt @@ -3,19 +3,25 @@ cmake_minimum_required(VERSION 3.27) project(XPL-Checklist-Connector CXX) set(CMAKE_CXX_STANDARD 17) +set(CMAKE_BUILD_TYPE Release) # Set compile options for XPLM -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DXPLM200=1 -DXPLM210=1 -DXPLM300=1 -DXPLM301=1 -DXPLM302=1 -DXPLM303=1 -DXPLM401=1 -fvisibility=hidden -shared -rdynamic -nodefaultlibs -undefined_warning -lGL -lGLU") +add_definitions(-DXPLM200=1 -DXPLM210=1 -DXPLM300=1 -DXPLM301=1 -DXPLM302=1 -DXPLM303=1 -DXPLM401=1) -# Set output directory in X-Plane plugin structure -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/lin_x64) +set(GCC_COVERAGE_COMPILE_FLAGS "-fPIC -fvisibility=hidden") +set(GCC_COVERAGE_LINK_FLAGS "-m64 -static-libgcc -shared") find_package(unofficial-x-plane CONFIG REQUIRED) -add_executable(XPL-Checklist-Connector main.cpp) +add_library(${PROJECT_NAME} SHARED main.cpp) -target_link_libraries(XPL-Checklist-Connector PRIVATE unofficial::x-plane::xplm unofficial::x-plane::xpwidgets unofficial::x-plane::xplm_cpp) +target_link_libraries(${PROJECT_NAME} 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") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}") + +set_target_properties(${PROJECT_NAME} PROPERTIES + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build/${PROJECT_NAME}/lin_x64 + PREFIX "" + SUFFIX ".xpl" + LINK_FLAGS ${GCC_COVERAGE_LINK_FLAGS} +)