66 lines
1.5 KiB
CMake
66 lines
1.5 KiB
CMake
|
cmake_minimum_required(VERSION 3.16)
|
||
|
|
||
|
project(C909_V1_Interface LANGUAGES CXX)
|
||
|
|
||
|
set(CMAKE_CXX_STANDARD 17)
|
||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||
|
|
||
|
# 获取环境变量
|
||
|
if(DEFINED ENV{XNCore})
|
||
|
set(XNCore_PATH $ENV{XNCore})
|
||
|
else()
|
||
|
message(FATAL_ERROR "Environment variable XNCore is not set.")
|
||
|
endif()
|
||
|
|
||
|
# 添加 XNCore_PATH 下的 include 目录为包含目录
|
||
|
include_directories(${XNCore_PATH}/include)
|
||
|
|
||
|
if(NOT fastcdr_FOUND)
|
||
|
find_package(fastcdr 2 REQUIRED)
|
||
|
endif()
|
||
|
|
||
|
if(NOT fastdds_FOUND)
|
||
|
find_package(fastdds 3 REQUIRED)
|
||
|
endif()
|
||
|
|
||
|
find_package(OpenSSL REQUIRED)
|
||
|
|
||
|
add_library(C909_V1_Interface SHARED
|
||
|
C909_V1.hpp
|
||
|
C909_V1CdrAux.hpp
|
||
|
C909_V1CdrAux.ipp
|
||
|
C909_V1PubSubTypes.hpp
|
||
|
C909_V1PubSubTypes.cxx
|
||
|
C909_V1TypeObjectSupport.hpp
|
||
|
C909_V1TypeObjectSupport.cxx
|
||
|
ATA04/GroundHandling_input.hpp
|
||
|
ATA04/GroundHandling_input.cxx
|
||
|
ATA04/GroundHandling_output.hpp
|
||
|
ATA04/GroundHandling_output.cxx
|
||
|
ATA04/GroundHandling_heartbeat.hpp
|
||
|
ATA04/GroundHandling_heartbeat.cxx
|
||
|
)
|
||
|
|
||
|
|
||
|
target_link_libraries(C909_V1_Interface PRIVATE
|
||
|
fastcdr
|
||
|
fastdds
|
||
|
OpenSSL::SSL
|
||
|
OpenSSL::Crypto
|
||
|
${XNCore_PATH}/lib/libXNCore.so
|
||
|
)
|
||
|
|
||
|
target_compile_definitions(C909_V1_Interface PRIVATE C909_V1_INTERFACE_LIBRARY)
|
||
|
|
||
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||
|
set(CMAKE_INSTALL_PREFIX "${XNCore_PATH}" CACHE PATH "Install path prefix" FORCE)
|
||
|
endif()
|
||
|
|
||
|
include(GNUInstallDirs)
|
||
|
install(TARGETS C909_V1_Interface
|
||
|
BUNDLE DESTINATION .
|
||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||
|
RUNTIME DESTINATION .
|
||
|
)
|