diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2022-11-30 14:10:10 (GMT) |
---|---|---|
committer | Ben Boeckel <ben.boeckel@kitware.com> | 2022-11-30 15:53:45 (GMT) |
commit | 2f93a272d08e44a66249b0c22fed8ff472dda73c (patch) | |
tree | 97d000d0e5790457a9d058bb5f3352e78440839c /Source/cmDyndepCollation.h | |
parent | 3fc2de5c7439973cafc42c9c74d0821271df4825 (diff) | |
download | CMake-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.h | 49 |
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); }; |