summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/target_sources/RunCMakeTest.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'file-set-crash'Brad King2022-06-301-0/+2
|\ | | | | | | | | | | | | 3fee5398bd install(EXPORT): Check for missing file sets at generate time Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7420
| * install(EXPORT): Check for missing file sets at generate timeKyle Edwards2022-06-291-0/+2
| | | | | | | | | | | | | | | | | | | | Missing file sets were originally checked at configure time in install(TARGETS ... EXPORT), but were not checked at generate time. If a file set was added after install(TARGETS ... EXPORT) was called, an abortion error was thrown. Check again at generate time to gracefully display an error message instead of crashing. Fixes: #23680
* | cmTarget: add support for C++ module fileset typesBen Boeckel2022-06-161-0/+2
|/ | | | | | | | | | | | | | | C++ modules have two variants which are of importance to CMake: - `CXX_MODULES`: interface modules (those using `export module M;`, `export module M:part;`, or `module M:internal_part;`) - `CXX_MODULE_HEADER_UNITS`: importable header units Creating C++ modules or partitions are *not* supported in any other source listing. This is because the source files must be installed (so their scope matters), but not part of usage requirements (what it means for a module source to be injected into a consumer is not clear at this moment). Due to the way `FILE_SET` works with scopes, they are a perfect fit as long as `INTERFACE` is not allowed (which it is not).
* FILE_SET: Make INTERFACE libraries with HEADER_SETS participate in buildsystemKyle Edwards2022-04-141-0/+9
| | | | | | | | If an INTERFACE library has HEADER_SETS, and its header sets contain files generated by a custom command, the library needs to participate in the buildsystem so that the files will be generated. Fixes: #23422
* cmTarget: make HEADER_SETS and INTERFACE_HEADER_SETS read-onlyBen Boeckel2022-04-111-3/+2
| | | | | | There is no reason to allow these properties to be manipulated by user code. Instead, use the stored visibility on the fileset objects to derive what these properties should contain.
* FILE_SET: Forbid adding header sets to Apple FRAMEWORK librariesKyle Edwards2022-04-071-0/+3
| | | | | | | | The feature needs a specialized implementation to place headers in the right place inside frameworks. To avoid silently doing the wrong thing, make this case an error for the 3.23 series. Issue: #23386
* target_sources(): Enforce stricter requirements for FILE_SET nameKyle Edwards2022-03-031-0/+1
| | | | Fixes: #23286
* target_sources(): Prohibit FILE_SET on custom targetsKyle Edwards2022-02-281-0/+1
| | | | Fixes: #23262
* install(): Properly ignore FILE_SETs that don't existKyle Edwards2022-02-171-0/+1
| | | | Fixes: #22960
* Tests: Add tests for target_sources(FILE_SET) and associated functionalityKyle Edwards2021-10-271-0/+57
|
* Tests/RunCMake: Merge TargetSources into target_sourcesKyle Edwards2021-10-191-1/+21
|
* Tests: add tests for empty-value keyword arguments in target_*Ben Boeckel2018-10-261-0/+3
Not all of these commands accept non-compilable (i.e., IMPORTED) targets, so those calls are currently just commented out. If they ever do start to accept them, the tests should be enabled.