1*7594170eSAndroid Build Coastguard Worker# Copyright (C) 2021 The Android Open Source Project 2*7594170eSAndroid Build Coastguard Worker# 3*7594170eSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*7594170eSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*7594170eSAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*7594170eSAndroid Build Coastguard Worker# 7*7594170eSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*7594170eSAndroid Build Coastguard Worker# 9*7594170eSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*7594170eSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*7594170eSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*7594170eSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*7594170eSAndroid Build Coastguard Worker# limitations under the License. 14*7594170eSAndroid Build Coastguard Worker 15*7594170eSAndroid Build Coastguard Worker# Constants for cc_* rules. 16*7594170eSAndroid Build Coastguard Worker# To use, load the constants struct: 17*7594170eSAndroid Build Coastguard Worker# 18*7594170eSAndroid Build Coastguard Worker# load("//build/bazel/rules:cc_constants.bzl", "constants") 19*7594170eSAndroid Build Coastguard Worker# Supported hdr extensions in Soong. Keep this consistent with hdrExts in build/soong/cc/snapshot_utils.go 20*7594170eSAndroid Build Coastguard Worker_HDR_EXTS = ["h", "hh", "hpp", "hxx", "h++", "inl", "inc", "ipp", "h.generic"] 21*7594170eSAndroid Build Coastguard Worker_C_SRC_EXTS = ["c"] 22*7594170eSAndroid Build Coastguard Worker_CPP_SRC_EXTS = ["cc", "cpp"] 23*7594170eSAndroid Build Coastguard Worker_AS_SRC_EXTS = ["s", "S"] 24*7594170eSAndroid Build Coastguard Worker_SRC_EXTS = _C_SRC_EXTS + _CPP_SRC_EXTS + _AS_SRC_EXTS 25*7594170eSAndroid Build Coastguard Worker_ALL_EXTS = _SRC_EXTS + _HDR_EXTS 26*7594170eSAndroid Build Coastguard Worker_HDR_EXTS_WITH_DOT = ["." + ext for ext in _HDR_EXTS] 27*7594170eSAndroid Build Coastguard Worker_SRC_EXTS_WITH_DOT = ["." + ext for ext in _SRC_EXTS] 28*7594170eSAndroid Build Coastguard Worker_ALL_EXTS_WITH_DOT = ["." + ext for ext in _ALL_EXTS] 29*7594170eSAndroid Build Coastguard Worker 30*7594170eSAndroid Build Coastguard Workerconstants = struct( 31*7594170eSAndroid Build Coastguard Worker hdr_exts = _HDR_EXTS, 32*7594170eSAndroid Build Coastguard Worker c_src_exts = _C_SRC_EXTS, 33*7594170eSAndroid Build Coastguard Worker cpp_src_exts = _CPP_SRC_EXTS, 34*7594170eSAndroid Build Coastguard Worker as_src_exts = _AS_SRC_EXTS, 35*7594170eSAndroid Build Coastguard Worker src_exts = _SRC_EXTS, 36*7594170eSAndroid Build Coastguard Worker all_exts = _ALL_EXTS, 37*7594170eSAndroid Build Coastguard Worker hdr_dot_exts = _HDR_EXTS_WITH_DOT, 38*7594170eSAndroid Build Coastguard Worker src_dot_exts = _SRC_EXTS_WITH_DOT, 39*7594170eSAndroid Build Coastguard Worker all_dot_exts = _ALL_EXTS_WITH_DOT, 40*7594170eSAndroid Build Coastguard Worker) 41*7594170eSAndroid Build Coastguard Worker 42*7594170eSAndroid Build Coastguard Worker# Constants for use in cc transitions 43*7594170eSAndroid Build Coastguard Worker_FEATURES_ATTR_KEY = "features" 44*7594170eSAndroid Build Coastguard Worker_CLI_FEATURES_KEY = "//command_line_option:features" 45*7594170eSAndroid Build Coastguard Worker_CLI_PLATFORMS_KEY = "//command_line_option:platforms" 46*7594170eSAndroid Build Coastguard Worker_CFI_INCLUDE_PATHS_KEY = "@//build/bazel/product_config:cfi_include_paths" 47*7594170eSAndroid Build Coastguard Worker_CFI_EXCLUDE_PATHS_KEY = "@//build/bazel/product_config:cfi_exclude_paths" 48*7594170eSAndroid Build Coastguard Worker_ENABLE_CFI_KEY = "@//build/bazel/product_config:enable_cfi" 49*7594170eSAndroid Build Coastguard Worker_CFI_ASSEMBLY_KEY = "@//build/bazel/rules/cc:cfi_assembly" 50*7594170eSAndroid Build Coastguard Worker_MEMTAG_HEAP_ASYNC_INCLUDE_PATHS_KEY = "@//build/bazel/product_config:memtag_heap_async_include_paths" 51*7594170eSAndroid Build Coastguard Worker_MEMTAG_HEAP_SYNC_INCLUDE_PATHS_KEY = "@//build/bazel/product_config:memtag_heap_sync_include_paths" 52*7594170eSAndroid Build Coastguard Worker_MEMTAG_HEAP_EXCLUDE_PATHS_KEY = "@//build/bazel/product_config:memtag_heap_exclude_paths" 53*7594170eSAndroid Build Coastguard Worker 54*7594170eSAndroid Build Coastguard Worker# TODO: b/294868620 - This can be removed when completing the bug 55*7594170eSAndroid Build Coastguard Worker_SANITIZERS_ENABLED_KEY = "@//build/bazel/rules/cc:sanitizers_enabled_setting" 56*7594170eSAndroid Build Coastguard Worker 57*7594170eSAndroid Build Coastguard Workertransition_constants = struct( 58*7594170eSAndroid Build Coastguard Worker features_attr_key = _FEATURES_ATTR_KEY, 59*7594170eSAndroid Build Coastguard Worker cli_features_key = _CLI_FEATURES_KEY, 60*7594170eSAndroid Build Coastguard Worker cfi_include_paths_key = _CFI_INCLUDE_PATHS_KEY, 61*7594170eSAndroid Build Coastguard Worker cfi_exclude_paths_key = _CFI_EXCLUDE_PATHS_KEY, 62*7594170eSAndroid Build Coastguard Worker enable_cfi_key = _ENABLE_CFI_KEY, 63*7594170eSAndroid Build Coastguard Worker cli_platforms_key = _CLI_PLATFORMS_KEY, 64*7594170eSAndroid Build Coastguard Worker cfi_assembly_key = _CFI_ASSEMBLY_KEY, 65*7594170eSAndroid Build Coastguard Worker sanitizers_enabled_key = _SANITIZERS_ENABLED_KEY, 66*7594170eSAndroid Build Coastguard Worker memtag_heap_async_include_paths_key = _MEMTAG_HEAP_ASYNC_INCLUDE_PATHS_KEY, 67*7594170eSAndroid Build Coastguard Worker memtag_heap_sync_include_paths_key = _MEMTAG_HEAP_SYNC_INCLUDE_PATHS_KEY, 68*7594170eSAndroid Build Coastguard Worker memtag_heap_exclude_paths_key = _MEMTAG_HEAP_EXCLUDE_PATHS_KEY, 69*7594170eSAndroid Build Coastguard Worker) 70