2025-05-22 16:22:48 +08:00
|
|
|
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)
|
2025-06-23 16:12:40 +08:00
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
|
|
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build (Debug, Release, RelWithDebInfo, MinSizeRel)" FORCE)
|
|
|
|
endif()
|
|
|
|
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
|
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
|
|
|
|
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -DNDEBUG")
|
|
|
|
endif()
|
2025-05-22 16:22:48 +08:00
|
|
|
if(DEFINED ENV{XNCore})
|
2025-05-26 09:04:11 +08:00
|
|
|
set(XNCore_PATH $ENV{XNCore})
|
2025-05-22 16:22:48 +08:00
|
|
|
else()
|
2025-05-26 09:04:11 +08:00
|
|
|
message(FATAL_ERROR "Environment variable XNCore is not set.")
|
2025-05-22 16:22:48 +08:00
|
|
|
endif()
|
|
|
|
include_directories(${XNCore_PATH}/include)
|
|
|
|
if(NOT fastcdr_FOUND)
|
2025-05-26 09:04:11 +08:00
|
|
|
find_package(fastcdr 2 REQUIRED)
|
2025-05-22 16:22:48 +08:00
|
|
|
endif()
|
|
|
|
if(NOT fastdds_FOUND)
|
2025-05-26 09:04:11 +08:00
|
|
|
find_package(fastdds 3 REQUIRED)
|
2025-05-22 16:22:48 +08:00
|
|
|
endif()
|
|
|
|
find_package(OpenSSL REQUIRED)
|
2025-06-23 09:52:58 +08:00
|
|
|
set(ALL_SUBDIR_SOURCES "")
|
|
|
|
add_subdirectory(ATA04)
|
2025-05-22 16:22:48 +08:00
|
|
|
add_library(C909_V1_Interface SHARED
|
2025-05-26 09:04:11 +08:00
|
|
|
C909_V1.hpp
|
|
|
|
C909_V1CdrAux.hpp
|
|
|
|
C909_V1CdrAux.ipp
|
|
|
|
C909_V1PubSubTypes.hpp
|
|
|
|
C909_V1PubSubTypes.cxx
|
|
|
|
C909_V1TypeObjectSupport.hpp
|
|
|
|
C909_V1TypeObjectSupport.cxx
|
2025-06-20 12:52:37 +08:00
|
|
|
C909_V1_Interface.h
|
2025-06-23 09:52:58 +08:00
|
|
|
${ALL_SUBDIR_SOURCES}
|
2025-05-22 16:22:48 +08:00
|
|
|
)
|
2025-05-26 09:04:11 +08:00
|
|
|
target_link_libraries(C909_V1_Interface PRIVATE
|
|
|
|
fastcdr fastdds OpenSSL::SSL OpenSSL::Crypto
|
|
|
|
${XNCore_PATH}/lib/libXNCore.so
|
2025-05-22 16:22:48 +08:00
|
|
|
)
|
|
|
|
target_compile_definitions(C909_V1_Interface PRIVATE C909_V1_INTERFACE_LIBRARY)
|
|
|
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
2025-05-26 09:04:11 +08:00
|
|
|
set(CMAKE_INSTALL_PREFIX "${XNCore_PATH}" CACHE PATH "Install path prefix" FORCE)
|
2025-05-22 16:22:48 +08:00
|
|
|
endif()
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
install(TARGETS C909_V1_Interface
|
|
|
|
RUNTIME DESTINATION .
|
2025-05-26 09:04:11 +08:00
|
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
|
|
ARCHIVE DESTINATION .
|
2025-05-22 16:22:48 +08:00
|
|
|
)
|