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("$<$:/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()