XNSim/XNMonitorServer/CMakeLists.txt

90 lines
2.0 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()
include_directories(${XNCore_PATH}/include)
find_package(OpenSSL REQUIRED)
find_package(nlohmann_json 3.9.1 REQUIRED)
find_package(SQLite3 REQUIRED)
add_library(XNMonitorServer SHARED
XNMonitorServer_global.h
TopicManager.h
XNDataReaderListenerImpl.h
TypeDefine.h
XNMonitorInterface.h
XNMonitorInterface.cpp
SystemInfoMonitor.h
SystemInfoMonitor.cpp
ModelInfoMonitor.h
ModelInfoMonitor.cpp
SystemControl.h
SystemControl.cpp
DataMonitor.h
DataMonitorFactory.h
DataMonitorFactory.cpp
DataInjectThread.h
DataInjectThread.cpp
CSVDataInjectThread.h
CSVDataInjectThread.cpp
DataCollect.h
DataCollect.cpp
PluginManager.h
PluginManager.cpp
PluginInterface.h
PluginGenerator.h
PluginGenerator.cpp
)
# 添加头文件搜索路径
target_include_directories(XNMonitorServer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(XNMonitorServer PRIVATE
nlohmann_json::nlohmann_json
fastcdr
fastdds
OpenSSL::SSL
OpenSSL::Crypto
SQLite::SQLite3
${XNCore_PATH}/lib/libXNCore.so
dl
)
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 .
)
#添加自定义命令和目标以拷贝所有头文件
file(GLOB HEADER_FILES "*.h")
# 使用 install 命令在安装时拷贝头文件
install(FILES ${HEADER_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/XNMonitor)