Skip to content

Commit d017fd4

Browse files
committed
[Dependency Scanning] Add setters for the scanner invocation context and a creation method to return an isntance of the opaque invocation
1 parent ca16944 commit d017fd4

File tree

3 files changed

+30
-8
lines changed

3 files changed

+30
-8
lines changed

include/swift-c/DependencyScan/DependencyScan.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,16 @@ swiftscan_prescan_result_get_import_set(swiftscan_prescan_result_t result);
205205

206206
//=== Scanner Invocation Functions ----------------------------------------===//
207207

208+
SWIFTSCAN_PUBLIC swiftscan_scan_invocation_t swiftscan_scan_invocation_create();
209+
210+
SWIFTSCAN_PUBLIC void swiftscan_scan_invocation_set_working_directory(
211+
swiftscan_scan_invocation_t invocation,
212+
swiftscan_string_t working_directory);
213+
214+
SWIFTSCAN_PUBLIC void
215+
swiftscan_scan_invocation_set_argv(swiftscan_scan_invocation_t invocation,
216+
swiftscan_string_set_t *argv);
217+
208218
SWIFTSCAN_PUBLIC swiftscan_string_t
209219
swiftscan_scan_invocation_get_working_directory(
210220
swiftscan_scan_invocation_t invocation);

lib/DependencyScan/DependencyScanImpl.cpp

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ swiftscan_scan_dependencies(swiftscan_scanner_t *scanner,
3535
int argc = invocation->argv->count;
3636
std::vector<const char *> Compilation;
3737
for (int i = 0; i < argc; ++i)
38-
Compilation.push_back(
39-
swiftscan_get_C_string(invocation->argv->strings[i]));
38+
Compilation.push_back(swiftscan_get_C_string(invocation->argv->strings[i]));
4039

4140
// Execute the scan and bridge the result
4241
auto ScanResult = ScanningTool->getDependencies(Compilation, {});
@@ -54,8 +53,7 @@ swiftscan_batch_scan_dependencies(swiftscan_scanner_t *scanner,
5453
int argc = invocation->argv->count;
5554
std::vector<const char *> Compilation;
5655
for (int i = 0; i < argc; ++i)
57-
Compilation.push_back(
58-
swiftscan_get_C_string(invocation->argv->strings[i]));
56+
Compilation.push_back(swiftscan_get_C_string(invocation->argv->strings[i]));
5957

6058
std::vector<BatchScanInput> BatchInput;
6159
for (int i = 0; i < batch_input->count; ++i) {
@@ -89,8 +87,7 @@ swiftscan_prescan_dependencies(swiftscan_scanner_t *scanner,
8987
int argc = invocation->argv->count;
9088
std::vector<const char *> Compilation;
9189
for (int i = 0; i < argc; ++i)
92-
Compilation.push_back(
93-
swiftscan_get_C_string(invocation->argv->strings[i]));
90+
Compilation.push_back(swiftscan_get_C_string(invocation->argv->strings[i]));
9491

9592
// Execute the scan and bridge the result
9693
auto PreScanResult = ScanningTool->getImports(Compilation);
@@ -260,6 +257,22 @@ swiftscan_prescan_result_get_import_set(swiftscan_prescan_result_t result) {
260257

261258
//=== Scanner Invocation Functions ----------------------------------------===//
262259

260+
swiftscan_scan_invocation_t swiftscan_scan_invocation_create() {
261+
return new swiftscan_scan_invocation_s;
262+
}
263+
264+
void swiftscan_scan_invocation_set_working_directory(
265+
swiftscan_scan_invocation_t invocation,
266+
swiftscan_string_t working_directory) {
267+
invocation->working_directory = working_directory;
268+
}
269+
270+
SWIFTSCAN_PUBLIC void
271+
swiftscan_scan_invocation_set_argv(swiftscan_scan_invocation_t invocation,
272+
swiftscan_string_set_t *argv) {
273+
invocation->argv = argv;
274+
}
275+
263276
swiftscan_string_t swiftscan_scan_invocation_get_working_directory(
264277
swiftscan_scan_invocation_t invocation) {
265278
return invocation->working_directory;

lib/DependencyScan/ScanDependencies.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -773,8 +773,7 @@ generateFullDependencyGraph(CompilerInstance &instance,
773773

774774
// Generate a swiftscan_clang_details_t object based on the dependency kind
775775
auto getModuleDetails = [&]() -> swiftscan_module_details_t {
776-
swiftscan_module_details_s *details =
777-
new swiftscan_module_details_s;
776+
swiftscan_module_details_s *details = new swiftscan_module_details_s;
778777
if (swiftTextualDeps) {
779778
swiftscan_string_t moduleInterfacePath =
780779
swiftTextualDeps->swiftInterfaceFile.hasValue()

0 commit comments

Comments
 (0)