load("@rules_cc//cc:cc_library.bzl", "cc_library") load("@rules_cc//cc:cc_test.bzl", "cc_test") cc_library( name = "cucumber_lib", srcs = [ "src/ContextManager.cpp", "src/CukeCommands.cpp", "src/CukeEngine.cpp", "src/CukeEngineImpl.cpp", "src/HookRegistrar.cpp", "src/Regex.cpp", "src/Scenario.cpp", "src/StepManager.cpp", "src/Table.cpp", "src/Tag.cpp", "src/connectors/wire/WireProtocol.cpp", "src/connectors/wire/WireProtocolCommands.cpp", "src/connectors/wire/WireServer.cpp", "src/drivers/GTestDriver.cpp", "src/drivers/GenericDriver.cpp", ], hdrs = glob(["include/**/*.hpp"]), includes = ["include"], linkopts = select({ "@platforms//os:linux": ["-lpthread"], "@platforms//os:macos": [], "//conditions:default": [], }), local_defines = [ "CUCUMBER_CPP_STATIC_DEFINE", "CUKE_ENABLE_GTEST=1", ], deps = [ "@asio", "@googletest//:gtest", "@nlohmann_json//:json", ], ) VERSION = module_version().split(".bcr.", 1)[0] cc_library( name = "cucumber-cpp", srcs = ["src/main.cpp"], local_defines = [ "CUKE_VERSION=\\\"{version}\\\"".format(version = VERSION), ], visibility = ["//visibility:public"], deps = [ ":cucumber_lib", "@tclap", ], alwayslink = True, ) cc_library( name = "test_library", hdrs = glob(["tests/utils/*.hpp"]), strip_include_prefix = "tests", deps = [":cucumber_lib"], ) cc_test( name = "unit_test", srcs = glob(["tests/unit/*.cpp"]), includes = ["include"], deps = [ ":cucumber_lib", ":test_library", "@googletest//:gtest_main", ], ) cc_test( name = "ContextHandling_integration_test", srcs = ["tests/integration/ContextHandlingTest.cpp"], includes = ["include"], deps = [ ":cucumber_lib", ":test_library", "@googletest//:gtest_main", ], ) cc_test( name = "HookRegistration_integration_test", srcs = ["tests/integration/HookRegistrationTest.cpp"], includes = ["include"], deps = [ ":cucumber_lib", ":test_library", "@googletest//:gtest_main", ], ) cc_test( name = "StepRegistration_integration_test", srcs = ["tests/integration/StepRegistrationTest.cpp"], includes = ["include"], deps = [ ":cucumber_lib", ":test_library", "@googletest//:gtest_main", ], ) cc_test( name = "TaggedHookRegistration_integration_test", srcs = ["tests/integration/TaggedHookRegistrationTest.cpp"], includes = ["include"], deps = [ ":cucumber_lib", ":test_library", "@googletest//:gtest_main", ], ) cc_test( name = "WireProtocol_integration_test", srcs = ["tests/integration/WireProtocolTest.cpp"], includes = ["include"], deps = [ ":cucumber_lib", ":test_library", "@googletest//:gtest_main", ], ) cc_test( name = "WireServer_integration_test", srcs = ["tests/integration/WireServerTest.cpp"], includes = ["include"], target_compatible_with = select({ "@platforms//os:windows": ["@platforms//:incompatible"], "//conditions:default": [], }), deps = [ ":cucumber_lib", ":test_library", "@googletest//:gtest_main", ], ) cc_test( name = "GTestDriver_integration_test", srcs = ["tests/integration/drivers/GTestDriverTest.cpp"], includes = ["include"], deps = [ ":cucumber_lib", ":test_library", "@googletest//:gtest_main", ], ) cc_test( name = "GenericDriver_integration_test", srcs = ["tests/integration/drivers/GenericDriverTest.cpp"], includes = ["include"], deps = [ ":cucumber_lib", ":test_library", "@googletest//:gtest_main", ], )