1*6777b538SAndroid Build Coastguard Worker# -*- bazel-starlark -*- 2*6777b538SAndroid Build Coastguard Worker# Copyright 2023 The Chromium Authors 3*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 5*6777b538SAndroid Build Coastguard Worker"""Siso configuration for nasm/linux.""" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Workerload("@builtin//path.star", "path") 8*6777b538SAndroid Build Coastguard Workerload("@builtin//struct.star", "module") 9*6777b538SAndroid Build Coastguard Workerload("./config.star", "config") 10*6777b538SAndroid Build Coastguard Workerload("./nasm_scandeps.star", "nasm_scandeps") 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Workerdef __filegroups(ctx): 13*6777b538SAndroid Build Coastguard Worker return {} 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Workerdef __nasm(ctx, cmd): 16*6777b538SAndroid Build Coastguard Worker inputs = nasm_scandeps.scandeps(ctx, cmd) 17*6777b538SAndroid Build Coastguard Worker ctx.actions.fix(inputs = cmd.inputs + inputs) 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker__handlers = { 20*6777b538SAndroid Build Coastguard Worker "nasm": __nasm, 21*6777b538SAndroid Build Coastguard Worker} 22*6777b538SAndroid Build Coastguard Worker 23*6777b538SAndroid Build Coastguard Workerdef __step_config(ctx, step_config): 24*6777b538SAndroid Build Coastguard Worker remote_run = True # Turn this to False when you do file access trace. 25*6777b538SAndroid Build Coastguard Worker rules = [] 26*6777b538SAndroid Build Coastguard Worker for toolchain in ["", "clang_x64"]: 27*6777b538SAndroid Build Coastguard Worker nasm_path = path.join(toolchain, "nasm") 28*6777b538SAndroid Build Coastguard Worker rules.append({ 29*6777b538SAndroid Build Coastguard Worker "name": path.join("nasm", toolchain), 30*6777b538SAndroid Build Coastguard Worker "command_prefix": "python3 ../../build/gn_run_binary.py " + nasm_path, 31*6777b538SAndroid Build Coastguard Worker "inputs": [ 32*6777b538SAndroid Build Coastguard Worker "build/gn_run_binary.py", 33*6777b538SAndroid Build Coastguard Worker ctx.fs.canonpath("./" + nasm_path), 34*6777b538SAndroid Build Coastguard Worker ], 35*6777b538SAndroid Build Coastguard Worker "indirect_inputs": { 36*6777b538SAndroid Build Coastguard Worker "includes": ["*.asm"], 37*6777b538SAndroid Build Coastguard Worker }, 38*6777b538SAndroid Build Coastguard Worker "exclude_input_patterns": [ 39*6777b538SAndroid Build Coastguard Worker "*.stamp", 40*6777b538SAndroid Build Coastguard Worker ], 41*6777b538SAndroid Build Coastguard Worker "handler": "nasm", 42*6777b538SAndroid Build Coastguard Worker "remote": remote_run, 43*6777b538SAndroid Build Coastguard Worker # chromeos generates default.profraw? 44*6777b538SAndroid Build Coastguard Worker "ignore_extra_output_pattern": ".*default.profraw", 45*6777b538SAndroid Build Coastguard Worker "timeout": "2m", 46*6777b538SAndroid Build Coastguard Worker }) 47*6777b538SAndroid Build Coastguard Worker step_config["rules"].extend(rules) 48*6777b538SAndroid Build Coastguard Worker return step_config 49*6777b538SAndroid Build Coastguard Worker 50*6777b538SAndroid Build Coastguard Workernasm = module( 51*6777b538SAndroid Build Coastguard Worker "nasm", 52*6777b538SAndroid Build Coastguard Worker step_config = __step_config, 53*6777b538SAndroid Build Coastguard Worker filegroups = __filegroups, 54*6777b538SAndroid Build Coastguard Worker handlers = __handlers, 55*6777b538SAndroid Build Coastguard Worker) 56