代码拉取完成,页面将自动刷新
同步操作将从 BinWatson/CMake工程模版 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
cmake_minimum_required(VERSION 3.20.0)
project(TemplateDemo)
#*******************************************************
# 初始化设置环境变量
#
# @CMAKE_PREFIX_PATH: 设置 find_package 的搜索路径
# @CMAKE_MODULE_PATH: 设置 include 的搜索路径
#*******************************************************
set(ENV{CMAKE_PREFIX_PATH} ${CMAKE_CURRENT_SOURCE_DIR})
set(ENV{CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR})
#*******************************************************
# 配置编译选项
#
# @template_compiler_flags: 编译选项
# @release_compiler_flags: 配置 release 版本
# @debug_compiler_flags: 配置 debug 版本
#*******************************************************
add_library(template_compiler_flags INTERFACE)
# 设置通用的编译特性/选项
target_compile_features(template_compiler_flags INTERFACE cxx_std_17) # 取值参考 CMAKE_CXX_KNOWN_FEATURES
target_compile_features(template_compiler_flags INTERFACE c_std_99) # 取值参考 CMAKE_C_KNOWN_FEATURES
# 取值参考 https://gcc.gnu.org/onlinedocs/gcc/Invoking-GCC.html
# 也可以参考文章:https://www.cnblogs.com/blizzard8204/p/17519125.html
target_compile_options(template_compiler_flags INTERFACE -Wall -Wextra) # 设置警告选项
# 关于 Debug 和 Release 的配置可以参考:
# https://cmake.org/cmake/help/latest/guide/tutorial/Packaging%20Debug%20and%20Release.html#guide:tutorial/Packaging%20Debug%20and%20Release
if (CMAKE_BUILD_TYPE STRLESS_EQUAL "Release")
add_library(release_compiler_flags INTERFACE)
target_compile_options(release_compiler_flags INTERFACE -O2) # 开启 -O2 优化
target_link_options(template_compiler_flags INTERFACE debug_compiler_flags)
elseif ((CMAKE_BUILD_TYPE STRLESS_EQUAL "Debug"))
add_library(debug_compiler_flags INTERFACE)
target_compile_options(debug_compiler_flags INTERFACE -O0 -g) # 禁止优化,并开始调试模式
target_link_options(template_compiler_flags INTERFACE debug_compiler_flags)
endif()
#*******************************************************
# 配置交叉编译工具链
#
# @template_compiler_flags: 编译选项
# @release_compiler_flags: 配置 release 版本
# @debug_compiler_flags: 配置 debug 版本
#*******************************************************
#*******************************************************
# 包含子目录模块
#*******************************************************
add_subdirectory(third_party)
add_subdirectory(modules)
#*******************************************************
# 打印出 CMAKE_PREFIX_PATH、CMAKE_MODULE_PATH
# 中设置的包含路径
#*******************************************************
# message("find_path path:")
# foreach(item IN ITEMS $ENV{CMAKE_PREFIX_PATH})
# message("- ${item}")
# endforeach()
# message("include path:")
# foreach(item IN ITEMS $ENV{CMAKE_MODULE_PATH})
# message("- ${item}")
# endforeach()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。