blob: d1584641d75ab089ac09d8984b86ee14743c4050 [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
load("@rules_cc//cc:defs.bzl", "cc_binary")
# BDD wire server: links the C++ step definitions with cucumber-cpp's main(), which starts a
# wire-protocol server on port 3902. A Ruby Cucumber runner drives the shared
# basic_messaging.feature over the wire (cucumber-cpp v0.8.0 is wire-only). main() comes from
# @cucumber-cpp//:cucumber-cpp via alwayslink, gtest provides the assertion macros, and
# @iggy_cpp//:iggy-cpp provides the SDK (built from the sibling foreign/cpp module).
cc_binary(
name = "bdd_wire_server",
srcs = glob([
"features/step_definitions/*.cpp",
"features/step_definitions/*.hpp",
]),
copts = [
"-finput-charset=UTF-8",
"-fexec-charset=UTF-8",
"-Wall",
"-Wpedantic",
"-Werror",
"-Wextra",
"-g3",
"-O0",
"-fno-omit-frame-pointer",
"-DDEBUG",
],
linkopts = ["-g"],
includes = [
"features/step_definitions",
],
testonly = True,
deps = [
"@cucumber-cpp//:cucumber-cpp",
"@googletest//:gtest",
"@iggy_cpp//:iggy-cpp",
],
)