opentelemetry-cpp/api/test/singleton/BUILD

202 lines
4.0 KiB
Python

# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
# gcc and clang, assumed to be used on this platform
DEFAULT_NOWIN_COPTS = [
"-fvisibility=default",
]
# gcc and clang, assumed to be used on this platform
HIDDEN_NOWIN_COPTS = [
"-fvisibility=hidden",
]
cc_library(
name = "component_a",
srcs = [
"component_a.cc",
],
hdrs = [
"component_a.h",
],
linkstatic = True,
target_compatible_with = select({
"//bazel:windows": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
deps = [
"//api",
],
)
cc_library(
name = "component_b",
srcs = [
"component_b.cc",
],
hdrs = [
"component_b.h",
],
linkstatic = True,
target_compatible_with = select({
"//bazel:windows": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
deps = [
"//api",
],
)
cc_library(
name = "component_c",
srcs = [
"component_c.cc",
],
hdrs = [
"component_c.h",
],
copts = DEFAULT_NOWIN_COPTS,
linkstatic = False,
target_compatible_with = select({
"//bazel:windows": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
deps = [
"//api",
],
)
cc_library(
name = "component_d",
srcs = [
"component_d.cc",
],
hdrs = [
"component_d.h",
],
copts = HIDDEN_NOWIN_COPTS,
linkstatic = False,
target_compatible_with = select({
"//bazel:windows": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
deps = [
"//api",
],
)
cc_library(
name = "component_e",
srcs = [
"component_e.cc",
],
hdrs = [
"component_e.h",
],
copts = DEFAULT_NOWIN_COPTS,
linkstatic = False,
target_compatible_with = select({
"//bazel:windows": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
deps = [
"//api",
],
)
cc_library(
name = "component_f",
srcs = [
"component_f.cc",
],
hdrs = [
"component_f.h",
],
copts = HIDDEN_NOWIN_COPTS,
linkstatic = False,
target_compatible_with = select({
"//bazel:windows": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
deps = [
"//api",
],
)
# no cc_shared_library in bazel 4.2
cc_binary(
name = "component_g",
srcs = [
"component_g.cc",
],
copts = DEFAULT_NOWIN_COPTS,
linkshared = True,
target_compatible_with = select({
"//bazel:windows": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
deps = [
"//api",
],
)
# no cc_shared_library in bazel 4.2
cc_binary(
name = "component_h",
srcs = [
"component_h.cc",
],
copts = HIDDEN_NOWIN_COPTS,
linkshared = True,
target_compatible_with = select({
"//bazel:windows": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
deps = [
"//api",
],
)
#
# To build this test alone:
# - bazel build //api/test/singleton:singleton_test
# - bazel build //api/test/singleton:component_g
# - bazel build //api/test/singleton:component_h
#
# Note that singleton_test does not depend on
# component_g and component_h, on purpose.
#
# To run this test:
# bazel test //api/test/singleton:singleton_test
#
cc_test(
name = "singleton_test",
srcs = [
"singleton_test.cc",
],
defines = ["BAZEL_BUILD"],
linkopts = [
"-ldl",
],
linkstatic = False,
tags = [
"api",
"test",
],
target_compatible_with = select({
"//bazel:windows": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
deps = [
"component_a",
"component_b",
"component_c",
"component_d",
"component_e",
"component_f",
"//api",
"@com_google_googletest//:gtest_main",
],
)