1*481dde66SAndroid Build Coastguard Worker"""Provides a fake @fuchsia_sdk implementation that's used when the real one isn't available. 2*481dde66SAndroid Build Coastguard Worker 3*481dde66SAndroid Build Coastguard WorkerThis is needed since bazel queries on targets that depend on //:gtest (eg: 4*481dde66SAndroid Build Coastguard Worker`bazel query "deps(set(//googletest/test:gtest_all_test))"`) will fail if @fuchsia_sdk is not 5*481dde66SAndroid Build Coastguard Workerdefined when bazel is evaluating the transitive closure of the query target. 6*481dde66SAndroid Build Coastguard Worker 7*481dde66SAndroid Build Coastguard WorkerSee https://github.com/google/googletest/issues/4472. 8*481dde66SAndroid Build Coastguard Worker""" 9*481dde66SAndroid Build Coastguard Worker 10*481dde66SAndroid Build Coastguard Workerdef _fake_fuchsia_sdk_impl(repo_ctx): 11*481dde66SAndroid Build Coastguard Worker for stub_target in repo_ctx.attr._stub_build_targets: 12*481dde66SAndroid Build Coastguard Worker stub_package = stub_target 13*481dde66SAndroid Build Coastguard Worker stub_target_name = stub_target.split("/")[-1] 14*481dde66SAndroid Build Coastguard Worker repo_ctx.file("%s/BUILD.bazel" % stub_package, """ 15*481dde66SAndroid Build Coastguard Workerfilegroup( 16*481dde66SAndroid Build Coastguard Worker name = "%s", 17*481dde66SAndroid Build Coastguard Worker) 18*481dde66SAndroid Build Coastguard Worker""" % stub_target_name) 19*481dde66SAndroid Build Coastguard Worker 20*481dde66SAndroid Build Coastguard Workerfake_fuchsia_sdk = repository_rule( 21*481dde66SAndroid Build Coastguard Worker doc = "Used to create a fake @fuchsia_sdk repository with stub build targets.", 22*481dde66SAndroid Build Coastguard Worker implementation = _fake_fuchsia_sdk_impl, 23*481dde66SAndroid Build Coastguard Worker attrs = { 24*481dde66SAndroid Build Coastguard Worker "_stub_build_targets": attr.string_list( 25*481dde66SAndroid Build Coastguard Worker doc = "The stub build targets to initialize.", 26*481dde66SAndroid Build Coastguard Worker default = [ 27*481dde66SAndroid Build Coastguard Worker "pkg/fdio", 28*481dde66SAndroid Build Coastguard Worker "pkg/syslog", 29*481dde66SAndroid Build Coastguard Worker "pkg/zx", 30*481dde66SAndroid Build Coastguard Worker ], 31*481dde66SAndroid Build Coastguard Worker ), 32*481dde66SAndroid Build Coastguard Worker }, 33*481dde66SAndroid Build Coastguard Worker) 34