message (STATUS "UTILITY_ROOT: ${UTILITY_ROOT}") ``` 在这个例子中,我们正在检查UTILITY_ROOT变量是否已经被定义。 此外,你也可以通过${VAR_NAME}的语法来引用变量,并且CMake会在处理脚本时解析这些引用,并用变量实际的值来替换它们。还有一种方式是使用CHECK_VARIABLE_EXISTS宏,这个宏仅适用于“C”变量。...
if (string MATCHES regex):给定的字符串能够匹配正则表达式regex时为真。 1.20.2 数字比较 if (variable LESS number):如果variable小于number时为真; if (string LESS number):如果string小于number时为真; if (variable GREATER number):如果variable大于number时为真; if (string GREATER number):如果string大于...
CMake 手册中对命令 AUX_SOURCE_DIRECTORY 的描述如下:aux_source_directory( <variable>)该命令会把参数 中所有的源文件名称赋值给参数<variable>。 第四行使用命令 ADD_EXECUTABLE 指示变量 DIR_SRCS 中的源文件需要编译 成一个名称为 main 的可执行文件。 CMake的编译基本就两个步骤: cmake 指向CMakeLists.t...
脚本首先检查windeployqt.exe是否存在: if(EXISTS"${CMAKE_PREFIX_PATH}/bin/windeployqt.exe")message("windeployqt exists") 如果存在,使用windeployqt.exe自动处理依赖项: add_custom_command(TARGET${PROJECT_NAME}POST_BUILDCOMMAND"${CMAKE_PREFIX_PATH}/bin/windeployqt.exe""--compiler-runtime""${CMAKE...
aux_source_directory( <variable>) 因此,可以修改 CMakeLists.txt 如下: 1# CMake 最低版本号要求23cmake_minimum_required (VERSION2.8)45# 项目信息67project (Demo2)89# 查找当前目录下的所有源文件1011# 并将名称保存到 DIR_SRCS 变量1213aux_source_directory(. DIR_SRCS)1415# 指定生成目标1617add_...
首先在顶层 CMakeLists 文件中添加 CheckFunctionExists.cmake 宏,并调用 check_function_exists 命令测试链接器是否能够在链接阶段找到 pow 函数。 # 检查系统是否支持 pow 函数 include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake) check_function_exists (pow HAVE_POW) 将上面这段代码放在 configure_fil...
cmake_host_system_information(RESULT <VARIABLE> QUERY <KEY>…) 我们需要提供一个目标变量和我们要关注的键列表。如果我们只提供一个键,变量将包含一个值;否则,它将是一组值。我们可以询问许多关于环境和操作系统的详细信息: 如果需要,我们甚至可以查询处理器特定信息: 平台是否有 32 位或 64 位架构? 在64 ...
IF(string EQUAL number) # 按照字母序的排列进行比较 IF(variable STRLESS string) IF(string STRLESS string) IF(variable STRGREATER string) IF(string STRGREATER string) IF(variable STREQUAL string) IF(string STREQUAL string) IF(DEFINED variable)#如果变量被定义,为真。
find_package(Git QUIET) if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} RESULT_VARIABLE GIT_SUBMOD_RESULT) if(NOT GIT_SUBMOD_RESULT EQUAL "0") message(FATAL...
==if (string EQUAL number)==:如果string等于number时为真。 1.20.3 字母表顺序比较 ==if (variable STRLESS string)== ==if (string STRLESS string)== ==if (variable STRGREATER string)== ==if (string STRGREATER string)== ==if (variable STREQUAL string)== ...