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(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() if(DEFINED ENV{XNCore}) set(XNCore_PATH $ENV{XNCore}) else() message(FATAL_ERROR "Environment variable XNCore is not set.") endif() 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) set(ALL_SUBDIR_SOURCES "") add_subdirectory(ATA04) 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 C909_V1_Interface.h ${ALL_SUBDIR_SOURCES} ) 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 RUNTIME DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION . )