2025-05-19 09:54:33 +08:00
|
|
|
|
cmake_minimum_required(VERSION 3.23)
|
|
|
|
|
|
|
2025-08-20 19:00:22 +08:00
|
|
|
|
###############################################################################
|
|
|
|
|
|
### define funcitons ###
|
|
|
|
|
|
|
|
|
|
|
|
## function: visual studio source group
|
|
|
|
|
|
macro(ADD_SOURCE_GROUP srcpath)
|
|
|
|
|
|
file(GLOB src_h ${PROJECT_SOURCE_DIR}/${srcpath}/*.h)
|
|
|
|
|
|
file(GLOB src_cpp ${PROJECT_SOURCE_DIR}/${srcpath}/*.cpp)
|
|
|
|
|
|
set(src_tmp ${src_h} ${src_cpp})
|
|
|
|
|
|
if (${srcpath} STREQUAL "./" OR ${srcpath} STREQUAL "." OR ${srcpath} STREQUAL "")
|
|
|
|
|
|
set(groupName src)
|
|
|
|
|
|
else()
|
|
|
|
|
|
set(groupName src/${srcpath})
|
|
|
|
|
|
endif()
|
|
|
|
|
|
source_group(${groupName} FILES ${src_tmp})
|
|
|
|
|
|
list(APPEND SOURCE_FILE ${src_tmp})
|
|
|
|
|
|
endmacro(ADD_SOURCE_GROUP)
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
2025-09-05 19:44:26 +08:00
|
|
|
|
set(PROJECT_NAME ESS)
|
2025-05-19 09:54:33 +08:00
|
|
|
|
project(${PROJECT_NAME})
|
|
|
|
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
|
|
|
|
|
|
|
|
# 【注意】visual studio编译时的字符编码问题,配置属性 --> C/C++ --> 命令行 --> 其它选项: /utf-8 或添加如下指令
|
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")
|
|
|
|
|
|
|
2025-07-18 09:08:09 +08:00
|
|
|
|
# 设置 Release 模式启用调试信息
|
|
|
|
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
|
|
|
|
|
|
# 设置 Release 模式的优化级别和其他选项
|
|
|
|
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Od /Ob2")
|
|
|
|
|
|
# 设置 Release 模式下链接器的调试信息
|
|
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG")
|
|
|
|
|
|
|
2025-08-20 19:00:22 +08:00
|
|
|
|
add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
|
|
|
|
|
2025-05-19 09:54:33 +08:00
|
|
|
|
# Qt_PATH 为 Qt 的安装地址
|
2025-09-10 20:10:51 +08:00
|
|
|
|
#set(QT_PATH "D:/Programs/Qt5/5.15.2/msvc2019_64")
|
|
|
|
|
|
set(QT_PATH "D:/Programs/Qt6/6.7.3/msvc2019_64")
|
2025-05-19 09:54:33 +08:00
|
|
|
|
set(CMAKE_PREFIX_PATH ${QT_PATH}/lib/cmake)
|
|
|
|
|
|
|
|
|
|
|
|
# 开启自动编译
|
|
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
|
|
|
set(CMAKE_AUTORCC ON)
|
2025-09-10 20:10:51 +08:00
|
|
|
|
find_package(Qt6 COMPONENTS
|
|
|
|
|
|
Core
|
|
|
|
|
|
Gui
|
2025-07-18 09:08:09 +08:00
|
|
|
|
Widgets
|
|
|
|
|
|
Network
|
|
|
|
|
|
Charts
|
|
|
|
|
|
WebEngineWidgets
|
|
|
|
|
|
REQUIRED)
|
2025-05-19 09:54:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set(ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
|
|
set(THIRDPARTY_PATH ${ROOT_PATH}/../thirdparty)
|
2025-09-10 20:10:51 +08:00
|
|
|
|
#set(PVLIBS_PATH ${ROOT_PATH}/../libs/pvb)
|
2025-05-19 09:54:33 +08:00
|
|
|
|
|
|
|
|
|
|
include_directories(
|
|
|
|
|
|
${ROOT_PATH}
|
|
|
|
|
|
${ROOT_PATH}/app
|
|
|
|
|
|
${ROOT_PATH}/common
|
|
|
|
|
|
${ROOT_PATH}/widgets
|
|
|
|
|
|
${THIRDPARTY_PATH}
|
|
|
|
|
|
${THIRDPARTY_PATH}/mysql/include
|
2025-07-18 09:08:09 +08:00
|
|
|
|
${THIRDPARTY_PATH}/nlohmann_json-3.11.2
|
2025-08-31 14:38:53 +08:00
|
|
|
|
${THIRDPARTY_PATH}/cpp-httplib-0.25.0
|
2025-09-01 20:08:40 +08:00
|
|
|
|
${THIRDPARTY_PATH}/paho_mqtt/include
|
|
|
|
|
|
${THIRDPARTY_PATH}/spdlog-1.13.0/include
|
2025-09-20 16:41:08 +08:00
|
|
|
|
${THIRDPARTY_PATH}/OpenXLSX/include
|
|
|
|
|
|
${THIRDPARTY_PATH}/GmSSL-3.1.1/include
|
2025-09-22 20:01:41 +08:00
|
|
|
|
${THIRDPARTY_PATH}/OpenSSL-3.5.3/include
|
2025-09-10 20:10:51 +08:00
|
|
|
|
#${PVLIBS_PATH}/include/pvserver
|
|
|
|
|
|
#${PVLIBS_PATH}/include/rllib
|
2025-05-19 09:54:33 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# 设置编译源文件
|
2025-08-20 19:00:22 +08:00
|
|
|
|
ADD_SOURCE_GROUP(.)
|
2025-05-19 09:54:33 +08:00
|
|
|
|
ADD_SOURCE_GROUP(common)
|
|
|
|
|
|
ADD_SOURCE_GROUP(app)
|
|
|
|
|
|
ADD_SOURCE_GROUP(database)
|
|
|
|
|
|
ADD_SOURCE_GROUP(protocol)
|
2025-08-20 19:00:22 +08:00
|
|
|
|
#ADD_SOURCE_GROUP(widgets)
|
|
|
|
|
|
#ADD_SOURCE_GROUP(widgets/pages)
|
2025-09-10 20:10:51 +08:00
|
|
|
|
#ADD_SOURCE_GROUP(pv)
|
|
|
|
|
|
#ADD_SOURCE_GROUP(pv/pages)
|
2025-09-09 19:26:05 +08:00
|
|
|
|
ADD_SOURCE_GROUP(qt)
|
2025-05-19 09:54:33 +08:00
|
|
|
|
|
|
|
|
|
|
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)
|
2025-09-09 19:26:05 +08:00
|
|
|
|
add_executable(${PROJECT_NAME} ${SOURCE_FILE} "resource.rc")
|
|
|
|
|
|
|
2025-08-19 17:16:54 +08:00
|
|
|
|
#set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
|
2025-05-19 09:54:33 +08:00
|
|
|
|
|
2025-07-18 09:08:09 +08:00
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
2025-09-10 20:10:51 +08:00
|
|
|
|
Qt6::Core
|
|
|
|
|
|
Qt6::Gui
|
|
|
|
|
|
Qt6::Widgets
|
|
|
|
|
|
Qt6::Network
|
|
|
|
|
|
Qt6::Charts
|
|
|
|
|
|
Qt6::WebEngineWidgets
|
2025-07-18 09:08:09 +08:00
|
|
|
|
)
|
2025-09-09 19:26:05 +08:00
|
|
|
|
|
2025-05-19 09:54:33 +08:00
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
|
|
|
|
ws2_32 iphlpapi
|
2025-08-19 17:16:54 +08:00
|
|
|
|
${THIRDPARTY_PATH}/mysql/lib/x64/libmysql.lib
|
2025-09-01 20:08:40 +08:00
|
|
|
|
${THIRDPARTY_PATH}/paho_mqtt/lib/paho-mqtt3a.lib
|
|
|
|
|
|
${THIRDPARTY_PATH}/paho_mqtt/lib/paho-mqtt3c.lib
|
2025-09-20 16:41:08 +08:00
|
|
|
|
${THIRDPARTY_PATH}/OpenXLSX/lib/OpenXLSX.lib
|
|
|
|
|
|
${THIRDPARTY_PATH}/GmSSL-3.1.1/lib/gmssl.lib
|
2025-09-22 20:01:41 +08:00
|
|
|
|
${THIRDPARTY_PATH}/OpenSSL-3.5.3/lib/VC/x64/MD/libcrypto.lib
|
2025-09-10 20:10:51 +08:00
|
|
|
|
#${PVLIBS_PATH}/x64/serverlib.lib
|
|
|
|
|
|
#${PVLIBS_PATH}/x64/rllib.lib
|
2025-09-01 20:08:40 +08:00
|
|
|
|
)
|