comac_desk_app/GenerateReport/CMakeLists.txt

74 lines
2.3 KiB
CMake
Raw Permalink Normal View History

2024-11-21 11:50:43 +08:00
cmake_minimum_required(VERSION 3.5)
SET(PROJECT_NAME GenerateReport)
project(${PROJECT_NAME} LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Widgets AxContainer REQUIRED)
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
############################################################
# Create an executable
############################################################
#所有.ui文件
file(GLOB ALL_UI "*.ui")
#所有.h文件
file(GLOB ALL_HEAD "*.h")
#所有.cpp文件
file(GLOB ALL_SOURCE "*.cpp")
SET(SRC_QRC_FILES
"${LIBRARY_ElaWidgetTools_INCLUDE}/ElaWidgetTools.qrc"
)
# 定义QCustomPlot DLL导入符号宏定义
ADD_DEFINITIONS("-DQCUSTOMPLOT_USE_LIBRARY")
add_executable(${PROJECT_NAME}
${ALL_HEAD}
${ALL_SOURCE}
${ALL_UI}
${SRC_QRC_FILES}
)
# 配置编译选项
IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
SET(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
ENDIF()
#输出目录
SET(EXECUTABLE_OUTPUT_PATH ${outputDir_EXE})
#libreoffice路径设置
SET(LIBREOFFICE_DIR ${LIBRARY_THIRDPARTY_DIR}/Libs/windows-x86_64/libreoffice)
INCLUDE_DIRECTORIES(${LIBREOFFICE_DIR}/include)
FILE(GLOB LIBRARY_libreoffice_LIBS "${LIBREOFFICE_DIR}/lib${PROJECT_BUILD_TYPE_POSTFIX}/*.lib")
FILE(GLOB LIBRARY_libreoffice_BINS "${LIBREOFFICE_DIR}/bin${PROJECT_BUILD_TYPE_POSTFIX}/*.*")
FILE(COPY ${LIBRARY_libreoffice_BINS} DESTINATION ${outputDir_EXE})
#FILE(COPY ${LIBREOFFICE_DIR}/bin DESTINATION ${outputDir_EXE})
INCLUDE_DIRECTORIES(${LIBREOFFICE_DIR}/include ${LIBRARY_ElaWidgetTools_INCLUDE} ${LIBRARY_QCustomPlot_INCLUDE})
#UI组件库
FILE(COPY ${LIBRARY_ElaWidgetTools_BINS} DESTINATION ${outputDir_EXE})
#QCustomPlot组件库
FILE(COPY ${LIBRARY_QCustomPlot_BINS} DESTINATION ${outputDir_EXE})
target_link_libraries(${PROJECT_NAME}
PRIVATE
# ${libName}
${LIBREOFFICE_DIR}/lib
)
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Widgets Qt5::AxContainer ${LIBRARY_libreoffice_LIBS} ${LIBRARY_ElaWidgetTools_LIBS} ${LIBRARY_QCustomPlot_LIBS})