Files
pilotclient/cmake/simconnect/CMakeLists.txt
2024-12-20 14:18:26 +01:00

46 lines
2.2 KiB
CMake

# SPDX-FileCopyrightText: Copyright (C) swift Project Community / Contributors
# SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
# Checks if variable for SDK path is set and SimConnect.h does exist in the include path.
# If not, disable building the simulator plugin and emit warning message
if(SWIFT_BUILD_FSX_PLUGIN OR SWIFT_BUILD_P3D_PLUGIN OR SWIFT_BUILD_MSFS_PLUGIN OR SWIFT_BUILD_MSFS2024_PLUGIN)
add_library(externals_simconnect INTERFACE IMPORTED GLOBAL)
target_compile_definitions(externals_simconnect INTERFACE SIMCONNECT_H_NOMANIFEST)
target_compile_definitions(externals_simconnect INTERFACE BUID_SIMCONNECT_LIB)
if(SWIFT_WIN64)
target_include_directories(externals_simconnect INTERFACE ${PROJECT_SOURCE_DIR}/third_party/externals/common/include/simconnect/P3D-v4)
target_compile_definitions(externals_simconnect INTERFACE P3D_SDK_VERSION=400)
elseif(SWIFT_WIN32)
target_include_directories(externals_simconnect INTERFACE ${PROJECT_SOURCE_DIR}/third_party/externals/common/include/simconnect/FSX-XPack)
endif()
add_custom_target(external_simconnects_dlls)
add_dependencies(externals_simconnect external_simconnects_dlls)
macro(add_install_command LIB)
add_custom_command(TARGET external_simconnects_dlls
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LIB} ${PROJECT_BINARY_DIR}/out/bin/
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
install(FILES ${LIB} DESTINATION bin)
endmacro()
if(SWIFT_WIN32)
add_install_command(${PROJECT_SOURCE_DIR}/third_party/externals/win32-msvc/32/lib/SimConnect.dll)
elseif(SWIFT_WIN64)
list(APPEND LIBS SimConnect.MSFS.dll)
list(APPEND LIBS SimConnect.MSFS2024.dll)
list(APPEND LIBS SimConnect.P3D-v4.0.dll)
list(APPEND LIBS SimConnect.P3D-v4.1.dll)
list(APPEND LIBS SimConnect.P3D-v4.2.dll)
list(APPEND LIBS SimConnect.P3D-v4.3.dll)
list(APPEND LIBS SimConnect.P3D-v4.3.dll)
list(APPEND LIBS SimConnect.P3D-v4.5.dll)
foreach (LIB IN LISTS LIBS)
add_install_command( ${PROJECT_SOURCE_DIR}/third_party/externals/win32-msvc/64/lib/${LIB})
endforeach()
endif()
endif()