84 lines
2.5 KiB
CMake
84 lines
2.5 KiB
CMake
#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
|
|
)
|
|
|
|
|
|
|