mirror of
https://github.com/kp2pml30/ya-build.git
synced 2026-02-17 00:14:42 +04:00
feat: add order-only dependencies
This commit is contained in:
parent
45f6d5fdf6
commit
8fc83bb59d
1 changed files with 8 additions and 2 deletions
10
ya-build
10
ya-build
|
|
@ -82,13 +82,14 @@ class NinjaPieceRaw
|
|||
end
|
||||
|
||||
class Target < NinjaPiece
|
||||
attr_reader :meta, :outputs, :inputs, :implicit_inputs, :implicit_outputs, :rule
|
||||
attr_reader :meta, :outputs, :inputs, :implicit_inputs, :order_only_inputs, :implicit_outputs, :rule
|
||||
|
||||
def initialize(outputs:, inputs:, rule:, implicit_inputs: [], implicit_outputs: [])
|
||||
def initialize(outputs:, inputs:, rule:, implicit_inputs: [], implicit_outputs: [], order_only_inputs: [])
|
||||
raise "invalid param" if not outputs.kind_of?(Array)
|
||||
raise "invalid param" if not inputs.kind_of?(Array)
|
||||
raise "invalid param" if not implicit_inputs.kind_of?(Array)
|
||||
raise "invalid param" if not implicit_outputs.kind_of?(Array)
|
||||
raise "invalid param" if not order_only_inputs.kind_of?(Array)
|
||||
raise "rule must be a string" if not rule.kind_of?(String)
|
||||
|
||||
@meta = OpenStruct.new
|
||||
|
|
@ -96,6 +97,7 @@ class Target < NinjaPiece
|
|||
@implicit_outputs = implicit_outputs
|
||||
@inputs = inputs.clone
|
||||
@outputs = outputs.clone
|
||||
@order_only_inputs = order_only_inputs.clone
|
||||
@rule = rule
|
||||
end
|
||||
|
||||
|
|
@ -113,6 +115,10 @@ class Target < NinjaPiece
|
|||
buf << " |"
|
||||
DefaultTargets::escape_args_to(buf, implicit_inputs)
|
||||
end
|
||||
if order_only_inputs.size > 0
|
||||
buf << " ||"
|
||||
DefaultTargets::escape_args_to(buf, order_only_inputs)
|
||||
end
|
||||
buf << "\n"
|
||||
cb = Proc.new { |k, v|
|
||||
buf << " " << k << " = " << v << "\n"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue