if(EXISTS path-to-file-or-directory) # 两个完整路径下的文件比较时间戳 if(file1 IS_NEWER_THAN file2) # 完整路径是否是一个目录 if(IS_DIRECTORY path-to-directory) # 完整路径是不是绝对路径if(IS_ABSOLUTE path) # 对于Windows,要求路径以盘符开始 # 对于Linux,要求路径以~开始 # 空路径视作false...
if(file1 IS_NEWER_THAN file2) 1. 如果file1比file2版本更新、时间戳完全相同或两个文件之一不存在,则为True。 仅针对完整路径定义行为。 是否为目录 if(IS_DIRECTORY path-to-directory) 1. 如果给定名称是目录,则为True。仅针对完整路径定义行为。 是否为符号链接 if(IS_SYMLINK file-name) 1. 如果给定...
if (IS_DIRECTORY ${root_dir}/${sub}) include_sub_directories_recursively(${root_dir}/${sub}) # 对子目录递归调用,包含 endif() endforeach() endfunction() 使用如下: # 递归包含工程文件夹下的头文件,这里直接把CMakelist.txt所在文件夹下的文件夹都包含 include_sub_directories_recursively(${PROJ...
IF语句在CMake的历史上出现的相当早,它拥有一些需要特殊介绍的便捷特性。IF表达式只有在其中有一个单一的保留值的时候,才会精简操作(即不做变量展开——译注);这些保留值包括:如果是大小写无关的 ON,1, YES,TRUE,Y,它返回真;如果是OFF,0,NO,FALSE,N,NOTFOUND,*-NOTFOUND,IGNORE,它返回假。这种特性非常合理,...
IF (IS_DIRECTORY dir) 当dir是目录时,为真; IF (DEFINED var) 如果变量被定义,为真; IF (var MATCHES regex) 此处var可以用var名,也可以用${var}; IF (string MATCHES regex) 当给定变量或字符串能匹配正则表达式regex时,为真; 例: IF ("hello" MATCHES "ell") MESSAGE(...
if(NOT CASSDK_DIR) set( CASSDK_DIR ${CMAKE_SOURCE_DIR}/../cassdk) endif() if( IS_DIRECTORY ${CASSDK_DIR} ) # 第二个cassdk.out参数用于指定外部文件夹在输出文件夹中的位置 add_subdirectory( ${CASSDK_DIR}/cassdk cassdk.out) ...
if (COMMAND cmd): # 如果cmd确实是命令并可调用则为真 if (EXISTS dir): # 如果dir目录存在为真 if (EXISTS file): # 如果file文件存在为真 if (IS_DIRECTORY dir): # 如果dir为目录则为真 if (DEFINED var): # 如果变量var被定义则为真 ...
IF (IS_DIRECTORY dir) 当dir是目录时,为真; IF (DEFINED var) 如果变量被定义,为真; IF (var MATCHES regex) 此处var可以用var名,也可以用${var}; IF (string MATCHES regex) 当给定变量或字符串能匹配正则表达式regex时,为真; 例: IF ("hello" MATCHES "ell")MESSAGE("true")ENDIF ("hello" MATC...
if支持IN_LIST关键字 新增*_INCLUDE_WHAT_YOU_USE属性 COMPILE_LANGUAGE支持生成器表达式(只有某些生成器支持) CMake 3.4:Swift & CCache 这个版本增加了许多有用的工具,对 Swift 语言的支持,以及常用功能的改进。也开始支持编译器启动器,比如 CCache。
另外,仍然可以借助aux_source_directory把指定目录下的所有源文件存列表存放到变量中:cmake_minimum_...