1# Copyright (C) 2023 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15"""Product definitions for Android's C/C++ toolchain."""
16
17load("@//build/bazel/tests/products:aosp_arm.variables.bzl", _soong_variables_arm = "variables")
18load("@//build/bazel/tests/products:aosp_arm64.variables.bzl", _soong_variables_arm64 = "variables")
19load("@//build/bazel/tests/products:aosp_x86.variables.bzl", _soong_variables_x86 = "variables")
20load("@//build/bazel/tests/products:aosp_x86_64.variables.bzl", _soong_variables_x86_64 = "variables")
21load("@bazel_skylib//lib:dicts.bzl", "dicts")
22
23products = {
24    "aosp_arm_for_testing": _soong_variables_arm,
25    "aosp_arm64_for_testing": _soong_variables_arm64,
26    "aosp_arm64_for_testing_custom_linker_alignment": dicts.add(
27        _soong_variables_arm64,
28        {"DeviceMaxPageSizeSupported": "16384"},
29    ),
30    "aosp_arm64_for_testing_no_compression": dicts.add(
31        _soong_variables_arm64,
32        {"CompressedApex": False},
33    ),
34    "aosp_arm64_for_testing_unbundled_build": dicts.add(
35        _soong_variables_arm64,
36        {"Unbundled_build": True},
37    ),
38    "aosp_arm64_for_testing_with_overrides_and_app_cert": dicts.add(
39        _soong_variables_arm64,
40        {
41            "ManifestPackageNameOverrides": [
42                "apex_certificate_label_with_overrides:another",
43                "package_name_override_from_config:another.package",
44            ],
45            "CertificateOverrides": [
46                "apex_certificate_label_with_overrides:apex_certificate_label_with_overrides_another_cert",
47            ],
48            "DefaultAppCertificate": "build/bazel/rules/apex/testdata/devkey",
49        },
50    ),
51    "aosp_arm64_for_testing_memtag_heap_exclude_path": dicts.add(
52        _soong_variables_arm64,
53        {"MemtagHeapAsyncIncludePaths": ["build/bazel/rules/cc"]},
54        {"MemtagHeapExcludePaths": ["build/bazel/rules/cc"]},
55    ),
56    "aosp_arm64_for_testing_memtag_heap_async_include_path": dicts.add(
57        _soong_variables_arm64,
58        {"MemtagHeapAsyncIncludePaths": ["build/bazel/rules/cc"]},
59    ),
60    "aosp_arm64_for_testing_memtag_heap_sync_include_path": dicts.add(
61        _soong_variables_arm64,
62        {"MemtagHeapSyncIncludePaths": ["build/bazel/rules/cc"]},
63    ),
64    "aosp_x86_for_testing": _soong_variables_x86,
65    "aosp_x86_for_testing_cfi_include_path": dicts.add(
66        _soong_variables_x86,
67        {"CFIIncludePaths": ["build/bazel/rules/cc"]},
68    ),
69    "aosp_x86_for_testing_cfi_exclude_path": dicts.add(
70        _soong_variables_x86,
71        {"CFIExcludePaths": ["build/bazel/rules/cc"]},
72    ),
73    "aosp_x86_64_for_testing": _soong_variables_x86_64,
74    "aosp_x86_64_for_testing_custom_linker_alignment": dicts.add(
75        _soong_variables_x86_64,
76        {"DeviceMaxPageSizeSupported": "65536"},
77    ),
78    "aosp_arm64_for_testing_min_sdk_version_override_tiramisu": dicts.add(
79        _soong_variables_arm64,
80        {"ApexGlobalMinSdkVersionOverride": "Tiramisu"},
81    ),
82    "aosp_arm64_for_testing_aconfig_release": dicts.add(
83        _soong_variables_arm64,
84        {"ReleaseAconfigFlagDefaultPermission": "READ_WRITE"},
85        {"ReleaseAconfigValueSets": ["//build/bazel/rules/aconfig:aconfig.test.value_set1", "//build/bazel/rules/aconfig:aconfig.test.value_set2"]},
86        {"ReleaseVersion": "34"},
87    ),
88}
89
90product_labels = [
91    "@//build/bazel/tests/products:" + name
92    for name in products.keys()
93]
94