| //===- DependencyScanningUtils.cpp - Common Scanning Utilities ------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "clang/DependencyScanning/DependencyScanningUtils.h" |
| |
| using namespace clang; |
| using namespace dependencies; |
| |
| TranslationUnitDeps FullDependencyConsumer::takeTranslationUnitDeps() { |
| TranslationUnitDeps TU; |
| |
| TU.ID.ContextHash = std::move(ContextHash); |
| TU.ID.ModuleName = std::move(ModuleName); |
| TU.NamedModuleDeps = std::move(NamedModuleDeps); |
| TU.FileDeps = std::move(Dependencies); |
| TU.PrebuiltModuleDeps = std::move(PrebuiltModuleDeps); |
| TU.VisibleModules = std::move(VisibleModules); |
| TU.Commands = std::move(Commands); |
| |
| for (auto &&M : ClangModuleDeps) { |
| auto &MD = M.second; |
| // TODO: Avoid handleModuleDependency even being called for modules |
| // we've already seen. |
| if (AlreadySeen.count(M.first)) |
| continue; |
| TU.ModuleGraph.push_back(std::move(MD)); |
| } |
| TU.ClangModuleDeps = std::move(DirectModuleDeps); |
| |
| return TU; |
| } |
| |
| CallbackActionController::~CallbackActionController() {} |