XNSim/XNCore/CMakeLists.txt

101 lines
2.2 KiB
CMake
Raw Normal View History

2025-04-28 12:25:20 +08:00
cmake_minimum_required(VERSION 3.16)
project(XNCore LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT fastcdr_FOUND)
find_package(fastcdr 2 REQUIRED)
endif()
if(NOT fastdds_FOUND)
find_package(fastdds 3 REQUIRED)
endif()
file(GLOB DDS_XNIDL_SOURCES_CXX "XNIDL/*.cxx")
find_package(Threads REQUIRED)
find_package(OpenSSL REQUIRED)
add_library(XNCore SHARED
XNCore_global.h
2025-05-20 16:41:46 +08:00
XNCore_Function.cpp
XNTypeTraits.h
XNByteArray.h
2025-04-28 12:25:20 +08:00
XNObject.h
XNObject.cpp
XNObject_p.h
XNFramework.cpp
XNFramework.h
XNFramework_p.h
XNBaseFrameObject.h
XNBaseFrameObject.cpp
XNBaseFrameObject_p.h
XNLogger.h
XNLogger.cpp
XNTimeManager.h
XNTimeManager_p.h
XNTimeManager.cpp
XNThread.h
XNThread.cpp
2025-05-20 15:39:40 +08:00
XNThread_p.h
2025-04-28 12:25:20 +08:00
XNThreadManager.h
XNThreadManager_p.h
XNThreadManager.cpp
XNModelObject.h
XNModelObject_p.h
XNModelObject.cpp
XNModelManager.h
XNModelManager_p.h
XNModelManager.cpp
XNScenarioManager.h
XNScenarioManager_p.h
XNScenarioManager.cpp
XNDDSManager.h
XNDDSManager.cpp
XNServiceManager.h
XNServiceManager_p.h
XNServiceManager.cpp
XNEventManager.h
XNEventManager_p.h
XNEventManager.cpp
XNServiceObject.h
XNServiceObject_p.h
XNServiceObject.cpp
XNDDSInterface.h
XNDDSInterface.cpp
2025-04-28 12:25:20 +08:00
${DDS_XNIDL_SOURCES_CXX}
)
target_link_libraries(XNCore PRIVATE
${CMAKE_THREAD_LIBS_INIT}
fastcdr
fastdds
pthread
OpenSSL::SSL
OpenSSL::Crypto
)
target_compile_definitions(XNCore PRIVATE XNCORE_LIBRARY)
# Check if CMAKE_INSTALL_PREFIX is set to its default value
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/../Release" CACHE PATH "Install path prefix" FORCE)
endif()
include(GNUInstallDirs)
install(TARGETS XNCore
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION .
)
# 添加自定义命令和目标以拷贝所有头文件
file(GLOB HEADER_FILES "*.h")
# 使用 install 命令在安装时拷贝头文件
install(FILES ${HEADER_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/XNCore)
file(GLOB IDL_FILES "XNIDL/*")
install(FILES ${IDL_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/XNIDL)