Files
2026-03-02 21:40:25 +08:00

130 lines
2.6 KiB
CMake

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()