diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2018-11-16 14:00:07 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2018-11-16 14:00:07 +0200 |
commit | 655121741560d62c1ae82c13a9d2aad18f130603 (patch) | |
tree | 6b14cd73073a0f2d1ad3ad46cc8d157a838beba9 /tests | |
parent | 17609d9831e592f5985ed1bfb1ef59f712025ae9 (diff) |
Implement support for dependency chains
Now instead of:
./: exe{foo}
exe{foo}: cxx{*}
We can write:
./: exe{foo}: cxx{*}
Or even:
./: exe{foo}: libue{foo}: cxx{*}
This can be combined with prerequisite-specific variables (which naturally
only apply to the last set of prerequisites in the chain):
./: exe{foo}: libue{foo}: bin.whole = false
Diffstat (limited to 'tests')
-rw-r--r-- | tests/dependency/chain/buildfile | 5 | ||||
-rw-r--r-- | tests/dependency/chain/testscript | 39 | ||||
-rw-r--r-- | tests/variable/prerequisite-specific/testscript | 13 |
3 files changed, 53 insertions, 4 deletions
diff --git a/tests/dependency/chain/buildfile b/tests/dependency/chain/buildfile new file mode 100644 index 0000000..a27681e --- /dev/null +++ b/tests/dependency/chain/buildfile @@ -0,0 +1,5 @@ +# file : tests/dependency/chain/buildfile +# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +./: testscript $b diff --git a/tests/dependency/chain/testscript b/tests/dependency/chain/testscript new file mode 100644 index 0000000..09ea4a6 --- /dev/null +++ b/tests/dependency/chain/testscript @@ -0,0 +1,39 @@ +# file : tests/dependency/chain/testscript +# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +.include ../../common.testscript + +: basic +: +$* <<EOI 2>>/~%EOE% +./: dir{x}: dir{a} +dump dir{x} +EOI +<stdin>:2:1: dump: +% .+/dir\{x/\}: .+:dir\{a/\}% +EOE + +: long +: +$* <<EOI 2>>/~%EOE% +./: dir{x}: dir{y}: dir{a} +dump dir{x} dir{y} +EOI +<stdin>:2:1: dump: +% .+/dir\{x/\}: .+:dir\{y/\}% + +% .+/dir\{y/\}: .+:dir\{a/\}% +EOE + +: multiple +: +$* <<EOI 2>>/~%EOE% +./: dir{x} dir{y}: dir{a} dir{b} +dump dir{x} dir{y} +EOI +<stdin>:2:1: dump: +% .+/dir\{x/\}: .+:dir\{a/\} .+:dir\{b/\}% + +% .+/dir\{y/\}: .+:dir\{a/\} .+:dir\{b/\}% +EOE diff --git a/tests/variable/prerequisite-specific/testscript b/tests/variable/prerequisite-specific/testscript index 1c7e7bd..ef14cfc 100644 --- a/tests/variable/prerequisite-specific/testscript +++ b/tests/variable/prerequisite-specific/testscript @@ -62,10 +62,15 @@ EOI } EOE -: expect-assignment +: chain : -$* <<EOI 2>>EOE != 0 -dir{x}: dir{a}: +$* <<EOI 2>>/~%EOE% +dir{x}: dir{y}: dir{a}: foo = FOO +dump dir{y} EOI -<stdin>:1:16: error: expected name instead of <newline> +<stdin>:2:1: dump: +% .+/dir\{y/\}: .+:dir\{a/\}:% + { + foo = FOO + } EOE |