From 6e0ced80bbc4215d32b23ae56c2b09ecab0e005a Mon Sep 17 00:00:00 2001 From: Chuck Grindel Date: Sat, 22 Jan 2022 08:31:37 -0700 Subject: [PATCH] Add workarounds to address missing `libswift_Concurrency.dylib` (#113) Added platform declarations and linker flags to work around the missing libswift_Concurrency.dylib errors. --- examples/BUILD.bazel | 7 ++----- examples/local_package/BUILD.bazel | 19 +++++++++++++++++++ examples/local_package/WORKSPACE | 9 +++++++-- examples/vapor/Tests/AppTests/BUILD.bazel | 21 ++++++++++++++++++++- examples/vapor/WORKSPACE | 10 ++++++---- 5 files changed, 54 insertions(+), 12 deletions(-) diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel index bcef89ec..1128ba18 100644 --- a/examples/BUILD.bazel +++ b/examples/BUILD.bazel @@ -16,11 +16,8 @@ ALL_OS_TEST_EXAMPLES = [ "simple", "simple_revision", "simple_with_binary", - # GH090: Disabled tests due to error: - # "Library not loaded: /usr/lib/swift/libswift_Concurrency.dylib" - # - # "local_package", - # "vapor", + "local_package", + "vapor", ] MACOS_TEST_EXAMPLES = [ diff --git a/examples/local_package/BUILD.bazel b/examples/local_package/BUILD.bazel index 5ffe8490..95a4b94d 100644 --- a/examples/local_package/BUILD.bazel +++ b/examples/local_package/BUILD.bazel @@ -1,8 +1,27 @@ load("@build_bazel_rules_swift//swift:swift.bzl", "swift_binary") +config_setting( + name = "macos_os", + constraint_values = [ + "@platforms//os:osx", + ], +) + swift_binary( name = "local_package", srcs = ["main.swift"], + # Workaround for missing libswift_Concurrency.dylib + # https://forums.swift.org/t/swift-concurrency-back-deploy-issue/53917/10 + linkopts = select({ + ":macos_os": [ + "-Wl", + "-weak-lswift_Concurrency", + "-Wl", + "-rpath", + "/usr/lib/swift", + ], + "//conditions:default": [], + }), visibility = ["//swift:__subpackages__"], deps = [ "@swift_pkgs//foo-kit:FooKit", diff --git a/examples/local_package/WORKSPACE b/examples/local_package/WORKSPACE index ebdc3f74..26bab7d2 100644 --- a/examples/local_package/WORKSPACE +++ b/examples/local_package/WORKSPACE @@ -48,12 +48,12 @@ spm_repositories( name = "swift_pkgs", dependencies = [ spm_pkg( - from_version = "1.0.0", + exact_version = "1.4.2", products = ["Logging"], url = "https://github.com/apple/swift-log.git", ), spm_pkg( - from_version = "2.0.0", + exact_version = "2.37.0", products = ["NIO"], url = "https://github.com/apple/swift-nio.git", ), @@ -63,4 +63,9 @@ spm_repositories( products = ["FooKit"], ), ], + # New concurrency stuff is supported in macOS v12. + platforms = [ + ".macOS(.v12)", + ], + swift_version = "5.5", ) diff --git a/examples/vapor/Tests/AppTests/BUILD.bazel b/examples/vapor/Tests/AppTests/BUILD.bazel index 774fb61c..83a1fd5c 100644 --- a/examples/vapor/Tests/AppTests/BUILD.bazel +++ b/examples/vapor/Tests/AppTests/BUILD.bazel @@ -1,11 +1,30 @@ load("@build_bazel_rules_swift//swift:swift.bzl", "swift_test") +config_setting( + name = "macos_os", + constraint_values = [ + "@platforms//os:osx", + ], +) + swift_test( name = "AppTests", srcs = glob(["*.swift"]), + # Workaround for missing libswift_Concurrency.dylib + # https://forums.swift.org/t/swift-concurrency-back-deploy-issue/53917/10 + linkopts = select({ + ":macos_os": [ + "-Wl", + "-weak-lswift_Concurrency", + "-Wl", + "-rpath", + "/usr/lib/swift", + ], + "//conditions:default": [], + }), deps = [ "//Sources/App/Configuration", "@swift_pkgs//vapor:XCTVapor", - "@zlib//:zlib", + "@zlib", ], ) diff --git a/examples/vapor/WORKSPACE b/examples/vapor/WORKSPACE index ab994715..0f7a9340 100644 --- a/examples/vapor/WORKSPACE +++ b/examples/vapor/WORKSPACE @@ -47,7 +47,7 @@ spm_repositories( dependencies = [ spm_pkg( "https://github.com/vapor/vapor.git", - from_version = "4.0.0", + exact_version = "4.54.1", products = [ "Vapor", "XCTVapor", @@ -55,16 +55,18 @@ spm_repositories( ), spm_pkg( "https://github.com/vapor/fluent.git", - from_version = "4.0.0", + exact_version = "4.4.0", products = ["Fluent"], ), spm_pkg( "https://github.com/vapor/fluent-sqlite-driver.git", - from_version = "4.0.0", + exact_version = "4.1.0", products = ["FluentSQLiteDriver"], ), ], + # New concurrency stuff is supported in macOS v12. platforms = [ - ".macOS(.v10_15)", + ".macOS(.v12)", ], + swift_version = "5.5", )