/CMake 3.19


Source files can have properties that affect how they are built.

set_source_files_properties(<files> ...
                            [DIRECTORY <dirs> ...]
                            [TARGET_DIRECTORY <targets> ...]
                            PROPERTIES <prop1> <value1>
                            [<prop2> <value2>] ...)

Sets properties associated with source files using a key/value paired list.

By default, source file properties are only visible to targets added in the same directory (CMakeLists.txt). Visibility can be set in other directory scopes using one or both of the following options:

DIRECTORY <dirs>...

The source file properties will be set in each of the <dirs> directories’ scopes. CMake must already know about each of these source directories, either by having added them through a call to add_subdirectory() or it being the top level source directory. Relative paths are treated as relative to the current source directory.


The source file properties will be set in each of the directory scopes where any of the specified <targets> were created (the <targets> must therefore already exist).

Use get_source_file_property() to get property values. See also the set_property(SOURCE) command.

See Properties on Source Files for the list of properties known to CMake.

© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.