• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@io_bazel_rules_go//go:def.bzl", "go_binary")
2
3go_binary(
4    name = "adder_archive",
5    srcs = ["add.go"],
6    cgo = True,
7    linkmode = "c-archive",
8    tags = ["manual"],
9)
10
11cc_test(
12    name = "c-archive_test",
13    srcs = select({
14        "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
15        "//conditions:default": ["add_test_archive.c"],
16    }),
17    deps = select({
18        "@io_bazel_rules_go//go/platform:windows": [],
19        "//conditions:default": [":adder_archive"],
20    }),
21)
22
23go_binary(
24    name = "c-archive_empty_hdr",
25    srcs = ["empty.go"],
26    cgo = True,
27    linkmode = "c-archive",
28    tags = ["manual"],
29)
30
31cc_test(
32    name = "c-archive_empty_hdr_test",
33    srcs = select({
34        "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
35        "//conditions:default": ["c-archive_empty_hdr_test.c"],
36    }),
37    deps = select({
38        "@io_bazel_rules_go//go/platform:windows": [],
39        "//conditions:default": [":c-archive_empty_hdr"],
40    }),
41)
42
43go_binary(
44    name = "adder_shared",
45    srcs = ["add.go"],
46    cgo = True,
47    linkmode = "c-shared",
48    tags = ["manual"],
49)
50
51cc_test(
52    name = "c-shared_test",
53    srcs = select({
54        "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
55        "//conditions:default": ["add_test_shared.c"],
56    }),
57    deps = select({
58        "@io_bazel_rules_go//go/platform:windows": [],
59        "//conditions:default": [":adder_shared"],
60    }),
61)
62
63go_binary(
64    name = "crypto",
65    srcs = [":crypto.go"],
66    cgo = True,
67    linkmode = "c-shared",
68    tags = ["manual"],
69    deps = ["@org_golang_x_crypto//nacl/box:go_default_library"],
70)
71
72cc_test(
73    name = "c-shared_dl_test",
74    srcs = select({
75        "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
76        "//conditions:default": ["crypto_test_dl.c"],
77    }),
78    copts = select({
79        "@io_bazel_rules_go//go/platform:windows": [],
80        "//conditions:default": ['-DSO=\\"$(rootpath :crypto)\\"'],
81    }),
82    data = select({
83        "@io_bazel_rules_go//go/platform:windows": [],
84        "//conditions:default": [":crypto"],
85    }),
86    linkopts = select({
87        "@io_bazel_rules_go//go/platform:windows": [],
88        "//conditions:default": ["-ldl"],
89    }),
90)
91
92cc_library(
93    name = "adder_sandwich_cc",
94    srcs = ["add_sandwich.c"],
95    hdrs = ["add_sandwich.h"],
96    linkstatic = True,
97    alwayslink = True,
98)
99
100go_binary(
101    name = "adder_sandwich_archive",
102    srcs = ["add_sandwich.go"],
103    cdeps = [":adder_sandwich_cc"],
104    cgo = True,
105    linkmode = "c-archive",
106    tags = ["manual"],
107)
108
109cc_test(
110    name = "c-archive_sandwich_test",
111    srcs = select({
112        "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
113        "//conditions:default": ["add_test_sandwich.c"],
114    }),
115    deps = select({
116        "@io_bazel_rules_go//go/platform:windows": [],
117        "//conditions:default": [":adder_sandwich_archive"],
118    }),
119)
120
121go_binary(
122    name = "go_with_cgo_dep",
123    srcs = select({
124        "@io_bazel_rules_go//go/platform:windows": ["empty.go"],
125        "//conditions:default": ["go_with_cgo_dep.go"],
126    }),
127    cgo = True,
128    linkmode = "c-archive",
129    deps = ["@org_golang_x_sys//unix"],
130)
131
132cc_binary(
133    name = "go_with_cgo_dep_caller",
134    srcs = select({
135        "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
136        "//conditions:default": ["go_with_cgo_dep_caller.cc"],
137    }),
138    deps = [":go_with_cgo_dep"],
139)
140