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