diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/other_tools/repo_map/repos_to_setup_map.cpp | 1 | ||||
-rw-r--r-- | src/other_tools/utils/parse_precomputed_root.cpp | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/other_tools/repo_map/repos_to_setup_map.cpp b/src/other_tools/repo_map/repos_to_setup_map.cpp index 91a69c8b..a7cf8e1d 100644 --- a/src/other_tools/repo_map/repos_to_setup_map.cpp +++ b/src/other_tools/repo_map/repos_to_setup_map.cpp @@ -677,6 +677,7 @@ void PrecomputedRootCheckout(ExpressionPtr const& repo_desc, ws_root.push_back(computed->target_module); ws_root.push_back(computed->target_name); ws_root.push_back(computed->config); + absent = computed->absent; } else if (auto tree_structure = result.AsTreeStructure()) { ws_root.push_back(TreeStructureRoot::kMarker); diff --git a/src/other_tools/utils/parse_precomputed_root.cpp b/src/other_tools/utils/parse_precomputed_root.cpp index c5eebf90..df520158 100644 --- a/src/other_tools/utils/parse_precomputed_root.cpp +++ b/src/other_tools/utils/parse_precomputed_root.cpp @@ -81,12 +81,18 @@ namespace { return unexpected{fmt::format( "Unsupported value for key \"config\":\n{}", config->ToString())}; } + + auto absent = ParseAbsent(repository); + if (not absent.has_value()) { + return unexpected{std::move(absent).error()}; + } + return ComputedRoot{.repository = repo->String(), .target_module = target_module->String(), .target_name = target_module->String(), .config = config.IsNotNull() ? config->ToJson() : nlohmann::json::object(), - .absent = false}; + .absent = *absent}; } [[nodiscard]] auto ParseTreeStructureRoot(ExpressionPtr const& repository) |