COMPASSi/trunk/code/3rd/CCSReport/CMakeLists.txt

95 lines
2.6 KiB
CMake
Raw Permalink Normal View History

2025-06-25 15:06:42 +08:00
cmake_minimum_required(VERSION 3.5)
project(CCSReport)
add_definitions(-DCCS_COMPASSREPORT_LIB)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
IF(MSVC)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
#SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
ENDIF(MSVC)
if(WIN32)
add_definitions(-DCOMPASS_WINDOWS)
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
set(CMAKE_DEBUG_POSTFIX "d")
else()
add_definitions(-DCOMPASS_UNIX)
add_compile_options(-fPIC)
add_compile_options(-fpermissive)
set(CMAKE_DEBUG_POSTFIX "d")
set(CMAKE_PREFIX_PATH "/opt/Qt/5.15.2/gcc_64") # 替换为您的 Qt 安装路径
endif()
find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets PrintSupport Svg Xml) # Qt COMPONENTS
if(Qt5_FOUND)
message(STATUS "Qt5 found.")
else()
message(FATAL_ERROR "Qt5 not found.")
endif()
set(PROJECTS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../")
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src srcs_src)
# 自动查找当前目录下的所有 .cpp 文件
#ile(GLOB SOURCE_FILESE ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc)
# 查找当前目录下所有的 .h 文件(可选)
file(GLOB HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h)
set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}")
add_library(${PROJECT_NAME} SHARED
${HEADER_FILES}
${srcs_src}
)
target_link_libraries(${PROJECT_NAME} PRIVATE
Qt5::Widgets
Qt5::Core
Qt5::Gui
Qt5::PrintSupport
Qt5::Svg
Qt5::Xml
)
if(WIN32)
# 根据构建类型链接不同的库
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(DLLFILE "${PROJECTS_PATH}/build/${CMAKE_BUILD_TYPE}/CCSReportd.dll")
set(LIBFILE "${PROJECTS_PATH}/build/${CMAKE_BUILD_TYPE}/CCSReportd.lib")
else()
set(DLLFILE "${PROJECTS_PATH}/build/${CMAKE_BUILD_TYPE}/CCSReport.dll")
set(LIBFILE "${PROJECTS_PATH}/build/${CMAKE_BUILD_TYPE}/CCSReport.lib")
endif()
else()
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
else()
endif()
endif()
# 拷贝库到指定目录
if(WIN32)
# set(WINDLLDIR "${PROJECTS_PATH}/win_bin/")
# add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E copy_if_different
# "${DLLFILE}" "${WINDLLDIR}")
#拷贝lib到lib/
# set(LIBDIR "${PROJECTS_PATH}/lib/")
# add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E copy_if_different
# "${LIBFILE}" "${LIBDIR}")
endif()