summaryrefslogtreecommitdiffstats
path: root/Source/cmComputeLinkInformation.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-03-01 13:46:02 (GMT)
committerKitware Robot <kwrobot@kitware.com>2022-03-01 13:46:09 (GMT)
commitd687047f99b7fd16c8d6f9b95c44b865426c3ca4 (patch)
tree521889b60859f608aaff623fba23ab0b761c6773 /Source/cmComputeLinkInformation.h
parent1a46bc0d2b8e26eb96cb05d1fa4c97781ab503c1 (diff)
parent0a81ea1f12cbaf60ec60b8e4a27c5ea476a655de (diff)
downloadCMake-d687047f99b7fd16c8d6f9b95c44b865426c3ca4.zip
CMake-d687047f99b7fd16c8d6f9b95c44b865426c3ca4.tar.gz
CMake-d687047f99b7fd16c8d6f9b95c44b865426c3ca4.tar.bz2
Merge topic 'genex-LINK_GROUP'
0a81ea1f12 Genex-LINK_GROUP: Add possibility to group libraries at link step a9928eb4a5 SunPro C: ensure LINKER: prefix is usable for all versions 01ff75b2ff cmComputeDepends::LinkEntry: introduce enum to specify item type Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7005
Diffstat (limited to 'Source/cmComputeLinkInformation.h')
-rw-r--r--Source/cmComputeLinkInformation.h37
1 files changed, 31 insertions, 6 deletions
diff --git a/Source/cmComputeLinkInformation.h b/Source/cmComputeLinkInformation.h
index 4b7fb1a..a4ada1f 100644
--- a/Source/cmComputeLinkInformation.h
+++ b/Source/cmComputeLinkInformation.h
@@ -255,12 +255,6 @@ private:
{
public:
FeatureDescriptor() = default;
- FeatureDescriptor(std::string name, std::string itemFormat);
- FeatureDescriptor(std::string name, std::string itemPathFormat,
- std::string itemNameFormat);
- FeatureDescriptor(std::string name, std::string prefix,
- std::string itemPathFormat, std::string itemNameFormat,
- std::string suffix);
const std::string Name;
const bool Supported = false;
@@ -273,13 +267,44 @@ private:
std::string const& defaultValue,
ItemIsPath isPath) const;
+ protected:
+ FeatureDescriptor(std::string name, std::string itemFormat);
+ FeatureDescriptor(std::string name, std::string itemPathFormat,
+ std::string itemNameFormat);
+ FeatureDescriptor(std::string name, std::string prefix,
+ std::string itemPathFormat, std::string itemNameFormat,
+ std::string suffix);
+
+ FeatureDescriptor(std::string name, std::string prefix, std::string suffix,
+ bool isGroup);
+
private:
std::string ItemPathFormat;
std::string ItemNameFormat;
};
+
+ class LibraryFeatureDescriptor : public FeatureDescriptor
+ {
+ public:
+ LibraryFeatureDescriptor(std::string name, std::string itemFormat);
+ LibraryFeatureDescriptor(std::string name, std::string itemPathFormat,
+ std::string itemNameFormat);
+ LibraryFeatureDescriptor(std::string name, std::string prefix,
+ std::string itemPathFormat,
+ std::string itemNameFormat, std::string suffix);
+ };
std::map<std::string, FeatureDescriptor> LibraryFeatureDescriptors;
bool AddLibraryFeature(std::string const& feature);
FeatureDescriptor const& GetLibraryFeature(std::string const& feature) const;
FeatureDescriptor const* FindLibraryFeature(
std::string const& feature) const;
+
+ class GroupFeatureDescriptor : public FeatureDescriptor
+ {
+ public:
+ GroupFeatureDescriptor(std::string name, std::string prefix,
+ std::string suffix);
+ };
+ std::map<std::string, FeatureDescriptor> GroupFeatureDescriptors;
+ FeatureDescriptor const& GetGroupFeature(std::string const& feature);
};