Properly compute resource folder when linking statically

- deduplicate the logic to compute the resource folder
- install headers and module files in shared and static resource folders
- forward -static flag when calling swiftc with -print-target-info
This commit is contained in:
Dario Rexin
2020-07-28 15:17:20 -07:00
parent 6187697a6c
commit 0850436d9f
14 changed files with 241 additions and 29 deletions

View File

@@ -128,7 +128,8 @@ public:
bool parseArgs(ArrayRef<const char *> Args, DiagnosticEngine &Diags,
SmallVectorImpl<std::unique_ptr<llvm::MemoryBuffer>>
*ConfigurationFileBuffers = nullptr,
StringRef workingDirectory = {});
StringRef workingDirectory = {},
StringRef mainExecutablePath = {});
/// Sets specific options based on the given serialized Swift binary data.
///
@@ -213,8 +214,11 @@ public:
/// Computes the runtime resource path relative to the given Swift
/// executable.
static void computeRuntimeResourcePathFromExecutablePath(
StringRef mainExecutablePath,
llvm::SmallString<128> &runtimeResourcePath);
StringRef mainExecutablePath, bool shared,
llvm::SmallVectorImpl<char> &runtimeResourcePath);
/// Appends `lib/swift[_static]` to the given path
static void appendSwiftLibDir(llvm::SmallVectorImpl<char> &path, bool shared);
void setSDKPath(const std::string &Path);