ADDITIONAL_CLEAN_FILES
BINARY_DIR
版本3.7中的新功能。
此只读目录属性报告二进制目录的绝对路径,该目录对应于读取它的源。
BUILDSYSTEM_TARGETS
3.7新版功能。
这个只读目录属性包含一个以分号分隔的构建系统目标列表,这些目标是通过调用add_library()、add_executable()和add_custom_target()命令添加到目录中的。该列表不包括任何导入目标或别名目标,但包括接口库。列表中的每个条目都是目标的逻辑名称,适合传递给get_property()命令target选项。
请参见IMPORTED_TARGETS目录属性。
CACHE_VARIABLES
当前目录中可用的缓存变量列表。
这个只读属性指定当前定义的CMake缓存变量列表。它用于调试目的。
CLEAN_NO_CUSTOM
设置为true将告诉Makefile Generators在make clean操作期间不删除此目录的自定义命令的输出。这在其他生成器上被忽略,因为它不可能实现。
CMAKE_CONFIGURE_DEPENDS
告诉CMake关于配置过程的其他输入文件。如果任何命名文件被修改,构建系统将重新运行CMake来重新配置文件并再次生成构建系统。
以分号分隔的路径列表指定文件。相对路径被解释为相对于当前源目录。
COMPILE_DEFINITIONS
用于编译目录源文件的预处理器定义。
此属性指定到目前为止给add_compile_definitions()(或add_definitions())命令的选项列表。
COMPILE_DEFINITIONS属性可以用VAR或VAR=value语法设置为一个分号分隔的预处理器定义列表。不支持函数样式定义。CMake会自动正确转义本地构建系统的值(注意,CMake语言语法可能需要转义来指定一些值)。
在每个目录中,这个属性将由目录父目录中的值初始化。
CMake会自动删除一些本地构建工具不支持的定义。
免责声明:大多数本机构建工具对转义某些值的支持很差。CMake在很多情况下都有变通方法,但是有些值可能无法正确传递。如果某个值似乎没有被正确转义,不要试图通过向该值添加转义序列来解决这个问题。在改进了escape支持的CMake的未来版本中,您的解决方案可能会失效。相反,请考虑在(已配置的)头文件中定义宏。然后报告限制。
慎用。
COMPILE_OPTIONS
要传递给编译器的选项列表。
此属性保存到目前为止给add_compile_options()命令的一个以分号分隔的选项列表。
创建目标时,此属性用于初始化COMPILE_OPTIONS目标属性,生成器使用该属性为编译器设置选项。
COMPILE_OPTIONS的内容可以使用"generator expressions",语法为$<…>。关于可用的表达式,请参阅cmake-generator-expressions(7)手册。参见cmake-buildsystem(7)手册来定义更多的buildsystem属性。
DEFINITIONS
仅用于CMake 2.4兼容性。使用COMPILE_DEFINITIONS代替。
这个只读属性指定到目前为止给add_definitions()命令的标志列表。它用于调试目的。请使用COMPILE_DEFINITIONS目录属性。
如果策略CMP0059被设置为NEW,则这个内置的只读属性不存在。
EXCLUDE_FROM_ALL
在子目录上将此目录属性设置为true值,以从其祖先的“all”目标中排除其目标。如果排除,在父目录中运行例如make,默认情况下不会生成目标子目录。这并不影响子目录本身的“all”目标。例如,在子目录中运行make仍然会构建它的目标。
如果在目标上设置了EXCLUDE_FROM_ALL目标属性,那么它的值将决定该目标是否包含在此目录及其祖先的“all”目标中。
IMPLICIT_DEPENDS_INCLUDE_TRANSFORM
为目录中的依赖项指定#include行转换。
该属性指定在C和c++源文件隐式依赖项扫描期间转换类宏#include行的规则。规则列表必须用分号分隔,每个条目的形式为A_MACRO(%)=value- %(%必须是文字)。在依赖项扫描时,#include行上出现的A_MACRO(…)将被宏参数替换为%所给出的值所取代。例如,条目
MYDIR(%)=<mydir/%>
将转换行
#include MYDIR(myheader.h)
为:
#include <mydir/myheader.h>
允许遵循依赖关系。
此属性适用于目录中所有目标中的源。属性值在每个目录中由其在目录父目录中的值初始化。
IMPORTED_TARGETS
3.21新版功能。
这个只读目录属性包含一个以分号分隔的Imported Targets列表,这些目标是通过调用add_library()和add_executable()命令添加到目录中的。列表中的每个条目都是目标的逻辑名称,适合在同一目录中调用时传递给get_property()命令target选项。
请参见BUILDSYSTEM_TARGETS目录属性。
INCLUDE_DIRECTORIES
预处理列表包括文件搜索目录。
这个属性指定到目前为止include_directories()命令给出的目录列表。
此属性用于填充INCLUDE_DIRECTORIES目标属性,生成器使用该属性为编译器设置包含目录。
除了接受来自该命令的值之外,还可以使用set_property()命令在任何目录上直接设置值,并且可以使用set_directory_properties()命令在当前目录上设置值。如果父目录有初始值,则从父目录获取初始值。INCLUDE_DIRECTORIES目标属性的初始值来自此属性的值。目录和目标属性值都是通过调用include_directories()命令来调整的。但是,调用set_property()或set_directory_properties()将更新目录属性值,而不更新目标属性值。因此,必须在调用add_executable()或add_library()之前对它们要影响的目标进行直接的属性更新。
生成器使用目标属性值来设置编译器的包含路径。
INCLUDE_DIRECTORIES的内容可以使用“生成器表达式”,语法为$<…>。关于可用的表达式,请参阅cmake-generator-expressions(7)手册。参见cmake-buildsystem(7)手册来定义更多的buildsystem属性。
INCLUDE_REGULAR_EXPRESSION
包括文件扫描正则表达式。
此属性指定依赖项扫描期间使用的正则表达式,以匹配应该跟随的包含文件。请参阅include_regular_expression()命令以获得高级接口来设置此属性。
INTERPROCEDURAL_OPTIMIZATION
为目录中的目标启用过程间优化。
如果设置为true,则在已知编译器支持时启用过程间优化。
INTERPROCEDURAL_OPTIMIZATION_< CONFIG >
目录的每个配置过程间优化。
这是INTERPROCEDURAL_OPTIMIZATION的每个配置版本。如果设置,此属性将覆盖已命名配置的通用属性。
LABELS
3.10新版功能。
指定一个与目录及其所有子目录相关联的文本标签列表。这相当于在当前目录和子目录中的所有目标和测试上设置LABELS目标属性和LABELS测试属性。注意:发射器必须能够向目标传播标签。
CMAKE_DIRECTORY_LABELS变量可以用来初始化这个属性。
该列表在仪表板提交中报告。
LINK_DIRECTORIES
链接器搜索目录的列表。
此属性包含一个分号分隔的目录列表,通常使用link_directories()命令填充。它从父目录获取初始值(如果有的话)。
directory属性用于在创建目标时初始化LINK_DIRECTORIES目标属性。生成器使用该目标属性设置链接器的库搜索目录。
LINK_DIRECTORIES的内容可以使用“生成器表达式”,语法为$<…>。关于可用的表达式,请参阅cmake-generator-expressions(7)手册。参见cmake-buildsystem(7)手册来定义更多的buildsystem属性。
LINK_OPTIONS
3.13新版功能。
用于共享库、模块和可执行目标的链接步骤以及设备链接步骤的选项列表。
此属性保存到目前为止给add_link_options()命令的以分号分隔的选项列表。
创建目标时,此属性用于初始化LINK_OPTIONS目标属性,生成器使用该属性为编译器设置选项。
LINK_OPTIONS的内容可以使用“生成器表达式”,语法为$<…>。关于可用的表达式,请参阅cmake-generator-expressions(7)手册。参见cmake-buildsystem(7)手册来定义更多的buildsystem属性。
LISTFILE_STACK
正在处理的列表文件的当前堆栈。
这个属性在尝试调试CMake脚本中的错误时非常有用。它按顺序返回当前正在处理的列表文件的列表。因此,如果一个列表文件执行了一个include()命令,那么它就有效地将被包含的列表文件推到堆栈上。
MACROS
当前目录中可用的宏命令列表。
这个只读属性指定当前定义的CMake宏列表。它用于调试目的。请参见macro()命令。
PARENT_DIRECTORY
添加当前子目录的源目录。
此只读属性指定将当前源目录添加为构建子目录的源目录。在顶级目录中,值是空字符串。
RULE_LAUNCH_COMPILE
为编译规则指定启动程序。
有关详细信息,请参见同名的全局属性。这将覆盖目录的全局属性。
RULE_LAUNCH_CUSTOM
为自定义规则指定启动程序。
有关详细信息,请参见同名的全局属性。这将覆盖目录的全局属性。
RULE_LAUNCH_LINK
指定链接规则的启动程序。
有关详细信息,请参见同名的全局属性。这将覆盖目录的全局属性。
SOURCE_DIR
版本3.7中的新功能。
此只读目录属性报告读取它的源目录的绝对路径。
SUBDIRECTORIES
3.7新版功能。
这个只读目录属性包含一个由add_subdirectory()或subdirs()命令迄今为止处理过的子目录的分号分隔列表。每个条目都是到源目录(包含CMakeLists.txt文件)的绝对路径。这适合传递给get_property()命令DIRECTORY选项。
注意,subdirs()命令在完全处理调用目录之后才处理它的参数。因此,在当前目录中查找此属性将看不到它们。
TESTS
3.12新版功能。
测试列表。
此只读属性保存由add_test()命令在当前目录中迄今为止定义的测试的分号分隔列表。
TEST_INCLUDE_FILES
3.10新版功能。
ctest运行时将包含的cmake文件列表。
如果您指定TEST_INCLUDE_FILES,那么当ctest在该目录上运行时,将包含并处理这些文件。
VARIABLES
在当前目录中定义的变量列表。
这个只读属性指定当前定义的CMake变量列表。它用于调试目的。
VS_STARTUP_PROJECT
3.6新版功能。
指定Visual Studio解决方案中的默认启动项目。
Visual Studio Generators为每个目录创建一个.sln文件,其中CMakeLists.txt文件调用project()命令。将此属性设置为与project()命令调用相同的目录(例如,在顶级的CMakeLists.txt文件中),以指定相应解决方案文件的默认启动项目。
该属性必须设置为现有目标的名称。这将导致在生成的解决方案文件中首先列出该项目,如果该解决方案以前从未打开过,则Visual Studio将其作为启动项目。
如果未指定此属性,则ALL_BUILD项目将为默认值。
VS_GLOBAL_SECTION_POST_< section >
在Visual Studio中指定一个postSolution全局节。
像这样设置一个属性会在解决方案文件中生成以下表单项:
GlobalSection(<section>) = postSolution
<contents based on property value>
EndGlobalSection
该属性必须设置为以分号分隔的键=值对列表。每个这样的对都将被转换为解决方案全局部分中的一个条目。键和值周围的空白被忽略。不包含等号的列表元素将被跳过。
此属性仅适用于Visual Studio 9及以上版本;它在其他生成器上被忽略。该属性仅适用于CMakeLists.txt包含project()命令的目录。
注意,CMake默认生成extenbilityglobals和extenbilityaddins的postSolution部分。如果您设置了相应的属性,它将覆盖默认部分。例如,设置VS_GLOBAL_SECTION_POST_ExtensibilityGlobals将覆盖ExtensibilityGlobals节的默认内容,同时保持ExtensibilityAddIns的默认值。然而,如果没有明确指定,CMake总是会在extenbilityglobals部分添加一个SolutionGuid。