
# These values are ignored, they are here just to be referenced below.
constants:
  num_bindings_column: &num_bindings_column
    dimension: "num_bindings"
    pretty_printer:
      format_string: "%s bindings"

  num_classes_column: &num_classes_column
    dimension: "num_classes"
    pretty_printer:
      format_string: "%s classes"

  compiler_name_row: &compiler_name_row
    dimension: "compiler_name"
    pretty_printer:
      format_string: "%s"

allowed_unused_benchmarks:
  - new_delete_run_time
  - fruit_single_file_compile_time

allowed_unused_benchmark_results:
  - total_max_ram_usage

tables:

  # Fruit vs Boost.DI and "no DI"

  - name: "Compile time (Clang)"
    benchmark_filter:
      benchmark_generation_flags: []
      additional_cmake_args: []
      compiler: "clang++-10"
      name: [
        "fruit_compile_time",
        "boost_di_compile_time",
        "simple_di_compile_time",
        "simple_di_with_interfaces_compile_time",
        "simple_di_with_interfaces_and_new_delete_compile_time",
      ]
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_compile_time": "Fruit"
          "boost_di_compile_time": "Boost.DI"
          "simple_di_compile_time": "Simple DI"
          "simple_di_with_interfaces_compile_time": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_compile_time": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "compile_time"
      unit: "seconds"

  - name: "Compile time (GCC)"
    benchmark_filter:
      benchmark_generation_flags: []
      additional_cmake_args: []
      compiler: "g++-9"
      name: [
        "fruit_compile_time",
        "boost_di_compile_time",
        "simple_di_compile_time",
        "simple_di_with_interfaces_compile_time",
        "simple_di_with_interfaces_and_new_delete_compile_time",
      ]
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_compile_time": "Fruit"
          "boost_di_compile_time": "Boost.DI"
          "simple_di_compile_time": "Simple DI"
          "simple_di_with_interfaces_compile_time": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_compile_time": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "compile_time"
      unit: "seconds"

  - name: "Incremental compile time (Clang)"
    benchmark_filter:
      benchmark_generation_flags: []
      additional_cmake_args: []
      compiler: "clang++-10"
      name: [
        "fruit_incremental_compile_time",
        "boost_di_incremental_compile_time",
        "simple_di_incremental_compile_time",
        "simple_di_with_interfaces_incremental_compile_time",
        "simple_di_with_interfaces_and_new_delete_incremental_compile_time",
      ]
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_incremental_compile_time": "Fruit"
          "boost_di_incremental_compile_time": "Boost.DI"
          "simple_di_incremental_compile_time": "Simple DI"
          "simple_di_with_interfaces_incremental_compile_time": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_incremental_compile_time": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "incremental_compile_time"
      unit: "seconds"

  - name: "Incremental compile time (GCC)"
    benchmark_filter:
      benchmark_generation_flags: []
      additional_cmake_args: []
      compiler: "g++-9"
      name: [
        "fruit_incremental_compile_time",
        "boost_di_incremental_compile_time",
        "simple_di_incremental_compile_time",
        "simple_di_with_interfaces_incremental_compile_time",
        "simple_di_with_interfaces_and_new_delete_incremental_compile_time",
      ]
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_incremental_compile_time": "Fruit"
          "boost_di_incremental_compile_time": "Boost.DI"
          "simple_di_incremental_compile_time": "Simple DI"
          "simple_di_with_interfaces_incremental_compile_time": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_incremental_compile_time": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "incremental_compile_time"
      unit: "seconds"

  - name: "Compile memory (Clang)"
    benchmark_filter:
      benchmark_generation_flags: []
      additional_cmake_args: []
      compiler: "clang++-10"
      name: [
        "fruit_compile_memory",
        "boost_di_compile_memory",
        "simple_di_compile_memory",
        "simple_di_with_interfaces_compile_memory",
        "simple_di_with_interfaces_and_new_delete_compile_memory",
      ]
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_compile_memory": "Fruit"
          "boost_di_compile_memory": "Boost.DI"
          "simple_di_compile_memory": "Simple DI"
          "simple_di_with_interfaces_compile_memory": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_compile_memory": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "max_ram_usage"
      unit: "bytes"

  - name: "Compile memory (GCC)"
    benchmark_filter:
      benchmark_generation_flags: []
      additional_cmake_args: []
      compiler: "g++-9"
      name: [
        "fruit_compile_memory",
        "boost_di_compile_memory",
        "simple_di_compile_memory",
        "simple_di_with_interfaces_compile_memory",
        "simple_di_with_interfaces_and_new_delete_compile_memory",
      ]
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_compile_memory": "Fruit"
          "boost_di_compile_memory": "Boost.DI"
          "simple_di_compile_memory": "Simple DI"
          "simple_di_with_interfaces_compile_memory": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_compile_memory": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "max_ram_usage"
      unit: "bytes"

  - name: "Startup time (Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      additional_cmake_args: []
      name: [
        "fruit_startup_time",
        "boost_di_startup_time",
        "simple_di_startup_time",
        "simple_di_with_interfaces_startup_time",
        "simple_di_with_interfaces_and_new_delete_startup_time",
      ]
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_startup_time": "Fruit"
          "boost_di_startup_time": "Boost.DI"
          "simple_di_startup_time": "Simple DI"
          "simple_di_with_interfaces_startup_time": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_startup_time": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "startup_time"
      unit: "seconds"

  - name: "Startup time (GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      additional_cmake_args: []
      name: [
        "fruit_startup_time",
        "boost_di_startup_time",
        "simple_di_startup_time",
        "simple_di_with_interfaces_startup_time",
        "simple_di_with_interfaces_and_new_delete_startup_time",
      ]
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_startup_time": "Fruit"
          "boost_di_startup_time": "Boost.DI"
          "simple_di_startup_time": "Simple DI"
          "simple_di_with_interfaces_startup_time": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_startup_time": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "startup_time"
      unit: "seconds"

  - name: "Startup time with normalized component (Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      additional_cmake_args: []
      name: [
        "fruit_startup_time_with_normalized_component",
        "boost_di_startup_time_with_normalized_component",
        "simple_di_startup_time_with_normalized_component",
        "simple_di_with_interfaces_startup_time_with_normalized_component",
        "simple_di_with_interfaces_and_new_delete_startup_time_with_normalized_component",
      ]
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_startup_time_with_normalized_component": "Fruit"
          "boost_di_startup_time_with_normalized_component": "Boost.DI"
          "simple_di_startup_time_with_normalized_component": "Simple DI"
          "simple_di_with_interfaces_startup_time_with_normalized_component": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_startup_time_with_normalized_component": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "fruit_startup_time_with_normalized_component"
      unit: "seconds"

  - name: "Startup time with normalized component (GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      additional_cmake_args: []
      name: [
        "fruit_startup_time_with_normalized_component",
        "boost_di_startup_time_with_normalized_component",
        "simple_di_startup_time_with_normalized_component",
        "simple_di_with_interfaces_startup_time_with_normalized_component",
        "simple_di_with_interfaces_and_new_delete_startup_time_with_normalized_component",
      ]
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_startup_time_with_normalized_component": "Fruit"
          "boost_di_startup_time_with_normalized_component": "Boost.DI"
          "simple_di_startup_time_with_normalized_component": "Simple DI"
          "simple_di_with_interfaces_startup_time_with_normalized_component": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_startup_time_with_normalized_component": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "fruit_startup_time_with_normalized_component"
      unit: "seconds"

  - name: "Component normalization time (Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      additional_cmake_args: []
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_run_time": "Fruit"
          "boost_di_run_time": "Boost.DI"
          "simple_di_incremental_run_time": "Simple DI"
          "simple_di_with_interfaces_incremental_run_time": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_incremental_run_time": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "componentNormalizationTime"
      unit: "seconds"

  - name: "Component normalization time (GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      additional_cmake_args: []
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_run_time": "Fruit"
          "boost_di_run_time": "Boost.DI"
          "simple_di_incremental_run_time": "Simple DI"
          "simple_di_with_interfaces_incremental_run_time": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_incremental_run_time": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "componentNormalizationTime"
      unit: "seconds"

  - name: "Per-request time (Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      additional_cmake_args: []
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_run_time": "Fruit"
          "boost_di_run_time": "Boost.DI"
          "simple_di_run_time": "Simple DI"
          "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "Total per request"
      unit: "seconds"

  - name: "Per-request time (GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      additional_cmake_args: []
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_run_time": "Fruit"
          "boost_di_run_time": "Boost.DI"
          "simple_di_run_time": "Simple DI"
          "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "Total per request"
      unit: "seconds"

  - name: "Executable size (stripped, Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      additional_cmake_args: []
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_executable_size": "Fruit"
          "boost_di_executable_size": "Boost.DI"
          "simple_di_executable_size": "Simple DI"
          "simple_di_with_interfaces_executable_size": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_executable_size": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "num_bytes"
      unit: "bytes"

  - name: "Executable size (stripped, GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      additional_cmake_args: []
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_executable_size": "Fruit"
          "boost_di_executable_size": "Boost.DI"
          "simple_di_executable_size": "Simple DI"
          "simple_di_with_interfaces_executable_size": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_executable_size": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "num_bytes"
      unit: "bytes"

  - name: "Executable size (stripped, no exceptions/RTTI, Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      additional_cmake_args: ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_executable_size_without_exceptions_and_rtti": "Fruit"
          "boost_di_executable_size_without_exceptions_and_rtti": "Boost.DI"
          "simple_di_executable_size_without_exceptions_and_rtti": "Simple DI"
          "simple_di_with_interfaces_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "num_bytes"
      unit: "bytes"

  - name: "Executable size (stripped, no exceptions/RTTI, GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      additional_cmake_args: ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']
    rows:
      dimension: "name"
      pretty_printer:
        fixed_map:
          "fruit_executable_size_without_exceptions_and_rtti": "Fruit"
          "boost_di_executable_size_without_exceptions_and_rtti": "Boost.DI"
          "simple_di_executable_size_without_exceptions_and_rtti": "Simple DI"
          "simple_di_with_interfaces_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces"
          "simple_di_with_interfaces_and_new_delete_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces, new/delete"
    columns: *num_classes_column
    results:
      dimension: "num_bytes"
      unit: "bytes"

  # Fruit: performance by default and with various compiler options.

  - name: "Fruit compile time (Clang)"
    benchmark_filter:
      benchmark_generation_flags: []
      compiler: "clang++-10"
      name: "fruit_compile_time"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "compile_time"
      unit: "seconds"

  - name: "Fruit compile time (GCC)"
    benchmark_filter:
      benchmark_generation_flags: []
      compiler: "g++-9"
      name: "fruit_compile_time"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "compile_time"
      unit: "seconds"

  - name: "Fruit incremental compile time (Clang)"
    benchmark_filter:
      benchmark_generation_flags: []
      compiler: "clang++-10"
      name: "fruit_incremental_compile_time"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "incremental_compile_time"
      unit: "seconds"

  - name: "Fruit incremental compile time (GCC)"
    benchmark_filter:
      benchmark_generation_flags: []
      compiler: "g++-9"
      name: "fruit_incremental_compile_time"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "incremental_compile_time"
      unit: "seconds"

  - name: "Fruit compile memory (Clang)"
    benchmark_filter:
      benchmark_generation_flags: []
      compiler: "clang++-10"
      name: "fruit_compile_memory"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "max_ram_usage"
      unit: "bytes"

  - name: "Fruit compile memory (GCC)"
    benchmark_filter:
      benchmark_generation_flags: []
      compiler: "g++-9"
      name: "fruit_compile_memory"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "max_ram_usage"
      unit: "bytes"

  - name: "Fruit startup time (Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      name: "fruit_startup_time"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "startup_time"
      unit: "seconds"

  - name: "Fruit startup time (GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      name: "fruit_startup_time"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "startup_time"
      unit: "seconds"

  - name: "Fruit startup time with normalized component (Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      name: "fruit_startup_time_with_normalized_component"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "startup_time"
      unit: "seconds"

  - name: "Fruit startup time with normalized component (GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      name: "fruit_startup_time_with_normalized_component"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "startup_time"
      unit: "seconds"

  - name: "Fruit component normalization time (Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "componentNormalizationTime"
      unit: "seconds"

  - name: "Fruit component normalization time (GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "componentNormalizationTime"
      unit: "seconds"

  - name: "Fruit per-request time (Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      name: "fruit_run_time"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "Total per request"
      unit: "seconds"

  - name: "Fruit per-request time (GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      name: "fruit_run_time"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "Total per request"
      unit: "seconds"

  - name: "Fruit executable size (stripped, Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      name: "fruit_executable_size"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "num_bytes"
      unit: "bytes"

  - name: "Fruit executable size (stripped, GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      name: "fruit_executable_size"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple []: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False"]: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False"]: "without boost"
    columns: *num_classes_column
    results:
      dimension: "num_bytes"
      unit: "bytes"

  - name: "Fruit executable size (stripped, no exceptions/RTTI, Clang)"
    benchmark_filter:
      compiler: "clang++-10"
      benchmark_generation_flags: []
      name: "fruit_executable_size_without_exceptions_and_rtti"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False", '-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False", '-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']: "without boost"
    columns: *num_classes_column
    results:
      dimension: "num_bytes"
      unit: "bytes"

  - name: "Fruit executable size (stripped, no exceptions/RTTI, GCC)"
    benchmark_filter:
      compiler: "g++-9"
      benchmark_generation_flags: []
      name: "fruit_executable_size_without_exceptions_and_rtti"
    rows:
      dimension: "additional_cmake_args"
      pretty_printer:
        fixed_map:
          !!python/tuple ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']: "(defaults)"
          !!python/tuple ["-DBUILD_SHARED_LIBS=False", '-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']: "statically linked"
          !!python/tuple ["-DFRUIT_USES_BOOST=False", '-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']: "without boost"
    columns: *num_classes_column
    results:
      dimension: "num_bytes"
      unit: "bytes"
