1# Description:
2#  AWS C++ SDK
3
4load("@org_tensorflow//third_party:common.bzl", "template_rule")
5
6package(default_visibility = ["//visibility:public"])
7
8licenses(["notice"])  # Apache 2.0
9
10exports_files(["LICENSE"])
11
12cc_library(
13    name = "aws",
14    srcs = select({
15        "@org_tensorflow//tensorflow:linux_aarch64": glob([
16            "aws-cpp-sdk-core/source/platform/linux-shared/*.cpp",
17        ]),
18        "@org_tensorflow//tensorflow:linux_x86_64": glob([
19            "aws-cpp-sdk-core/source/platform/linux-shared/*.cpp",
20        ]),
21        "@org_tensorflow//tensorflow:macos": glob([
22            "aws-cpp-sdk-core/source/platform/linux-shared/*.cpp",
23        ]),
24        "@org_tensorflow//tensorflow:linux_ppc64le": glob([
25            "aws-cpp-sdk-core/source/platform/linux-shared/*.cpp",
26        ]),
27        "@org_tensorflow//tensorflow:raspberry_pi_armeabi": glob([
28            "aws-cpp-sdk-core/source/platform/linux-shared/*.cpp",
29        ]),
30        "@org_tensorflow//tensorflow:freebsd": glob([
31            "aws-cpp-sdk-core/source/platform/linux-shared/*.cpp",
32        ]),
33        "//conditions:default": [],
34    }) + select({
35        "//conditions:default": glob([
36            "aws-cpp-sdk-core/source/net/linux-shared/*.cpp",
37        ]),
38        "@org_tensorflow//tensorflow:windows": glob([
39            "aws-cpp-sdk-core/source/platform/windows/*.cpp",
40            "aws-cpp-sdk-core/source/net/windows/*.cpp",
41        ]),
42    }) + glob([
43        "aws-cpp-sdk-core/include/**/*.h",
44        "aws-cpp-sdk-core/source/*.cpp",
45        "aws-cpp-sdk-core/source/auth/**/*.cpp",
46        "aws-cpp-sdk-core/source/config/**/*.cpp",
47        "aws-cpp-sdk-core/source/client/**/*.cpp",
48        "aws-cpp-sdk-core/source/external/**/*.cpp",
49        "aws-cpp-sdk-core/source/internal/**/*.cpp",
50        "aws-cpp-sdk-core/source/http/*.cpp",
51        "aws-cpp-sdk-core/source/http/curl/**/*.cpp",
52        "aws-cpp-sdk-core/source/http/standard/**/*.cpp",
53        "aws-cpp-sdk-core/source/utils/*.cpp",
54        "aws-cpp-sdk-core/source/utils/base64/**/*.cpp",
55        "aws-cpp-sdk-core/source/utils/event/*.cpp",
56        "aws-cpp-sdk-core/source/utils/json/**/*.cpp",
57        "aws-cpp-sdk-core/source/utils/logging/*.cpp",
58        "aws-cpp-sdk-core/source/utils/logging/**/*.cpp",
59        "aws-cpp-sdk-core/source/utils/memory/**/*.cpp",
60        "aws-cpp-sdk-core/source/utils/stream/**/*.cpp",
61        "aws-cpp-sdk-core/source/utils/threading/**/*.cpp",
62        "aws-cpp-sdk-core/source/utils/xml/**/*.cpp",
63        "aws-cpp-sdk-core/source/utils/crypto/*.cpp",
64        "aws-cpp-sdk-core/source/utils/crypto/factory/**/*.cpp",
65        "aws-cpp-sdk-s3/include/**/*.h",
66        "aws-cpp-sdk-s3/source/**/*.cpp",
67        "aws-cpp-sdk-transfer/include/**/*.h",
68        "aws-cpp-sdk-transfer/source/**/*.cpp",
69        "aws-cpp-sdk-core/source/monitoring/*.cpp",
70        "aws-cpp-sdk-core/source/utils/memory/*.cpp",
71        "aws-cpp-sdk-core/source/utils/crypto/openssl/*.cpp",
72    ]),
73    hdrs = [
74        "aws-cpp-sdk-core/include/aws/core/SDKConfig.h",
75    ],
76    copts = [
77        "-DENABLE_OPENSSL_ENCRYPTION",
78        "-DAWS_SDK_VERSION_MAJOR=1",
79        "-DAWS_SDK_VERSION_MINOR=7",
80        "-DAWS_SDK_VERSION_PATCH=266",
81        "-DOPENSSL_IS_BORINGSSL",
82    ],
83    defines = select({
84        "@org_tensorflow//tensorflow:linux_aarch64": [
85            "PLATFORM_LINUX",
86            "ENABLE_CURL_CLIENT",
87            "OPENSSL_IS_BORINGSSL",
88        ],
89        "@org_tensorflow//tensorflow:linux_x86_64": [
90            "PLATFORM_LINUX",
91            "ENABLE_CURL_CLIENT",
92            "OPENSSL_IS_BORINGSSL",
93        ],
94        "@org_tensorflow//tensorflow:macos": [
95            "PLATFORM_APPLE",
96            "ENABLE_CURL_CLIENT",
97            "OPENSSL_IS_BORINGSSL",
98        ],
99        "@org_tensorflow//tensorflow:linux_ppc64le": [
100            "PLATFORM_LINUX",
101            "ENABLE_CURL_CLIENT",
102            "OPENSSL_IS_BORINGSSL",
103        ],
104        "@org_tensorflow//tensorflow:windows": [
105            "PLATFORM_WINDOWS",
106            "ENABLE_CURL_CLIENT",
107            "OPENSSL_IS_BORINGSSL",
108        ],
109        "//conditions:default": [],
110    }),
111    includes = [
112        "aws-cpp-sdk-core/include/",
113        "aws-cpp-sdk-s3/include/",
114        "aws-cpp-sdk-transfer/include/",
115    ],
116    linkopts = select({
117        "@org_tensorflow//tensorflow:windows": [
118            "-DEFAULTLIB:Userenv.lib",
119            "-DEFAULTLIB:Version.lib",
120        ],
121        "//conditions:default": [],
122    }),
123    deps = [
124        "@aws-c-common",
125        "@aws-c-event-stream",
126        "@aws-checksums",
127        "@boringssl//:crypto",
128        "@curl",
129    ],
130)
131
132template_rule(
133    name = "SDKConfig_h",
134    src = "aws-cpp-sdk-core/include/aws/core/SDKConfig.h.in",
135    out = "aws-cpp-sdk-core/include/aws/core/SDKConfig.h",
136    substitutions = {
137        "cmakedefine": "define",
138    },
139)
140