302 lines
11 KiB
CMake
302 lines
11 KiB
CMake
cmake_minimum_required(VERSION 3.5)
|
|
project(CCSReport_2)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
add_definitions(-DCCS_COMPASSREPORT_LIB)
|
|
add_definitions(-DRTFWRITER_LIB)
|
|
add_definitions(-DZLIB_DLL)
|
|
|
|
|
|
|
|
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")
|
|
add_compile_options("/utf-8")
|
|
#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)
|
|
|
|
|
|
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}/include/bands)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/base)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/exporter)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/items)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/serializators)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/translation)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/utils)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/utils/log)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/utils/rtf)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/utils/podofo)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/utils/podofo/base)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/utils/podofo/doc)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/utils/podofo/base/util)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
|
|
|
|
|
|
|
|
# 自动查找当前目录下的所有 .cpp 文件
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src srcs_src)
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/bands src_bands)
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/base src_base)
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/exporter src_exporter)
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/items src_items)
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/serializators src_serializators)
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/translation src_translation)
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/utils src_utils)
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/utils/log src_log)
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/utils/rtf src_rtf)
|
|
|
|
|
|
# 查找当前目录下所有的 .h 文件(可选)
|
|
file(GLOB_RECURSE HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h)
|
|
|
|
message(STATUS "CPP_FILES: ${CPP_FILES}")
|
|
|
|
#qt5_wrap_cpp(MOC_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/include/common_types.h)
|
|
|
|
set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}")
|
|
add_library(${PROJECT_NAME} SHARED
|
|
${HEADER_FILES}
|
|
${srcs_src}
|
|
${src_bands}
|
|
${src_base}
|
|
${src_exporter}
|
|
${src_items}
|
|
${src_serializators}
|
|
${src_translation}
|
|
${src_utils}
|
|
${src_log}
|
|
${src_rtf}
|
|
|
|
)
|
|
|
|
|
|
if(WIN32)
|
|
#添加jpeg
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/jpeglib/win64/include")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/jpeglib/win64/lib")
|
|
# target_link_libraries(${PROJECT_NAME} PRIVATE turbojpeg)
|
|
|
|
#添加libtiff
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/libtiff/win64/include")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/libtiff/win64/lib")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/libtiff/win64/lib/pkgconfig")
|
|
# target_link_libraries(${PROJECT_NAME} PRIVATE tiff)
|
|
|
|
# 添加Freetype
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/freetype/win64/include")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/freetype/win64/include/config")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/freetype/win64/lib")
|
|
|
|
# 添加libpng
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/libpng/win64/include")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/libpng/win64/lib")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/libpng/win64/lib/pkgconfig")
|
|
|
|
#添加 zlib 头文件路径
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/zlib/win64")
|
|
#添加 zlib 库路径
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/zlib/win64")
|
|
|
|
#添加Podofo
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/win64")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/win64/include")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/win64/include/podofo")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/win64/include/podofo/base")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/win64/include/podofo/doc")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/win64/include/podofo/base/util")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/win64/lib")
|
|
|
|
|
|
else()
|
|
#添加jpeg
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/jpeglib/arm_linux/include")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/jpeglib/arm_linux/lib")
|
|
# target_link_libraries(${PROJECT_NAME} PRIVATE turbojpeg)
|
|
|
|
#添加libtiff
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/libtiff/arm_linux/include")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/libtiff/arm_linux/lib")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/libtiff/arm_linux/lib/pkgconfig")
|
|
# target_link_libraries(${PROJECT_NAME} PRIVATE tiff)
|
|
|
|
# 添加Freetype
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/freetype/arm_linux/include")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/freetype/arm_linux/include/config")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/freetype/arm_linux/lib")
|
|
|
|
# 添加libpng
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/libpng/arm_linux/include")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/libpng/arm_linux/lib")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/libpng/arm_linux/lib/pkgconfig")
|
|
|
|
#添加 zlib 头文件路径
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/zlib/arm_linux")
|
|
#添加 zlib 库路径
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/zlib/arm_linux")
|
|
|
|
#添加Podofo
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/arm_linux")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/arm_linux/include")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/arm_linux/include/podofo")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/arm_linux/include/podofo/base")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/arm_linux/include/podofo/doc")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/arm_linux/include/podofo/base/util")
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/podofo/arm_linux/lib")
|
|
|
|
#添加 openssl 头文件路径
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/openssl/include")
|
|
#添加 openssl 库路径
|
|
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/openssl/lib")
|
|
|
|
#添加bzip2
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/bzip2/include")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/bzip2/lib")
|
|
|
|
#添加brotli
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/brotli/include")
|
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/brotli/lib")
|
|
endif()
|
|
|
|
|
|
|
|
if(WIN32)
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC
|
|
Qt5::Widgets
|
|
Qt5::Core
|
|
Qt5::Gui
|
|
Qt5::PrintSupport
|
|
Qt5::Svg
|
|
Qt5::Xml
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/zlib/win64/zlib.lib"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/jpeglib/win64/lib/jpeg.lib"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/libtiff/win64/lib/tiff.lib"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/freetype/win64/lib/freetype.lib"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/libpng/win64/lib/libpng15.lib"
|
|
|
|
ws2_32
|
|
)
|
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/podofo/win64/lib/podofod.lib)
|
|
else()
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/podofo/win64/lib/podofo.lib)
|
|
endif()
|
|
else()
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC
|
|
Qt5::Widgets
|
|
Qt5::Core
|
|
Qt5::Gui
|
|
Qt5::PrintSupport
|
|
Qt5::Svg
|
|
Qt5::Xml
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/zlib/arm_linux/libz.so"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/jpeglib/arm_linux/lib/libjpeg.so"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/libtiff/arm_linux/lib/libtiff.so"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/freetype/arm_linux/lib/libfreetype.so"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/libpng/arm_linux/lib/libpng.so"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/openssl/lib/libssl.so"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/openssl/lib/libcrypto.so"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/bzip2/lib/libbz2.so.1.0"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/brotli/lib/libbrotlidec.so"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/brotli/lib/libbrotlicommon.so"
|
|
)
|
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/podofo/arm_linux/lib/libpodofod.so)
|
|
else()
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/podofo/arm_linux/lib/libpodofo.so)
|
|
endif()
|
|
endif()
|
|
#target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/zlib/zlib.lib)
|
|
#target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/zlib/zlibd.lib)
|
|
|
|
|
|
|
|
|
|
|
|
# 构建 PoDoFo 为动态库
|
|
# set(PODOFO_BUILD_SHARED ON CACHE BOOL "Build PoDoFo as shared library")
|
|
# set(PODOFO_BUILD_STATIC OFF CACHE BOOL "Don't build PoDoFo as static library")
|
|
# #set(PODOFO_BUILD_DEPS OFF CACHE BOOL "Build dependencies like zlib internally")
|
|
# set(PoDoFo_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
|
# if(WIN32)
|
|
# set(PODOFO_LIB_DEPENDS
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/zlib/win64/zlib.lib"
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/jpeglib/win64/lib/jpeg.lib"
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/libtiff/win64/lib/tiff.lib"
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/freetype/win64/lib/freetype.lib"
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/libpng/win64/lib/libpng15.lib"
|
|
# ws2_32
|
|
# )
|
|
# else()
|
|
# set(PODOFO_LIB_DEPENDS
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/zlib/arm_linux/libz.so"
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/jpeglib/arm_linux/lib/libjpeg.so"
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/libtiff/arm_linux/lib/libtiff.so"
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/freetype/arm_linux/lib/libfreetype.so"
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/libpng/arm_linux/lib/libpng15.so"
|
|
# # ws2_32
|
|
# )
|
|
# endif()
|
|
|
|
|
|
|
|
|
|
|
|
# # 添加podofo源码作为子目录
|
|
# add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/include/utils/podofo)
|
|
# #链接 podofo 库
|
|
# target_link_libraries(${PROJECT_NAME} PRIVATE ${PODOFO_DEPEND_TARGET})
|
|
|
|
|
|
|
|
|
|
if(WIN32)
|
|
# 根据构建类型链接不同的库
|
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
set(DLLFILE "${PROJECTS_PATH}/build/${CMAKE_BUILD_TYPE}/CCSReport_2d.dll")
|
|
set(LIBFILE "${PROJECTS_PATH}/build/${CMAKE_BUILD_TYPE}/CCSReport_2d.lib")
|
|
else()
|
|
set(DLLFILE "${PROJECTS_PATH}/build/${CMAKE_BUILD_TYPE}/CCSReport_2.dll")
|
|
set(LIBFILE "${PROJECTS_PATH}/build/${CMAKE_BUILD_TYPE}/CCSReport_2.lib")
|
|
endif()
|
|
else()
|
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
else()
|
|
endif()
|
|
endif()
|