1*1b3f573fSAndroid Build Coastguard Worker"""Creates config_setting that allows selecting based on 'compiler' value.""" 2*1b3f573fSAndroid Build Coastguard Worker 3*1b3f573fSAndroid Build Coastguard Workerdef create_compiler_config_setting(name, value, visibility = None): 4*1b3f573fSAndroid Build Coastguard Worker # The "do_not_use_tools_cpp_compiler_present" attribute exists to 5*1b3f573fSAndroid Build Coastguard Worker # distinguish between older versions of Bazel that do not support 6*1b3f573fSAndroid Build Coastguard Worker # "@bazel_tools//tools/cpp:compiler" flag_value, and newer ones that do. 7*1b3f573fSAndroid Build Coastguard Worker # In the future, the only way to select on the compiler will be through 8*1b3f573fSAndroid Build Coastguard Worker # flag_values{"@bazel_tools//tools/cpp:compiler"} and the else branch can 9*1b3f573fSAndroid Build Coastguard Worker # be removed. 10*1b3f573fSAndroid Build Coastguard Worker if hasattr(cc_common, "do_not_use_tools_cpp_compiler_present"): 11*1b3f573fSAndroid Build Coastguard Worker native.config_setting( 12*1b3f573fSAndroid Build Coastguard Worker name = name, 13*1b3f573fSAndroid Build Coastguard Worker flag_values = { 14*1b3f573fSAndroid Build Coastguard Worker "@bazel_tools//tools/cpp:compiler": value, 15*1b3f573fSAndroid Build Coastguard Worker }, 16*1b3f573fSAndroid Build Coastguard Worker visibility = visibility, 17*1b3f573fSAndroid Build Coastguard Worker ) 18*1b3f573fSAndroid Build Coastguard Worker else: 19*1b3f573fSAndroid Build Coastguard Worker native.config_setting( 20*1b3f573fSAndroid Build Coastguard Worker name = name, 21*1b3f573fSAndroid Build Coastguard Worker values = {"compiler": value}, 22*1b3f573fSAndroid Build Coastguard Worker visibility = visibility, 23*1b3f573fSAndroid Build Coastguard Worker ) 24