Ninja: Allow compilation before generation of dependencies' private sources

This requires knowing when a generated header is public, which we can
model using file sets.  Add policy CMP0154 to treat generated sources
as private by default in targets with file sets.  Generated public
headers can be specified in public file sets.

Fixes: #24959
Issue: #15555
This commit is contained in:
Martin Duffy
2023-09-14 13:13:38 -04:00
committed by Brad King
parent 123cdf9816
commit ec2ba29ac5
33 changed files with 320 additions and 15 deletions
+2
View File
@@ -321,6 +321,8 @@ public:
static std::string GetFileSetsPropertyName(const std::string& type);
static std::string GetInterfaceFileSetsPropertyName(const std::string& type);
bool HasFileSets() const;
private:
template <typename ValueType>
void StoreProperty(const std::string& prop, ValueType value);