# Copyright 2016 Google Inc. All Rights Reserved.
#
# Licensed 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.

global:
  max_runs: 20
  max_hours_per_combination: 2

# These values are ignored, they are here just to be referenced below.
constants:
  compilers: &compilers
    - "g++-9"
    - "clang++-10"
  num_classes: &num_classes
    - 100

benchmarks:
  - name: "fruit_single_file_compile_time"
    num_bindings:
      - 20
      - 80
    compiler: *compilers
    cxx_std: "c++11"
    additional_cmake_args:
      - []
    benchmark_generation_flags:
      - []

  - name:
      - "fruit_compile_time"
      - "fruit_compile_memory"
      - "fruit_incremental_compile_time"
      - "fruit_run_time"
      - "fruit_startup_time"
      - "fruit_startup_time_with_normalized_component"
      - "fruit_executable_size"
    loop_factor: 1.0
    num_classes: *num_classes
    compiler: *compilers
    cxx_std: "c++11"
    additional_cmake_args:
      - []
    benchmark_generation_flags:
      - []

  - name:
      - "fruit_executable_size_without_exceptions_and_rtti"
    loop_factor: 1.0
    num_classes: *num_classes
    compiler: *compilers
    cxx_std: "c++11"
    additional_cmake_args:
      - ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']
    benchmark_generation_flags:
      - []
