summaryrefslogtreecommitdiffstats
path: root/Source/cmDyndepCollation.h
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2022-11-30 14:10:10 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2022-11-30 15:53:45 (GMT)
commit2f93a272d08e44a66249b0c22fed8ff472dda73c (patch)
tree97d000d0e5790457a9d058bb5f3352e78440839c /Source/cmDyndepCollation.h
parent3fc2de5c7439973cafc42c9c74d0821271df4825 (diff)
downloadCMake-2f93a272d08e44a66249b0c22fed8ff472dda73c.zip
CMake-2f93a272d08e44a66249b0c22fed8ff472dda73c.tar.gz
CMake-2f93a272d08e44a66249b0c22fed8ff472dda73c.tar.bz2
cmDyndepCollation: factor out parsing dyndep information
Diffstat (limited to 'Source/cmDyndepCollation.h')
-rw-r--r--Source/cmDyndepCollation.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/Source/cmDyndepCollation.h b/Source/cmDyndepCollation.h
index 088a3a0..5f78707 100644
--- a/Source/cmDyndepCollation.h
+++ b/Source/cmDyndepCollation.h
@@ -5,7 +5,14 @@
#include "cmConfigure.h" // IWYU pragma: keep
#include <functional>
+#include <map>
+#include <memory>
#include <string>
+#include <vector>
+
+#include <cm/optional>
+
+#include "cmFileSet.h"
class cmGeneratorTarget;
class cmSourceFile;
@@ -20,10 +27,52 @@ struct cmDyndepGeneratorCallbacks
ObjectFilePath;
};
+struct CxxModuleFileSet
+{
+ std::string Name;
+ std::string RelativeDirectory;
+ std::string SourcePath;
+ std::string Type;
+ cmFileSetVisibility Visibility;
+ cm::optional<std::string> Destination;
+};
+
+struct CxxModuleBmiInstall
+{
+ std::string Component;
+ std::string Destination;
+ bool ExcludeFromAll;
+ bool Optional;
+ std::string Permissions;
+ std::string MessageLevel;
+ std::string ScriptLocation;
+};
+
+struct CxxModuleExport
+{
+ std::string Name;
+ std::string Destination;
+ std::string Prefix;
+ std::string CxxModuleInfoDir;
+ std::string Namespace;
+ bool Install;
+};
+
+struct cmCxxModuleExportInfo
+{
+ std::map<std::string, CxxModuleFileSet> ObjectToFileSet;
+ cm::optional<CxxModuleBmiInstall> BmiInstallation;
+ std::vector<CxxModuleExport> Exports;
+ std::string Config;
+};
+
struct cmDyndepCollation
{
static void AddCollationInformation(Json::Value& tdi,
cmGeneratorTarget const* gt,
std::string const& config,
cmDyndepGeneratorCallbacks const& cb);
+
+ static std::unique_ptr<cmCxxModuleExportInfo> ParseExportInfo(
+ Json::Value const& tdi);
};