#cmake最低版本 cmake_minimum_required(VERSION 3.19) SET(VCPKG_ROOT ${PROJECT_SOURCE_DIR}/vcpkg) SET(VCPKG_TARGET_TRIPLET "x86-mingw-dynamic") SET(CMAKE_C_COMPILER "x86_64-w64-mingw32-gcc.exe") SET(CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++.exe") #项目版本 project(aicam VERSION 1.0.0 LANGUAGES CXX) #设置C++版本 SET(CMAKE_CXX_STANDARD 17) #包含所有.h文件 SET(CMAKE_INCLUDE_CURRENT_DIR ON) #release编译下依然输出符号和行号 ADD_DEFINITIONS(-DQT_MESSAGELOGCONTEXT) #编译类型 debug和release输出路径 SET(CMAKE_VERBOSE_MAKEFILE ON) SET(CMAKE_CXX_FLAGS"-Wall -Wextra") SET(CMAKE_CXX_FLAGS_RELEASE"-O3 -s") SET(CMAKE_BUILD_TYPE "Release") #增加QT库 #设置moc ui rcc编译开关 SET(CMAKE_AUTOMOC ON) SET(CMAKE_AUTOUIC ON) SET(CMAKE_AUTORCC ON) SET(QT_STATU "static") if(QT_STATU STREQUAL "dynamic") SET(Qt6_DIR "D:/Dev/Qt/6.9.1/mingw_64/lib/cmake") else() SET(Qt6_DIR "D:/Dev/Qt/6.9.1/mingw1310_static_x64/lib/cmake") endif() #输出路径 MESSAGE(STATUS "----------基础路径输出 START-------------") MESSAGE(STATUS "QT_DIR_PATH=${Qt6_DIR}") MESSAGE(STATUS "MSYS2_DIR_PATH=${MSYS_DIR}") MESSAGE(STATUS "JSON_DIR_PATH=${JSON}") MESSAGE(STATUS "CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}") MESSAGE(STATUS "----------基础路径输出 END---------------") MESSAGE(STATUS ${PROJECT_BINARY_DIR}) MESSAGE(STATUS "----------编译模式 START-------------") if(NOT CMAKE_BUILD_TYPE) MESSAGE(STATUS "[CMAKE_BUILD_TYPE]当前值[Debug]") SET(CMAKE_BUILD_TYPE "Debug") SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/build/debug) else() MESSAGE(STATUS "[CMAKE_BUILD_TYPE]当前值[Release]") SET(CMAKE_BUILD_TYPE "Release") SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/release/) endif() MESSAGE(STATUS "----------编译模式 END---------------") #增加sui的cpp FILE(GLOB src_aicam "${PROJECT_SOURCE_DIR}/src/*.cpp" "${PROJECT_SOURCE_DIR}/src/*.h") SET(PROJECT_SOURCES ${src_aicam}) QT6_ADD_RESOURCES(RCFILES aicam.qrc) find_package(OpenCASCADE CONFIG REQUIRED) #WIN32 add_executable(${PROJECT_NAME} ${PROJECT_SOURCES} ${RCFILES} aicam.rc) # 设置编译器标志 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libstdc++ -static-libgcc") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++ -static-libgcc -static") # 如果你的项目包含 C 代码,也需要设置 C 标志 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc") target_link_libraries( ${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets TKBO TKDE TKBin TKCAF -lws2_32 -lzstd -lb2 )