cmake_minimum_required(VERSION 3.5) project(ToolkitFramework) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/bin) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/bin) # 查找Qt5组件 find_package(Qt5 COMPONENTS Core Widgets REQUIRED) find_package(Git QUIET) if(GIT_FOUND) #获取哈希 execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD OUTPUT_VARIABLE GIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) #获取当前分支名 execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) #获取最近的tag execute_process( COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0 OUTPUT_VARIABLE GIT_TAG OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) if(NOT GIT_TAG) set(GIT_TAG "none") endif() #获取最近的一次提交时间 execute_process( COMMAND ${GIT_EXECUTABLE} log -1 --format=%cd --date=format:%Y-%m-%d,%H:%M:%S OUTPUT_VARIABLE GIT_COMMIT_TIME OUTPUT_STRIP_TRAILING_WHITESPACE ) else() set(GIT_HASH "unknown") set(GIT_BRANCH "unknown") set(GIT_TAG "unknown") set(GIT_COMMIT_TIME "unknown") endif() ########构建时间######### string(TIMESTAMP BUILD_TIME "%Y-%m-%d %H:%M:%S") configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/versionInfo/version.cpp.in ${CMAKE_CURRENT_SOURCE_DIR}/versionInfo/version.cpp @ONLY ) # 定义源文件 set(SOURCES main.cpp mainwindow.cpp Pages/ToolBox.cpp Pages/toolpage.cpp UIHelper/ConfigHelp.cpp UIHelper/frmmessagebox.cpp UIHelper/frameless_helper.cpp UiModules/quiwidget.cpp UiModules/appinit.cpp versionInfo/version.cpp versionInfo/versionWgt.cpp ) # 定义头文件 set(HEADERS mainwindow.h Pages/ToolBox.h Pages/ToolPage.h UIHelper/commonhelper.h UIHelper/ConfigHelp.h UIHelper/frmmessagebox.h UIHelper/frameless_helper.h UiModules/quiwidget.h UiModules/head.h UiModules/appinit.h versionInfo/version.h versionInfo/versionWgt.h ) # 定义UI文件 set(FORMS mainwindow.ui Pages/ToolBox.ui Pages/ToolPage.ui UIHelper/frmmessagebox.ui versionInfo/versionWgt.ui ) # 添加库 add_executable(Toolkits ${SOURCES} ${HEADERS} ${FORMS} qss.qrc image.qrc mainWgt.qrc ) add_dependencies(Toolkits Toolkit_CommunicationInterface) target_link_directories(Toolkits PRIVATE ${CMAKE_BINARY_DIR}/lib ${CMAKE_SOURCE_DIR}/Common/MQTT/lib ) target_link_libraries(Toolkits PRIVATE Toolkit_CommunicationInterface.lib mosquitto.lib mosquittopp.lib CommonLib.lib ) target_include_directories(Toolkits PUBLIC ${CMAKE_SOURCE_DIR}/Toolkit_Plugins/Toolkit_CommunicationInterface ) clearAutoFile()