1*7594170eSAndroid Build Coastguard Workerdef _single_file_impl(ctx): 2*7594170eSAndroid Build Coastguard Worker return DefaultInfo( 3*7594170eSAndroid Build Coastguard Worker files = depset(ctx.files.src), 4*7594170eSAndroid Build Coastguard Worker ) 5*7594170eSAndroid Build Coastguard Worker 6*7594170eSAndroid Build Coastguard Workersingle_file = rule( 7*7594170eSAndroid Build Coastguard Worker implementation = _single_file_impl, 8*7594170eSAndroid Build Coastguard Worker attrs = { 9*7594170eSAndroid Build Coastguard Worker "src": attr.label( 10*7594170eSAndroid Build Coastguard Worker allow_single_file = True, 11*7594170eSAndroid Build Coastguard Worker ), 12*7594170eSAndroid Build Coastguard Worker }, 13*7594170eSAndroid Build Coastguard Worker) 14*7594170eSAndroid Build Coastguard Worker 15*7594170eSAndroid Build Coastguard Worker# fdo_profile is a temporary wrapper of native.fdo_profile to remove hard-coded 16*7594170eSAndroid Build Coastguard Worker# "<name>.afdo" pattern when getting the profile path in cc_library_shared macro 17*7594170eSAndroid Build Coastguard Worker# TODO(b/267229066): Remove fdo_profile after long-term solution for afdo is 18*7594170eSAndroid Build Coastguard Worker# implemented in Bazel 19*7594170eSAndroid Build Coastguard Workerdef fdo_profile(name, profile, **kwargs): 20*7594170eSAndroid Build Coastguard Worker single_file( 21*7594170eSAndroid Build Coastguard Worker name = name + "_file", 22*7594170eSAndroid Build Coastguard Worker src = profile, 23*7594170eSAndroid Build Coastguard Worker **kwargs 24*7594170eSAndroid Build Coastguard Worker ) 25*7594170eSAndroid Build Coastguard Worker native.fdo_profile( 26*7594170eSAndroid Build Coastguard Worker name = name, 27*7594170eSAndroid Build Coastguard Worker profile = name + "_file", 28*7594170eSAndroid Build Coastguard Worker **kwargs 29*7594170eSAndroid Build Coastguard Worker ) 30