1load("//cc/toolchains:feature_set.bzl", "cc_feature_set") 2load("//cc/toolchains/impl:external_feature.bzl", "cc_external_feature") 3 4package(default_visibility = ["//visibility:public"]) 5 6# See https://bazel.build/docs/cc-toolchain-config-reference#wellknown-features. 7 8cc_external_feature( 9 name = "legacy_compile_flags", 10 feature_name = "legacy_compile_flags", 11 overridable = True, 12) 13 14cc_external_feature( 15 name = "default_compile_flags", 16 feature_name = "default_compile_flags", 17 overridable = True, 18) 19 20cc_external_feature( 21 name = "dependency_file", 22 feature_name = "dependency_file", 23 overridable = True, 24) 25 26cc_external_feature( 27 name = "pic", 28 feature_name = "pic", 29 overridable = True, 30) 31 32cc_external_feature( 33 name = "preprocessor_defines", 34 feature_name = "preprocessor_defines", 35 overridable = True, 36) 37 38cc_external_feature( 39 name = "includes", 40 feature_name = "includes", 41 overridable = True, 42) 43 44cc_external_feature( 45 name = "include_paths", 46 feature_name = "include_paths", 47 overridable = True, 48) 49 50cc_external_feature( 51 name = "fdo_instrument", 52 feature_name = "fdo_instrument", 53 overridable = True, 54) 55 56cc_external_feature( 57 name = "fdo_optimize", 58 feature_name = "fdo_optimize", 59 overridable = True, 60) 61 62cc_external_feature( 63 name = "cs_fdo_instrument", 64 feature_name = "cs_fdo_instrument", 65 overridable = True, 66) 67 68cc_external_feature( 69 name = "cs_fdo_optimize", 70 feature_name = "cs_fdo_optimize", 71 overridable = True, 72) 73 74cc_external_feature( 75 name = "fdo_prefetch_hints", 76 feature_name = "fdo_prefetch_hints", 77 overridable = True, 78) 79 80cc_external_feature( 81 name = "autofdo", 82 feature_name = "autofdo", 83 overridable = True, 84) 85 86cc_external_feature( 87 name = "build_interface_libraries", 88 feature_name = "build_interface_libraries", 89 overridable = True, 90) 91 92cc_external_feature( 93 name = "dynamic_library_linker_tool", 94 feature_name = "dynamic_library_linker_tool", 95 overridable = True, 96) 97 98cc_external_feature( 99 name = "shared_flag", 100 deprecation = "Use //cc/toolchains/args/shared_flag instead", 101 feature_name = "shared_flag", 102 overridable = True, 103) 104 105cc_external_feature( 106 name = "linkstamps", 107 feature_name = "linkstamps", 108 overridable = True, 109) 110 111cc_external_feature( 112 name = "output_execpath_flags", 113 feature_name = "output_execpath_flags", 114 overridable = True, 115) 116 117cc_external_feature( 118 name = "runtime_library_search_directories", 119 deprecation = "Use //cc/toolchains/args/runtime_library_search_directories instead", 120 feature_name = "runtime_library_search_directories", 121 overridable = True, 122) 123 124cc_external_feature( 125 name = "library_search_directories", 126 feature_name = "library_search_directories", 127 overridable = True, 128) 129 130cc_external_feature( 131 name = "archiver_flags", 132 deprecation = "Use //cc/toolchains/args/archiver_flags instead", 133 feature_name = "archiver_flags", 134 overridable = True, 135) 136 137cc_external_feature( 138 name = "libraries_to_link", 139 deprecation = "Use //cc/toolchains/args/libraries_to_link instead", 140 feature_name = "libraries_to_link", 141 overridable = True, 142) 143 144cc_external_feature( 145 name = "force_pic_flags", 146 deprecation = "Use //cc/toolchains/args/force_pic_flags instead", 147 feature_name = "force_pic_flags", 148 overridable = True, 149) 150 151cc_external_feature( 152 name = "user_link_flags", 153 feature_name = "user_link_flags", 154 overridable = True, 155) 156 157cc_external_feature( 158 name = "legacy_link_flags", 159 feature_name = "legacy_link_flags", 160 overridable = True, 161) 162 163cc_external_feature( 164 name = "static_libgcc", 165 feature_name = "static_libgcc", 166 overridable = True, 167) 168 169cc_external_feature( 170 name = "fission_support", 171 feature_name = "fission_support", 172 overridable = True, 173) 174 175cc_external_feature( 176 name = "strip_debug_symbols", 177 feature_name = "strip_debug_symbols", 178 overridable = True, 179) 180 181cc_external_feature( 182 name = "coverage", 183 feature_name = "coverage", 184 overridable = True, 185) 186 187cc_external_feature( 188 name = "llvm_coverage_map_format", 189 feature_name = "llvm_coverage_map_format", 190 overridable = True, 191) 192 193cc_external_feature( 194 name = "gcc_coverage_map_format", 195 feature_name = "gcc_coverage_map_format", 196 overridable = True, 197) 198 199cc_external_feature( 200 name = "fully_static_link", 201 feature_name = "fully_static_link", 202 overridable = True, 203) 204 205cc_external_feature( 206 name = "user_compile_flags", 207 feature_name = "user_compile_flags", 208 overridable = True, 209) 210 211# Instead of the "sysroot" legacy flag, use the cc_sysroot macro in 212# //cc/toolchains/args:sysroot.bzl 213 214cc_external_feature( 215 name = "unfiltered_compile_flags", 216 feature_name = "unfiltered_compile_flags", 217 overridable = True, 218) 219 220cc_external_feature( 221 name = "linker_param_file", 222 deprecation = "Use //cc/toolchains/args/linker_param_file instead", 223 feature_name = "linker_param_file", 224 overridable = True, 225) 226 227cc_external_feature( 228 name = "compiler_input_flags", 229 feature_name = "compiler_input_flags", 230 overridable = True, 231) 232 233cc_external_feature( 234 name = "compiler_output_flags", 235 feature_name = "compiler_output_flags", 236 overridable = True, 237) 238 239cc_feature_set( 240 name = "all_legacy_builtin_features", 241 all_of = [ 242 ":legacy_compile_flags", 243 ":default_compile_flags", 244 ":dependency_file", 245 ":pic", 246 ":preprocessor_defines", 247 ":includes", 248 ":include_paths", 249 ":fdo_instrument", 250 ":fdo_optimize", 251 ":cs_fdo_instrument", 252 ":cs_fdo_optimize", 253 ":fdo_prefetch_hints", 254 ":autofdo", 255 ":build_interface_libraries", 256 ":dynamic_library_linker_tool", 257 ":shared_flag", 258 ":linkstamps", 259 ":output_execpath_flags", 260 ":runtime_library_search_directories", 261 ":library_search_directories", 262 ":archiver_flags", 263 ":libraries_to_link", 264 ":force_pic_flags", 265 ":user_link_flags", 266 ":legacy_link_flags", 267 ":static_libgcc", 268 ":fission_support", 269 ":strip_debug_symbols", 270 ":coverage", 271 ":llvm_coverage_map_format", 272 ":gcc_coverage_map_format", 273 ":fully_static_link", 274 ":user_compile_flags", 275 ":unfiltered_compile_flags", 276 ":linker_param_file", 277 ":compiler_input_flags", 278 ":compiler_output_flags", 279 ], 280 visibility = ["//cc/toolchains/features:__pkg__"], 281) 282