cmake_lookup

# ----------------------------------
# Project Settings  ProjectName要防止vs工程名字冲突
# ----------------------------------

cmake_minimum_required(VERSION 3.14)
# 启用现代 CMake 策略AUTOMOC、AUTOUIC、AUTORCC的自动处理‌(CMake ≥3.10)
cmake_policy(SET CMP0071 NEW)
qt_standard_project_setup(REQUIRES 6.8)

project(MyProject VERSION 1.5.4.1 LANGUAGES CXX)

# ----------------------------------
# 项目名称、版本号会同步到内置属性,你可以特定属性获取他们,如:
# ----------------------------------

set(PROJECT_VERSION ${PROJECT_VERSION})

set(PROJECT_NAME ${PROJECT_NAME})

# ----------------------------------
# C++ Settings
#CMAKE_CXX_STANDARD_REQUIRED ` 中设置的 C++ 版本。如果设置为 `ON`,那么CMake会要求编译器必须支持`CMAKE_CXX_STANDARD`中设置的 C++ 版本,否则会配置失败。
如果设置为 `OFF` 或者未设置,那么如果编译器不支持 `CMAKE_CXX_STANDARD` 中设置的 C++ 版本,CMake 会回退到编译器支持的最新版本。
# ----------------------------------
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES
    # 避免控制台窗口干扰用户体验‌
    WIN32_EXECUTABLE ON
    # 在 macOS 平台生成 .app 格式的应用程序包,包含标准目录结构(如 Contents/Resources 和 Contents/MacOS),符合 macOS 应用分发规范‌1。
    # ‌附加效果‌:自动生成默认的 Info.plist 文件,可通过 MACOSX_BUNDLE_INFO_PLIST 属性自定义该文件路径‌1。
    MACOSX_BUNDLE ON
)

set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64")

# 强制检查 Qt 依赖
find_package(Qt6 6.5 COMPONENTS Core Gui Qml Quick QuickControls2 REQUIRED)
# 默认启用 CMAKE_AUTOMOC、CMAKE_AUTOUIC 和 CMAKE_AUTORCC,命令本身从Qt 6.3启用
qt_standard_project_setup(REQUIRES 6.5)

# ----------------------------------
# Build Options 可以更改的属性,你将在项目设置中看到他们
# ----------------------------------
option(PROJECT_INSTALL "Install Project" OFF)
option(RELEASE_DEBUGINFO "Use debug info in release mode" ON)

# ----------------------------------
# CMake Settings
# ----------------------------------
if(MSVC)

{

# 设置编译器flags

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")

# 链接器标志的变量

# 在创建可执行文件时由链接器使用的标志

  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /manifest:no")

# 在创建模块库时由链接器使用的标志
  set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /manifest:no")

# 在创建共享库(.so、.dll)时由链接器使用的标志
  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /manifest:no")

#  在创建静态库(.a、.lib)时由链接器使用的标志

set(CMAKE_STATIC_LINKER_FLAGS"${CMAKE_SHARED_LINKER_FLAGS} /manifest:no")

# 了解如何使用这些标志可以帮助您更好地控制可执行文件的链接行为。

}

更新中......



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值