Introduce SOURCE_FILE_PROPERTY generator expression that operates on properties of source files
Generator expression that works only on subset of source files could be really useful in case of generated files.
I found one use case, where I wanted to increase warnings level for target's source files, but disable them for all generated files (with
It could be easily done, if there was mechanism that understood
For my case, where generated file names are unknown in advance (Qt's
AUTOMOC magic), I'd love to be able to attach such genex both for targets, as well as for source files.
# ... somehow generate b.cpp add_library(library a.cpp b.cpp) # should propagate from target to source files target_compile_options(library PRIVATE $<$<SOURCE_FILE_PROPERTY:GENERATED>:/W0>) # disables warnings for b.cpp
For consistency, this genex could work when directly applied to source properties as well:
# but should also allow to directly manage properties of source files set_source_files_properties(a.cpp PROPERTIES COMPILE_DEFINITIONS $<$<SOURCE_FILE_PROPERTY:GENERATED>:GENERATED>) # adds -DGENERATED as compile definition
I suppose it would also allow to customize source files based on file extension (
LOCATION) or language (
LANGUAGE). I probably could find some use for
LABELS property as well.