1*8975f5c5SAndroid Build Coastguard Worker# -*- bazel-starlark -*- 2*8975f5c5SAndroid Build Coastguard Worker# Copyright 2024 The Chromium Authors 3*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file. 5*8975f5c5SAndroid Build Coastguard Worker"""Siso configuration for Fuchsia builds.""" 6*8975f5c5SAndroid Build Coastguard Worker 7*8975f5c5SAndroid Build Coastguard Workerload("@builtin//lib/gn.star", "gn") 8*8975f5c5SAndroid Build Coastguard Workerload("@builtin//struct.star", "module") 9*8975f5c5SAndroid Build Coastguard Workerload("./gn_logs.star", "gn_logs") 10*8975f5c5SAndroid Build Coastguard Worker 11*8975f5c5SAndroid Build Coastguard Workerdef __enabled(ctx): 12*8975f5c5SAndroid Build Coastguard Worker if "args.gn" in ctx.metadata: 13*8975f5c5SAndroid Build Coastguard Worker gn_args = gn.args(ctx) 14*8975f5c5SAndroid Build Coastguard Worker if gn_args.get("target_os") == '"fuchsia"': 15*8975f5c5SAndroid Build Coastguard Worker return True 16*8975f5c5SAndroid Build Coastguard Worker return False 17*8975f5c5SAndroid Build Coastguard Worker 18*8975f5c5SAndroid Build Coastguard Workerdef __filegroups(ctx): 19*8975f5c5SAndroid Build Coastguard Worker gn_logs_data = gn_logs.read(ctx) 20*8975f5c5SAndroid Build Coastguard Worker fuchsia_arch_root = gn_logs_data.get("fuchsia_arch_root") 21*8975f5c5SAndroid Build Coastguard Worker fuchsia_legacy_arch_root = gn_logs_data.get("fuchsia_legacy_arch_root") 22*8975f5c5SAndroid Build Coastguard Worker if not fuchsia_arch_root or not fuchsia_legacy_arch_root: 23*8975f5c5SAndroid Build Coastguard Worker print("could not find fuchsia_arch_root or fuchsia_legacy_arch_root from gn_logs.txt") 24*8975f5c5SAndroid Build Coastguard Worker return {} 25*8975f5c5SAndroid Build Coastguard Worker fg = { 26*8975f5c5SAndroid Build Coastguard Worker # The legacy directory is still used. But, will be removed soon. 27*8975f5c5SAndroid Build Coastguard Worker fuchsia_legacy_arch_root + "/lib:libs": { 28*8975f5c5SAndroid Build Coastguard Worker "type": "glob", 29*8975f5c5SAndroid Build Coastguard Worker "includes": ["*.o", "*.a", "*.so"], 30*8975f5c5SAndroid Build Coastguard Worker }, 31*8975f5c5SAndroid Build Coastguard Worker fuchsia_arch_root + "/sysroot:headers": { 32*8975f5c5SAndroid Build Coastguard Worker "type": "glob", 33*8975f5c5SAndroid Build Coastguard Worker "includes": ["*.h", "*.inc", "*.o"], 34*8975f5c5SAndroid Build Coastguard Worker }, 35*8975f5c5SAndroid Build Coastguard Worker fuchsia_arch_root + "/sysroot:link": { 36*8975f5c5SAndroid Build Coastguard Worker "type": "glob", 37*8975f5c5SAndroid Build Coastguard Worker "includes": ["*.o", "*.a", "*.so"], 38*8975f5c5SAndroid Build Coastguard Worker }, 39*8975f5c5SAndroid Build Coastguard Worker fuchsia_arch_root + "/lib:link": { 40*8975f5c5SAndroid Build Coastguard Worker "type": "glob", 41*8975f5c5SAndroid Build Coastguard Worker "includes": ["*.o", "*.a", "*.so"], 42*8975f5c5SAndroid Build Coastguard Worker }, 43*8975f5c5SAndroid Build Coastguard Worker } 44*8975f5c5SAndroid Build Coastguard Worker return fg 45*8975f5c5SAndroid Build Coastguard Worker 46*8975f5c5SAndroid Build Coastguard Workerfuchsia = module( 47*8975f5c5SAndroid Build Coastguard Worker "fuchsia", 48*8975f5c5SAndroid Build Coastguard Worker enabled = __enabled, 49*8975f5c5SAndroid Build Coastguard Worker filegroups = __filegroups, 50*8975f5c5SAndroid Build Coastguard Worker) 51