# Global options
build -c opt \
      --incompatible_enable_cc_toolchain_resolution \
      --incompatible_require_linker_input_cc_api

# Aliases for user-defined flags
build --flag_alias=backend_config=@config//:backend_config
build --flag_alias=test_link_mode=@config//:test_link_mode
build --flag_alias=test_thread_mode=@config//:test_thread_mode
build --flag_alias=test_external_datasets=@config//:test_external_datasets
build --flag_alias=test_nightly=@config//:test_nightly
build --flag_alias=test_weekly=@config//:test_weekly
build --flag_alias=test_disable_fp64=@config//:test_disable_fp64
build --flag_alias=release_dpc=@config//:release_dpc
build --flag_alias=device=@config//:device
build --flag_alias=cpu=@config//:cpu
build --flag_alias=enable_assert=@config//:enable_assert

# Always pass this env variable to test rules, because SYCL
# OpenCL backend uses it to determine available devices
test --test_env=OCL_ICD_FILENAMES \
     --test_env=SYCL_DEVICE_FILTER

# This variable is needed for MPI
test --test_env=FI_PROVIDER_PATH

# This variable is used to determine location of datasets for testing
test --test_env=DAAL_DATASETS

# Flag for setting the test timeout to 15 minutes
test --test_timeout=900

# Configuration: 'public'
# Build & run all tests for public interface
build:public \
    --build_tag_filters="-private"

test:public \
    --test_tag_filters="-private"


# Configuration: 'private'
# Build & run all tests for internal functionality
build:private \
    --build_tag_filters="-public"

test:private \
    --test_tag_filters="-public"


# Configuration: 'host'
# Build & run all host tests
build:host \
    --build_tag_filters="host"

test:host \
    --test_tag_filters="host"


# Configuration: 'dpc'
# Build & run all DPC++ tests
build:dpc \
    --build_tag_filters="dpc"

test:dpc \
    --test_tag_filters="dpc"


# Configuration: 'host-public'
# Build & run all host tests for public interface
build:host-public \
    --build_tag_filters="host,-private"

test:host-public \
    --test_tag_filters="host,-private"


# Configuration: 'host-private'
# Build & run all host tests for internal functionality
build:host-private \
    --build_tag_filters="host,-public"

test:host-private \
    --test_tag_filters="host,-public"


# Configuration: 'dpc-public'
# Build & run all DPC++ tests for public interface
build:dpc-public \
    --build_tag_filters="dpc,-private"

test:dpc-public \
    --test_tag_filters="dpc,-private"


# Configuration: 'dpc-private'
# Build & run all DPC++ tests for internal functionality
build:dpc-private \
    --build_tag_filters="dpc,-public"

test:dpc-private \
    --test_tag_filters="dpc,-public"
