Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/BUILD.bazel
blob: fce4ad8256bc3d918628fc3670c8d438cf5e83d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
load("@rules_cc//cc:cc_library.bzl", "cc_library")
load("@rules_license//rules:license.bzl", "license")

package(
    default_applicable_licenses = [":license"],
)

exports_files([
    "LICENSE.txt",
    "src/catch2/catch_session.cpp",
])

license(
    name = "license",
    license_kinds = ["@rules_license//licenses/spdx:BSL-1.0"],
    license_text = "LICENSE.txt",
)

expand_template(
    name = "catch_user_config",
    out = "catch2/catch_user_config.hpp",
    substitutions = {
        "#cmakedefine CATCH_CONFIG_ANDROID_LOGWRITE": "",
        "#cmakedefine CATCH_CONFIG_BAZEL_SUPPORT": "#define CATCH_CONFIG_BAZEL_SUPPORT",
        "#cmakedefine CATCH_CONFIG_COLOUR_WIN32": "",
        "#cmakedefine CATCH_CONFIG_COUNTER": "",
        "#cmakedefine CATCH_CONFIG_CPP11_TO_STRING": "",
        "#cmakedefine CATCH_CONFIG_CPP17_BYTE": "",
        "#cmakedefine CATCH_CONFIG_CPP17_OPTIONAL": "",
        "#cmakedefine CATCH_CONFIG_CPP17_STRING_VIEW": "",
        "#cmakedefine CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS": "",
        "#cmakedefine CATCH_CONFIG_CPP17_VARIANT": "",
        "#cmakedefine CATCH_CONFIG_DEPRECATION_ANNOTATIONS": "",
        "#cmakedefine CATCH_CONFIG_DISABLE_EXCEPTIONS_CUSTOM_HANDLER": "",
        "#cmakedefine CATCH_CONFIG_DISABLE_EXCEPTIONS": "",
        "#cmakedefine CATCH_CONFIG_DISABLE_STRINGIFICATION": "",
        "#cmakedefine CATCH_CONFIG_DISABLE": "",
        "#cmakedefine CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS": "",
        "#cmakedefine CATCH_CONFIG_ENABLE_OPTIONAL_STRINGMAKER": "",
        "#cmakedefine CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER": "",
        "#cmakedefine CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER": "",
        "#cmakedefine CATCH_CONFIG_ENABLE_VARIANT_STRINGMAKER": "",
        "#cmakedefine CATCH_CONFIG_EXPERIMENTAL_REDIRECT": "",
        "#cmakedefine CATCH_CONFIG_FALLBACK_STRINGIFIER @CATCH_CONFIG_FALLBACK_STRINGIFIER@": "",
        "#cmakedefine CATCH_CONFIG_FAST_COMPILE": "",
        "#cmakedefine CATCH_CONFIG_GETENV": "",
        "#cmakedefine CATCH_CONFIG_GLOBAL_NEXTAFTER": "",
        "#cmakedefine CATCH_CONFIG_NO_ANDROID_LOGWRITE": "",
        "#cmakedefine CATCH_CONFIG_NO_COLOUR_WIN32": "",
        "#cmakedefine CATCH_CONFIG_NO_COUNTER": "",
        "#cmakedefine CATCH_CONFIG_NO_CPP11_TO_STRING": "",
        "#cmakedefine CATCH_CONFIG_NO_CPP17_BYTE": "",
        "#cmakedefine CATCH_CONFIG_NO_CPP17_OPTIONAL": "",
        "#cmakedefine CATCH_CONFIG_NO_CPP17_STRING_VIEW": "",
        "#cmakedefine CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS": "",
        "#cmakedefine CATCH_CONFIG_NO_CPP17_VARIANT": "",
        "#cmakedefine CATCH_CONFIG_NO_DEPRECATION_ANNOTATIONS": "",
        "#cmakedefine CATCH_CONFIG_NO_GETENV": "",
        "#cmakedefine CATCH_CONFIG_NO_GLOBAL_NEXTAFTER": "",
        "#cmakedefine CATCH_CONFIG_NO_POSIX_SIGNALS": "",
        "#cmakedefine CATCH_CONFIG_NO_USE_ASYNC": "",
        "#cmakedefine CATCH_CONFIG_NO_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT": "",
        "#cmakedefine CATCH_CONFIG_NO_WCHAR": "",
        "#cmakedefine CATCH_CONFIG_NO_WINDOWS_SEH": "",
        "#cmakedefine CATCH_CONFIG_NOSTDOUT": "",
        "#cmakedefine CATCH_CONFIG_POSIX_SIGNALS": "",
        "#cmakedefine CATCH_CONFIG_PREFIX_ALL": "",
        "#cmakedefine CATCH_CONFIG_PREFIX_MESSAGES": "",
        "#cmakedefine CATCH_CONFIG_SHARED_LIBRARY": "",
        "#cmakedefine CATCH_CONFIG_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT": "",
        "#cmakedefine CATCH_CONFIG_USE_ASYNC": "",
        "#cmakedefine CATCH_CONFIG_WCHAR": "",
        "#cmakedefine CATCH_CONFIG_WINDOWS_CRTDBG": "",
        "#cmakedefine CATCH_CONFIG_WINDOWS_SEH": "",
        "#cmakedefine CATCH_CONFIG_USE_BUILTIN_CONSTANT_P": "",
        "#cmakedefine CATCH_CONFIG_NO_USE_BUILTIN_CONSTANT_P": "",
        "#cmakedefine CATCH_CONFIG_THREAD_SAFE_ASSERTIONS": "",
        "#cmakedefine CATCH_CONFIG_NO_THREAD_SAFE_ASSERTIONS": "",
    },
    template = "src/catch2/catch_user_config.hpp.in",
)

# Generated header library, modifies the include prefix to account for
# generation path so that we can include <catch2/catch_user_config.hpp>
# correctly.
cc_library(
    name = "catch2_generated",
    hdrs = ["catch2/catch_user_config.hpp"],
    include_prefix = ".",  # to manipulate -I of dependencies
    visibility = ["//visibility:public"],
)

# Catch2's engine: everything but the entry points. The runner is in
# //src/Progmasoft:runner.
cc_library(
    name = "catch2_core",
    srcs = glob(
        ["src/catch2/**/*.cpp"],
        exclude = [
            "src/catch2/internal/catch_main.cpp",
            "src/catch2/catch_session.cpp",
        ],
    ),
    hdrs = glob(["src/catch2/**/*.hpp"]),
    includes = ["src/"],
    linkstatic = True,
    visibility = ["//src/Progmasoft:__pkg__"],
    deps = [":catch2_generated"],
)

# Static library, without main: Catch2's engine with the Catch3 runner, which
# replaced Catch2's session, command line and reporters.
cc_library(
    name = "catch2",
    linkstatic = True,
    visibility = ["//visibility:public"],
    deps = [
        ":catch2_core",
        "//src/Progmasoft:runner",
    ],
)

# Static library, with main.
cc_library(
    name = "catch2_main",
    srcs = ["src/catch2/internal/catch_main.cpp"],
    includes = ["src/"],
    linkstatic = True,
    visibility = ["//visibility:public"],
    deps = [":catch2"],
)