1
1
load ("@rules_cc//cc:defs.bzl" , "cc_library" )
2
+ load ("@bazel_skylib//rules:common_settings.bzl" , "string_flag" )
3
+ load ("@bazel_skylib//rules:write_file.bzl" , "write_file" )
2
4
3
- package (default_visibility = ["//visibility:public" ])
5
+ string_flag (
6
+ name = "ssl" ,
7
+ visibility = ["//visibility:public" ],
8
+ values = ["no_ssl" , "openssl" , "boringssl" ],
9
+ build_setting_default = "no_ssl" ,
10
+ )
11
+
12
+ config_setting (name = "no_ssl" , flag_values = {":ssl" : "no_ssl" })
13
+ config_setting (name = "openssl" , flag_values = {":ssl" : "openssl" })
14
+ config_setting (name = "boringssl" , flag_values = {":ssl" : "boringssl" })
15
+
16
+ write_file (
17
+ name = "src" ,
18
+ out = "boost.asio.src.cpp" ,
19
+ content = select ({
20
+ ":no_ssl" : [
21
+ "#include <boost/asio/impl/src.hpp>" ,
22
+ ],
23
+ "//conditions:default" : [
24
+ "#include <boost/asio/impl/src.hpp>" ,
25
+ "#include <boost/asio/ssl/impl/src.hpp>" ,
26
+ ],
27
+ }),
28
+ )
4
29
5
30
cc_library (
6
31
name = "boost.asio" ,
32
+ visibility = ["//visibility:public" ],
33
+ defines = ["BOOST_ASIO_SEPARATE_COMPILATION" ],
34
+ linkopts = select ({
35
+ "@platforms//os:windows" : [
36
+ "-DEFAULTLIB:ws2_32" ,
37
+ "-DEFAULTLIB:mswsock" ,
38
+ ],
39
+ "//conditions:default" : [
40
+ "-lpthread" ,
41
+ ],
42
+ }),
7
43
hdrs = glob ([
8
44
"include/**/*.hpp" ,
9
45
"include/**/*.h" ,
46
+ "include/**/*.ipp" ,
47
+ ], exclude = [
48
+ "include/boost/asio/impl/src.hpp" ,
49
+ "include/boost/asio/ssl/impl/src.hpp" ,
10
50
]),
51
+ srcs = [":src" ] + select ({
52
+ ":no_ssl" : [
53
+ "include/boost/asio/impl/src.hpp" ,
54
+ ],
55
+ "//conditions:default" : [
56
+ "include/boost/asio/impl/src.hpp" ,
57
+ "include/boost/asio/ssl/impl/src.hpp" ,
58
+ ],
59
+ }),
11
60
includes = ["include" ],
12
61
deps = [
13
62
"@boost.align" ,
@@ -28,5 +77,9 @@ cc_library(
28
77
"@boost.throw_exception" ,
29
78
"@boost.type_traits" ,
30
79
"@boost.utility" ,
31
- ],
80
+ ] + select ({
81
+ ":openssl" : ["@openssl//:ssl" ],
82
+ ":boringssl" : ["@boringssl//:ssl" ],
83
+ ":no_ssl" : [],
84
+ }),
32
85
)
0 commit comments