Преглед изворни кода

Merge pull request #238 from MrMage/no-boringssl

Link CgRPC with openssl instead of BoringSSL under Linux
Tim Burks пре 7 година
родитељ
комит
38b66c346c
2 измењених фајлова са 16 додато и 2 уклоњено
  1. 6 1
      Makefile
  2. 10 1
      Package.swift

+ 6 - 1
Makefile

@@ -1,5 +1,10 @@
+UNAME_S = $(shell uname -s)
 
-CFLAGS = -Xcc -ISources/BoringSSL/include
+ifeq ($(UNAME_S),Linux)
+  CFLAGS = -Xcc -DTSI_OPENSSL_ALPN_SUPPORT=0
+else
+  CFLAGS = -Xcc -ISources/BoringSSL/include
+endif
 
 all:
 	swift build -v $(CFLAGS)

+ 10 - 1
Package.swift

@@ -22,6 +22,15 @@ var dependencies: [Package.Dependency] = [
   .package(url: "https://github.com/kylef/Commander.git", from: "0.8.0")
 ]
 
+var cGRPCDependencies: [Target.Dependency] = []
+#if os(Linux)
+// On Linux, Foundation links with openssl, so we'll need to use that instead of BoringSSL.
+// See https://github.com/apple/swift-nio-ssl/issues/16#issuecomment-392705505 for details.
+dependencies.append(.package(url: "https://github.com/apple/swift-nio-ssl-support.git", from: "1.0.0"))
+#else
+cGRPCDependencies.append("BoringSSL")
+#endif
+
 /*
  * `swift-nio-zlib-support` uses `pkgConfig` to find `zlib` on 
  * non-Apple platforms. Details here: 
@@ -45,7 +54,7 @@ let package = Package(
     .target(name: "SwiftGRPC",
             dependencies: ["CgRPC", "SwiftProtobuf"]),
     .target(name: "CgRPC",
-            dependencies: ["BoringSSL"]),
+            dependencies: cGRPCDependencies),
     .target(name: "RootsEncoder"),
     .target(name: "protoc-gen-swiftgrpc",
             dependencies: [