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
|
end
|
||||||
|
|
||||||
class Target < NinjaPiece
|
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 outputs.kind_of?(Array)
|
||||||
raise "invalid param" if not inputs.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_inputs.kind_of?(Array)
|
||||||
raise "invalid param" if not implicit_outputs.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)
|
raise "rule must be a string" if not rule.kind_of?(String)
|
||||||
|
|
||||||
@meta = OpenStruct.new
|
@meta = OpenStruct.new
|
||||||
|
|
@ -96,6 +97,7 @@ class Target < NinjaPiece
|
||||||
@implicit_outputs = implicit_outputs
|
@implicit_outputs = implicit_outputs
|
||||||
@inputs = inputs.clone
|
@inputs = inputs.clone
|
||||||
@outputs = outputs.clone
|
@outputs = outputs.clone
|
||||||
|
@order_only_inputs = order_only_inputs.clone
|
||||||
@rule = rule
|
@rule = rule
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -113,6 +115,10 @@ class Target < NinjaPiece
|
||||||
buf << " |"
|
buf << " |"
|
||||||
DefaultTargets::escape_args_to(buf, implicit_inputs)
|
DefaultTargets::escape_args_to(buf, implicit_inputs)
|
||||||
end
|
end
|
||||||
|
if order_only_inputs.size > 0
|
||||||
|
buf << " ||"
|
||||||
|
DefaultTargets::escape_args_to(buf, order_only_inputs)
|
||||||
|
end
|
||||||
buf << "\n"
|
buf << "\n"
|
||||||
cb = Proc.new { |k, v|
|
cb = Proc.new { |k, v|
|
||||||
buf << " " << k << " = " << v << "\n"
|
buf << " " << k << " = " << v << "\n"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue