1 // swift-tools-version:5.2 2 // The swift-tools-version declares the minimum version of Swift required to build this package. 3 import PackageDescription 4 5 let package = Package( 6 name: "gRPC", 7 products: [ 8 .library( 9 name: "gRPC-Core", 10 targets: [ 11 "gRPC-Core", 12 ] 13 ), 14 .library( 15 name: "gRPC-cpp", 16 targets: [ 17 "gRPC-cpp", 18 ] 19 ) 20 ], 21 22 dependencies: [ 23 .package( 24 name: "abseil", 25 url: "https://github.com/firebase/abseil-cpp-SwiftPM.git", 26 .revision("05d8107f2971a37e6c77245b7c4c6b0a7e97bc99") 27 ), 28 .package(name: "BoringSSL-GRPC", 29 url: "https://github.com/firebase/boringssl-SwiftPM.git", 30 .branch("7bcafa2660bc58715c39637494550d1ed7cd7229") 31 ), 32 ], 33 34 targets: [ 35 .target( 36 name: "gRPC-Core", 37 dependencies: [ 38 .product(name:"abseil", package: "abseil"), 39 .product(name:"openssl_grpc", package: "BoringSSL-GRPC"), 40 ], 41 path: ".", 42 exclude: [ 43 "src/core/ext/filters/load_reporting/", 44 "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.cc", 45 "src/core/ext/filters/client_channel/xds/xds_channel.cc", 46 "src/core/ext/transport/cronet/", 47 "src/core/ext/upb-generated/third_party/", 48 "src/core/ext/upbdefs-generated/envoy/config/rbac/", 49 "src/core/ext/upbdefs-generated/google/api/expr/", 50 "src/core/ext/upbdefs-generated/src/", 51 "src/core/ext/upbdefs-generated/third_party/", 52 "src/core/ext/upbdefs-generated/udpa/data/", 53 "src/core/lib/surface/init_unsecure.cc", 54 "src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h", 55 "src/core/lib/security/authorization/mock_cel/cel_expression.h", 56 "src/core/lib/security/authorization/mock_cel/evaluator_core.h", 57 "src/core/lib/security/authorization/mock_cel/flat_expr_builder.h", 58 "src/core/lib/security/authorization/mock_cel/statusor.h", 59 "src/core/plugin_registry/grpc_unsecure_plugin_registry.cc", 60 "third_party/re2/re2/testing/", 61 "third_party/re2/re2/fuzzing/", 62 "third_party/re2/util/benchmark.cc", 63 "third_party/re2/util/test.cc", 64 "third_party/re2/util/fuzz.cc", 65 "third_party/upb/upb/bindings/", 66 "third_party/upb/upb/json/", 67 "third_party/upb/upb/pb/", 68 ], 69 sources: [ 70 "src/core/ext/filters/", 71 "src/core/ext/transport/", 72 "src/core/ext/upb-generated/", 73 "src/core/ext/upbdefs-generated/", 74 "src/core/ext/xds/", 75 "src/core/lib/", 76 "src/core/plugin_registry/grpc_plugin_registry.cc", 77 "src/core/tsi/", 78 "third_party/re2/re2/", 79 "third_party/re2/util/", 80 "third_party/upb/upb/", 81 ], 82 publicHeadersPath: "spm-core-include", 83 cSettings: [ 84 .headerSearchPath("./"), 85 .headerSearchPath("include/"), 86 .headerSearchPath("third_party/re2/"), 87 .headerSearchPath("third_party/upb/"), 88 .headerSearchPath("src/core/ext/upb-generated/"), 89 .headerSearchPath("src/core/ext/upbdefs-generated/"), 90 .define("GRPC_ARES", to: "0"), 91 ] 92 ), 93 .target( 94 name: "gRPC-cpp", 95 dependencies: [ 96 .product(name:"abseil", package: "abseil"), 97 "gRPC-Core", 98 ], 99 path: ".", 100 exclude: [ 101 "src/cpp/client/cronet_credentials.cc", 102 "src/cpp/common/insecure_create_auth_context.cc", 103 "src/cpp/ext/", 104 "src/cpp/server/channelz/", 105 "src/cpp/server/load_reporter/", 106 "src/cpp/util/core_stats.cc", 107 "src/cpp/util/core_stats.h", 108 "src/cpp/util/error_details.cc", 109 ], 110 sources: [ 111 "src/cpp/", 112 ], 113 publicHeadersPath: "spm-cpp-include", 114 cSettings: [ 115 .headerSearchPath("./"), 116 .headerSearchPath("include/"), 117 .headerSearchPath("third_party/upb/"), 118 .headerSearchPath("src/core/ext/upb-generated"), 119 ] 120 ), 121 ], 122 cLanguageStandard: .gnu11, 123 cxxLanguageStandard: .cxx11 124 ) 125