@@ -114,76 +114,42 @@ DependencyScanningTool::getFullDependencies(
114
114
const std::vector<std::string> &CommandLine, StringRef CWD,
115
115
const llvm::StringSet<> &AlreadySeen,
116
116
llvm::Optional<StringRef> ModuleName) {
117
- class FullDependencyPrinterConsumer : public DependencyConsumer {
118
- public:
119
- FullDependencyPrinterConsumer (const llvm::StringSet<> &AlreadySeen)
120
- : AlreadySeen(AlreadySeen) {}
121
-
122
- void
123
- handleDependencyOutputOpts (const DependencyOutputOptions &Opts) override {}
124
-
125
- void handleFileDependency (StringRef File) override {
126
- Dependencies.push_back (std::string (File));
127
- }
128
-
129
- void handlePrebuiltModuleDependency (PrebuiltModuleDep PMD) override {
130
- PrebuiltModuleDeps.emplace_back (std::move (PMD));
131
- }
132
-
133
- void handleModuleDependency (ModuleDeps MD) override {
134
- ClangModuleDeps[MD.ID .ContextHash + MD.ID .ModuleName ] = std::move (MD);
135
- }
136
-
137
- void handleContextHash (std::string Hash) override {
138
- ContextHash = std::move (Hash);
139
- }
140
-
141
- FullDependenciesResult getFullDependencies (
142
- const std::vector<std::string> &OriginalCommandLine) const {
143
- FullDependencies FD;
144
-
145
- FD.OriginalCommandLine =
146
- ArrayRef<std::string>(OriginalCommandLine).slice (1 );
117
+ FullDependencyConsumer Consumer (AlreadySeen);
118
+ llvm::Error Result =
119
+ Worker.computeDependencies (CWD, CommandLine, Consumer, ModuleName);
120
+ if (Result)
121
+ return std::move (Result);
122
+ return Consumer.getFullDependencies (CommandLine);
123
+ }
147
124
148
- FD.ID .ContextHash = std::move (ContextHash);
125
+ FullDependenciesResult FullDependencyConsumer::getFullDependencies (
126
+ const std::vector<std::string> &OriginalCommandLine) const {
127
+ FullDependencies FD;
149
128
150
- FD.FileDeps . assign (Dependencies. begin (), Dependencies. end () );
129
+ FD.OriginalCommandLine = ArrayRef<std::string>(OriginalCommandLine). slice ( 1 );
151
130
152
- for (auto &&M : ClangModuleDeps) {
153
- auto &MD = M.second ;
154
- if (MD.ImportedByMainFile )
155
- FD.ClangModuleDeps .push_back (MD.ID );
156
- }
131
+ FD.ID .ContextHash = std::move (ContextHash);
157
132
158
- FD.PrebuiltModuleDeps = std::move (PrebuiltModuleDeps );
133
+ FD.FileDeps . assign (Dependencies. begin (), Dependencies. end () );
159
134
160
- FullDependenciesResult FDR;
135
+ for (auto &&M : ClangModuleDeps) {
136
+ auto &MD = M.second ;
137
+ if (MD.ImportedByMainFile )
138
+ FD.ClangModuleDeps .push_back (MD.ID );
139
+ }
161
140
162
- for (auto &&M : ClangModuleDeps) {
163
- // TODO: Avoid handleModuleDependency even being called for modules
164
- // we've already seen.
165
- if (AlreadySeen.count (M.first ))
166
- continue ;
167
- FDR.DiscoveredModules .push_back (std::move (M.second ));
168
- }
141
+ FD.PrebuiltModuleDeps = std::move (PrebuiltModuleDeps);
169
142
170
- FDR.FullDeps = std::move (FD);
171
- return FDR;
172
- }
143
+ FullDependenciesResult FDR;
173
144
174
- private:
175
- std::vector<std::string> Dependencies;
176
- std::vector<PrebuiltModuleDep> PrebuiltModuleDeps;
177
- llvm::MapVector<std::string, ModuleDeps, llvm::StringMap<unsigned >> ClangModuleDeps;
178
- std::string ContextHash;
179
- std::vector<std::string> OutputPaths;
180
- const llvm::StringSet<> &AlreadySeen;
181
- };
145
+ for (auto &&M : ClangModuleDeps) {
146
+ // TODO: Avoid handleModuleDependency even being called for modules
147
+ // we've already seen.
148
+ if (AlreadySeen.count (M.first ))
149
+ continue ;
150
+ FDR.DiscoveredModules .push_back (std::move (M.second ));
151
+ }
182
152
183
- FullDependencyPrinterConsumer Consumer (AlreadySeen);
184
- llvm::Error Result =
185
- Worker.computeDependencies (CWD, CommandLine, Consumer, ModuleName);
186
- if (Result)
187
- return std::move (Result);
188
- return Consumer.getFullDependencies (CommandLine);
153
+ FDR.FullDeps = std::move (FD);
154
+ return FDR;
189
155
}
0 commit comments