diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c81ce761..fbbee69d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,6 +19,8 @@ jobs: linux_os_versions: '["amazonlinux2", "bookworm", "noble", "jammy", "rhel-ubi9"]' linux_swift_versions: '["nightly-main", "nightly-6.2"]' linux_build_command: 'swift build' + enable_linux_static_sdk_build: true + linux_static_sdk_build_command: SWIFTTOOLSSUPPORTCORE_STATIC_LINK=1 swift build windows_swift_versions: '["nightly-main"]' windows_build_command: 'Invoke-Program swift build' enable_android_sdk_build: true diff --git a/Package.swift b/Package.swift index 16a036b3..53cb3adb 100644 --- a/Package.swift +++ b/Package.swift @@ -27,6 +27,8 @@ if let deploymentTarget = ProcessInfo.processInfo.environment["SWIFTTSC_IOS_DEPL iOSPlatform = .iOS(.v13) } +let isStaticBuild = ProcessInfo.processInfo.environment["SWIFTTOOLSSUPPORTCORE_STATIC_LINK"] != nil + let CMakeFiles = ["CMakeLists.txt"] let package = Package( @@ -115,3 +117,12 @@ let package = Package( exclude: ["pkgconfigInputs", "Inputs"]), ] ) + +if isStaticBuild { + package.targets = package.targets.filter { target in + target.type != .test && !target.name.hasSuffix("TestSupport") + } + package.products = package.products.filter { product in + !product.name.hasSuffix("TestSupport") + } +}