Commit Graph

13 Commits

Author SHA1 Message Date
Artem Chikin
60806ef64d [Dependency Scanning] Consider scanned module name a part of the scanning context (hash)
As well as a couple of additional frontend options that seem like they may impact scanning result.

Resolves rdar://108464467
2023-04-25 11:05:16 -07:00
Artem Chikin
1b4bc33e68 [libSwiftScan] Add V2 target info query API that takes compiler executable path as parameter
This new version takes the path to the compiler executable as a parameter, in order for libSwiftScan to compute compiler-relative portions of runtimeLibraryPaths, runtimeResourcePath. V1, without knowing the path to the compiler executable, produced incomplete sets of these paths.
2023-01-23 09:39:46 -08:00
Artem Chikin
a59db26a55 [Dependency Scanner] Rename 'GlobalModuleDependenciesCache' -> 'SwiftDependencyScanningService' 2022-12-19 11:08:50 -08:00
Artem Chikin
baec3154a0 [Dependency Scan] Remove redundant recombination of arguments in 'initCompilerInstanceForScan' into a string, before being re-parsed.
This does not seem to serve a purpose other than corrupting arguments with whitespaces - they get merged into one large string where the whitespace boundary between arguments and whitespaces within arguments are blurred.

Part of rdar://98985453
2022-08-22 16:12:58 -07:00
Artem Chikin
d24e15812b Build libSwiftStaticMirror as a standalone library with minimal required dependencies.
This separates it from `libSwiftScan` and allows us to build this library without building much of the rest of the compiler.

Also refactor `utils/build-parser-lib` into `utils/build-tooling-libs` which builds both SwiftSyntaxParser and SwiftStaticMirror.
2022-02-09 12:28:21 -08:00
Artem Chikin
40a1b321f5 Add libSwiftScan entry-point to query target info.
This provides the library with functionality to answer `-print-target-info` queries in place of calls to `swift-frontend`.
2021-11-12 11:01:45 -08:00
Saleem Abdulrasool
2c15beb98e unittests: add a more verbose error message
This test was failing for me locally due to a path configuration issue.
Add an indication which option is missing.
2021-04-05 09:48:00 -07:00
Artem Chikin
b3259eaac0 Make string_set_dispose method a part of public API.
It is not a distinct result returned by `swiftscan_compiler_supported_arguments_query` and `swiftscan_compiler_supported_features_query`, not owned by any other type, so it must be disposed of by the clients.
2021-02-10 10:54:05 -08:00
Artem Chikin
0bfff6beb6 Add libSwiftScan entry-points to query supported compiler flags and compiler features
For the client library (`libSwiftDriver`), this is critical for multiplexing library instances, and for compatibility with different versions of `libSwiftDrvier`.

Resolves rdar://73631930
2021-02-10 10:46:07 -08:00
Artem Chikin
4eae21c563 Change file generation in the DependencyScan.ModuleDeps unittest to hopefully work better on windows. 2021-01-07 16:53:23 -08:00
Artem Chikin
41a09a4092 [Dependency Scanning] Establish object ownership convention by using a Foundation-style ownership signals naming scheme across the API surface.
Foundation-style ownership signals documentation:
https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html#//apple_ref/doc/uid/20001148-CJBEJBHH
2021-01-07 09:08:21 -08:00
Artem Chikin
d1cc689c01 [Dependency Scanning] Fix the DependencyScan unit test harness to reflect C API changes. 2021-01-07 09:08:21 -08:00
Artem Chikin
75a8cfa048 [Dependency Scanning] Add a C API layer for dependency scanning tool, scanning actions, and scan results.
Adds a C API layer consisting of:
- Data structures used to represent in-memory result of dependency scanning
- Opaque dependency scanner tool (C wrapper for `DependencyScanningTool`)

Refactors `ScanDependencies.cpp` to produce dependency scanning result in the form of the above binary format.
2021-01-07 09:08:20 -08:00