XNSim/XNMonitorServer/CMakeLists.txt

66 lines
1.5 KiB
CMake

cmake_minimum_required(VERSION 3.16)
project(XNMonitorServer 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()
# 获取环境变量
if(DEFINED ENV{XNCore})
set(XNCore_PATH $ENV{XNCore})
else()
message(FATAL_ERROR "Environment variable XNCore is not set.")
endif()
file(GLOB DDS_XNIDL_SOURCES_CXX "../XNCore/XNIDL/*.cxx")
find_package(OpenSSL REQUIRED)
find_package(nlohmann_json 3.9.1 REQUIRED)
add_library(XNMonitorServer SHARED
XNMonitorServer_global.h
TopicManager.h
TopicManager.cpp
DataReaderListenerImpl.h
TypeDefine.h
XNMonitorInterface.h
XNMonitorInterface.cpp
SystemInfoMonitor.h
SystemInfoMonitor.cpp
ModelInfoMonitor.h
ModelInfoMonitor.cpp
${DDS_XNIDL_SOURCES_CXX}
)
# 添加头文件搜索路径
target_include_directories(XNMonitorServer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(XNMonitorServer PRIVATE
nlohmann_json::nlohmann_json
fastcdr
fastdds
OpenSSL::SSL
OpenSSL::Crypto
)
target_compile_definitions(XNMonitorServer PRIVATE XNMONITOR_SERVER_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 XNMonitorServer
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION .
)