if(POLICY policy-id) 如果给出的名字是一个已有的策略(格式是CMP<NNNN>),表达式为真。 if(TARGET 目标名) 如果给出的名字是一个已有的构建目标或导入目标的话,表达式为真。 if(EXISTS 文件名) if(EXISTS 路径名) 如果给出的文件名或路径名存在,表达式为真。该命令只对完整路径有效。 if(file1 IS_NEWER_...
if(EXISTS "${CMAKE_SOURCE_DIR}/somefile.txt") message(STATUS "The file somefile.txt exists.") endif() IS_DIRECTORY: IS_DIRECTORY 用于检查给定的路径是否是一个目录。如果路径是一个存在的目录,返回布尔值。 if(IS_DIRECTORY "${CMAKE_SOURCE_DIR}/somedir") message(STATUS "The path somedir i...
if(TARGET <target-name>) 1. 如果给定名称是通过调用add_executable()、add_library()或add_custom_target()创建的现有逻辑目标名称,则为True。 测试 if(TEST test-name) 1. CMake3.3 新增,如果给定名称是通过调用add_test()创建的现有测试名称,则为True。 变量 if(DEFINED <name>|CACHE{<name>}|ENV{<n...
$<TARGET_EXISTS:target>:判断目标是否存在 $<CONFIG:cfgs>:判断编译类型配置是否包含在cfgs列表(比如"release,debug")中;不区分大小写 $<PLATFORM_ID:platform_ids>:判断CMake定义的平台ID是否包含在platform_ids列表中 $<COMPILE_LANGUAGE:languages>:判断编译语言是否包含在languages列表中 2 字符串值生成器表达式...
字母表顺序比较: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(MSVC)set(LINK_LIBS common)else()set(boost_thread boost_log.a boost_system.a)end iftarget_link_...
IF (not exp), 与上面相反; IF (var1 AND var2) IF (var1 OR var2) IF (COMMAND cmd) 如果cmd确实是命令并可调用,为真; IF (EXISTS dir) 如果目录存在,为真; IF (EXISTS file) 如果文件存在,为真; IF (file1 IS_NEWER_THAN file2),当file1比file2新,或file1/file2中有一个不存在时为真...
二、if语句中条件(condition)的优先级 if语句中条件(condition)的优先级从高到低如下: 1. 圆括号():括号的优先级最高 2. 一元测试命令: EXIST:判断文件或者目录是否存在,存在时为真。需要提供全路径;如果文件或者目录是符号链接(例如软连接),则只有当链接的目标存在时返回真。格式为:if(EXISTS path-to...
if(EXISTS${CMAKE_CURRENT_BINARY_DIR}/config.cmake)include(${CMAKE_CURRENT_BINARY_DIR}/config.cmake)else()if(EXISTS${CMAKE_CURRENT_SOURCE_DIR}/config.cmake)include(${CMAKE_CURRENT_SOURCE_DIR}/config.cmake)endif()endif() 参考链接
Trueifthe given name is an existing policy (of the form CMP<NNNN>).if(TARGET target-name) Trueifthe given name is an existing logical target name such as those created by the add_executable(), add_library(), or add_custom_target() commands.if(EXISTS path-to-file-or-directory) ...
if(EXISTSpath-to-file-or-directory) 如果文件或者目录存在返回True,否则返回False。 判断是不是目录[IS_DIRECTORY] if(IS_DIRECTORYpath) 此处目录的 path 必须是绝对路径[ 如/home/user/] 如果目录存在返回True,目录不存在返回False。 判断是不是软连接[IS_SYMLINK] ...