xref: /aosp_15_r20/external/grpc-grpc/templates/Package.swift.template (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker%YAML 1.2
2*cc02d7e2SAndroid Build Coastguard Worker--- |
3*cc02d7e2SAndroid Build Coastguard Worker    // swift-tools-version:5.5
4*cc02d7e2SAndroid Build Coastguard Worker    // The swift-tools-version declares the minimum version of Swift required to build this package.
5*cc02d7e2SAndroid Build Coastguard Worker    import PackageDescription
6*cc02d7e2SAndroid Build Coastguard Worker    import Foundation
7*cc02d7e2SAndroid Build Coastguard Worker
8*cc02d7e2SAndroid Build Coastguard Worker    var basePath = FileManager.default.fileExists(atPath: "native") ? "native" : "."
9*cc02d7e2SAndroid Build Coastguard Worker
10*cc02d7e2SAndroid Build Coastguard Worker    let package = Package(
11*cc02d7e2SAndroid Build Coastguard Worker      name: "gRPC",
12*cc02d7e2SAndroid Build Coastguard Worker      products: [
13*cc02d7e2SAndroid Build Coastguard Worker        .library(
14*cc02d7e2SAndroid Build Coastguard Worker          name: "gRPC-Core",
15*cc02d7e2SAndroid Build Coastguard Worker          targets: [
16*cc02d7e2SAndroid Build Coastguard Worker            "gRPC-Core",
17*cc02d7e2SAndroid Build Coastguard Worker          ]
18*cc02d7e2SAndroid Build Coastguard Worker        ),
19*cc02d7e2SAndroid Build Coastguard Worker        .library(
20*cc02d7e2SAndroid Build Coastguard Worker          name: "gRPC-cpp",
21*cc02d7e2SAndroid Build Coastguard Worker          targets: [
22*cc02d7e2SAndroid Build Coastguard Worker            "gRPC-cpp",
23*cc02d7e2SAndroid Build Coastguard Worker          ]
24*cc02d7e2SAndroid Build Coastguard Worker        )
25*cc02d7e2SAndroid Build Coastguard Worker      ],
26*cc02d7e2SAndroid Build Coastguard Worker
27*cc02d7e2SAndroid Build Coastguard Worker      dependencies: [
28*cc02d7e2SAndroid Build Coastguard Worker        .package(url: "https://github.com/firebase/abseil-cpp-SwiftPM.git", "0.20230802.0"..<"0.20230803.0"),
29*cc02d7e2SAndroid Build Coastguard Worker        .package(url: "https://github.com/firebase/boringssl-SwiftPM.git", "0.9.0"..<"0.10.0"),
30*cc02d7e2SAndroid Build Coastguard Worker      ],
31*cc02d7e2SAndroid Build Coastguard Worker
32*cc02d7e2SAndroid Build Coastguard Worker      targets: [
33*cc02d7e2SAndroid Build Coastguard Worker        .target(
34*cc02d7e2SAndroid Build Coastguard Worker          name: "gRPC-Core",
35*cc02d7e2SAndroid Build Coastguard Worker          dependencies: [
36*cc02d7e2SAndroid Build Coastguard Worker            .product(name:"abseil", package: "abseil-cpp-SwiftPM"),
37*cc02d7e2SAndroid Build Coastguard Worker            .product(name:"openssl_grpc", package: "boringssl-SwiftPM"),
38*cc02d7e2SAndroid Build Coastguard Worker          ],
39*cc02d7e2SAndroid Build Coastguard Worker          path: basePath,
40*cc02d7e2SAndroid Build Coastguard Worker          exclude: [
41*cc02d7e2SAndroid Build Coastguard Worker            "examples/",
42*cc02d7e2SAndroid Build Coastguard Worker            "src/objective-c/",
43*cc02d7e2SAndroid Build Coastguard Worker          ],
44*cc02d7e2SAndroid Build Coastguard Worker        <%
45*cc02d7e2SAndroid Build Coastguard Worker          files = []
46*cc02d7e2SAndroid Build Coastguard Worker          lib_maps = {lib.name: lib for lib in libs}
47*cc02d7e2SAndroid Build Coastguard Worker          for dep in swift_package.get('deps', []):
48*cc02d7e2SAndroid Build Coastguard Worker            lib = lib_maps[dep]
49*cc02d7e2SAndroid Build Coastguard Worker            files.extend(lib.get('public_headers', []) + lib.headers + lib.src)
50*cc02d7e2SAndroid Build Coastguard Worker          files = sorted(set(files))
51*cc02d7e2SAndroid Build Coastguard Worker        %>
52*cc02d7e2SAndroid Build Coastguard Worker          sources: [
53*cc02d7e2SAndroid Build Coastguard Worker            % for file in files:
54*cc02d7e2SAndroid Build Coastguard Worker            "${file}",
55*cc02d7e2SAndroid Build Coastguard Worker            % endfor
56*cc02d7e2SAndroid Build Coastguard Worker          ],
57*cc02d7e2SAndroid Build Coastguard Worker          resources: [
58*cc02d7e2SAndroid Build Coastguard Worker            .copy("src/objective-c/PrivacyInfo.xcprivacy"),
59*cc02d7e2SAndroid Build Coastguard Worker          ],
60*cc02d7e2SAndroid Build Coastguard Worker          publicHeadersPath: "spm-core-include",
61*cc02d7e2SAndroid Build Coastguard Worker          cSettings: [
62*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("./"),
63*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("include/"),
64*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("third_party/re2/"),
65*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("third_party/upb/"),
66*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("third_party/utf8_range/"),
67*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("third_party/xxhash/"),
68*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("src/core/ext/upb-gen/"),
69*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("src/core/ext/upbdefs-gen/"),
70*cc02d7e2SAndroid Build Coastguard Worker            .define("GRPC_ARES", to: "0"),
71*cc02d7e2SAndroid Build Coastguard Worker          ],
72*cc02d7e2SAndroid Build Coastguard Worker          linkerSettings: [
73*cc02d7e2SAndroid Build Coastguard Worker            .linkedFramework("CoreFoundation"),
74*cc02d7e2SAndroid Build Coastguard Worker            .linkedLibrary("z"),
75*cc02d7e2SAndroid Build Coastguard Worker          ]
76*cc02d7e2SAndroid Build Coastguard Worker        ),
77*cc02d7e2SAndroid Build Coastguard Worker        .target(
78*cc02d7e2SAndroid Build Coastguard Worker          name: "gRPC-cpp",
79*cc02d7e2SAndroid Build Coastguard Worker          dependencies: [
80*cc02d7e2SAndroid Build Coastguard Worker            .product(name:"abseil", package: "abseil-cpp-SwiftPM"),
81*cc02d7e2SAndroid Build Coastguard Worker            "gRPC-Core",
82*cc02d7e2SAndroid Build Coastguard Worker          ],
83*cc02d7e2SAndroid Build Coastguard Worker          path: basePath,
84*cc02d7e2SAndroid Build Coastguard Worker          exclude: [
85*cc02d7e2SAndroid Build Coastguard Worker            "examples/",
86*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/client/cronet_credentials.cc",
87*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/client/channel_test_peer.cc",
88*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/common/alts_util.cc",
89*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/common/alts_context.cc",
90*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/common/insecure_create_auth_context.cc",
91*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/server/admin/",
92*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/server/channelz/",
93*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/server/csds/",
94*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/server/load_reporter/",
95*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/ext/",
96*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/util/core_stats.cc",
97*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/util/core_stats.h",
98*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/util/error_details.cc",
99*cc02d7e2SAndroid Build Coastguard Worker            "src/objective-c/examples/",
100*cc02d7e2SAndroid Build Coastguard Worker            "src/objective-c/manual_tests/",
101*cc02d7e2SAndroid Build Coastguard Worker            "src/objective-c/tests/",
102*cc02d7e2SAndroid Build Coastguard Worker          ],
103*cc02d7e2SAndroid Build Coastguard Worker          sources: [
104*cc02d7e2SAndroid Build Coastguard Worker            "src/cpp/",
105*cc02d7e2SAndroid Build Coastguard Worker          ],
106*cc02d7e2SAndroid Build Coastguard Worker          resources: [
107*cc02d7e2SAndroid Build Coastguard Worker            .copy("src/objective-c/PrivacyInfo.xcprivacy"),
108*cc02d7e2SAndroid Build Coastguard Worker          ],
109*cc02d7e2SAndroid Build Coastguard Worker          publicHeadersPath: "spm-cpp-include",
110*cc02d7e2SAndroid Build Coastguard Worker          cSettings: [
111*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("./"),
112*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("include/"),
113*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("third_party/upb/"),
114*cc02d7e2SAndroid Build Coastguard Worker            .headerSearchPath("src/core/ext/upb-gen"),
115*cc02d7e2SAndroid Build Coastguard Worker          ]
116*cc02d7e2SAndroid Build Coastguard Worker        ),
117*cc02d7e2SAndroid Build Coastguard Worker        .testTarget(
118*cc02d7e2SAndroid Build Coastguard Worker          name: "build-test",
119*cc02d7e2SAndroid Build Coastguard Worker          dependencies: [
120*cc02d7e2SAndroid Build Coastguard Worker            "gRPC-cpp",
121*cc02d7e2SAndroid Build Coastguard Worker          ],
122*cc02d7e2SAndroid Build Coastguard Worker          path: basePath + "/test/spm_build"
123*cc02d7e2SAndroid Build Coastguard Worker        ),
124*cc02d7e2SAndroid Build Coastguard Worker      ],
125*cc02d7e2SAndroid Build Coastguard Worker      cLanguageStandard: .gnu11,
126*cc02d7e2SAndroid Build Coastguard Worker      cxxLanguageStandard: .cxx14
127*cc02d7e2SAndroid Build Coastguard Worker    )
128