diff options
Diffstat (limited to 'tests/manifest/testscript')
-rw-r--r-- | tests/manifest/testscript | 1918 |
1 files changed, 1884 insertions, 34 deletions
diff --git a/tests/manifest/testscript b/tests/manifest/testscript index 9f8a476..d7ec37f 100644 --- a/tests/manifest/testscript +++ b/tests/manifest/testscript @@ -102,6 +102,176 @@ EOE } + : type + : + { + : valid + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + type: lib + summary: Modern C++ parser + license: LGPLv2 + EOF + + : extras + : + $* <<EOI >>EOO + : 1 + name: foo + version: 2.0.0 + type: bash, something extra + summary: Modern C++ parser + license: LGPLv2 + EOI + : 1 + name: foo + version: 2.0.0 + type: bash, something extra + summary: Modern C++ parser + license: LGPLv2 + EOO + + : duplicate + : + $* <<EOI 2>'stdin:5:1: error: package type redefinition' != 0 + : 1 + name: libfoo + version: 2.0.0 + type: lib + type: exe + summary: Modern C++ parser + license: LGPLv2 + EOI + + : empty + : + $* <<EOI 2>'stdin:4:6: error: empty package type' != 0 + : 1 + name: libfoo + version: 2.0.0 + type: + summary: Modern C++ parser + license: LGPLv2 + EOI + + : empty-extras + : + $* <<EOI 2>'stdin:4:7: error: empty package type' != 0 + : 1 + name: libfoo + version: 2.0.0 + type: , extras + summary: Modern C++ parser + license: LGPLv2 + EOI + } + + : language + : + { + : valid + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + language: c++ + language: c=impl + summary: Modern C++ parser + license: LGPLv2 + EOF + + : extras + : + $* <<EOI >>EOO + : 1 + name: foo + version: 2.0.0 + language: c++, something extra + language: c=impl, something extra + summary: Modern C++ parser + license: LGPLv2 + EOI + : 1 + name: foo + version: 2.0.0 + language: c++ + language: c=impl + summary: Modern C++ parser + license: LGPLv2 + EOO + + : empty + : + $* <<EOI 2>'stdin:4:10: error: empty package language' != 0 + : 1 + name: libfoo + version: 2.0.0 + language: + summary: Modern C++ parser + license: LGPLv2 + EOI + + : empty-extras + : + $* <<EOI 2>'stdin:4:11: error: empty package language' != 0 + : 1 + name: libfoo + version: 2.0.0 + language: , extras + summary: Modern C++ parser + license: LGPLv2 + EOI + + : empty-impl + : + $* <<EOI 2>'stdin:4:11: error: empty package language' != 0 + : 1 + name: libfoo + version: 2.0.0 + language: =impl + summary: Modern C++ parser + license: LGPLv2 + EOI + + : invalid-value + : + $* <<EOI 2>"stdin:4:11: error: unexpected 'imp' value after '='" != 0 + : 1 + name: libfoo + version: 2.0.0 + language: c++=imp + summary: Modern C++ parser + license: LGPLv2 + EOI + + : empty-value + : + $* <<EOI 2>"stdin:4:11: error: expected 'impl' after '='" != 0 + : 1 + name: libfoo + version: 2.0.0 + language: c++= + summary: Modern C++ parser + license: LGPLv2 + EOI + + : duplicate + : + $* <<EOI 2>"stdin:5:11: error: duplicate package language" != 0 + : 1 + name: libfoo + version: 2.0.0 + language: c++=impl + language: c++ + summary: Modern C++ parser + license: LGPLv2 + EOI + } + : license : { @@ -257,9 +427,9 @@ description-file: /README EOI %( - stdin:6:19: error: package description-file path is absolute + stdin:6:19: error: project description file path is absolute %| - stdin:6:19: error: invalid package description file: invalid filesystem path + stdin:6:19: error: invalid project description file: invalid filesystem path %) EOE } @@ -289,7 +459,20 @@ description: libfoo is a very modern C++ XML parser. description-type: image/gif EOI - stdin:7:19: error: invalid package description type: text type expected + stdin:7:19: error: invalid project description type: text type expected + EOE + + : no-description + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + description-type: image/gif + EOI + stdin:6:1: error: no project description for specified type EOE : deducing @@ -305,7 +488,7 @@ license: LGPLv2 description-file: README.rtf EOI - stdin:6:19: error: invalid package description file: unknown text type + stdin:6:19: error: invalid project description file: unknown text type (use description-type manifest value to specify explicitly) EOE : ignore-unknown @@ -334,7 +517,7 @@ description: libfoo is a very modern C++ XML parser. description-type: text/markdowns EOI - stdin:7:19: error: invalid package description type: unknown text type + stdin:7:19: error: invalid project description type: unknown text type EOE : ignore @@ -376,7 +559,7 @@ description: libfoo is a very modern C++ XML parser. description-type: text/plain; EOI - stdin:7:19: error: invalid package description type: missing '=' + stdin:7:19: error: invalid project description type: missing '=' EOE } @@ -433,7 +616,7 @@ description: libfoo is a very modern C++ XML parser. description-type: text/markdown; variant=Original EOI - stdin:7:19: error: invalid package description type: unknown text type + stdin:7:19: error: invalid project description type: unknown text type EOE : ignore @@ -463,7 +646,7 @@ description: libfoo is a very modern C++ XML parser. description-type: text/markdown; variants=GFM EOI - stdin:7:19: error: invalid package description type: unknown text type + stdin:7:19: error: invalid project description type: unknown text type EOE : ignore @@ -481,6 +664,330 @@ } } + : package-description-file + : + { + : absolute-path + : + $* <<EOI 2>>~%EOE% != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description-file: /README + EOI + %( + stdin:6:27: error: package description file path is absolute + %| + stdin:6:27: error: invalid package description file: invalid filesystem path + %) + EOE + } + + : package-description-type + : + { + : absent + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + EOF + + : not-text + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: image/gif + EOI + stdin:7:27: error: invalid package description type: text type expected + EOE + + : no-description + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description-type: image/gif + EOI + stdin:6:1: error: no package description for specified type + EOE + + : deducing + : + { + : fail + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description-file: README.rtf + EOI + stdin:6:27: error: invalid package description file: unknown text type (use package-description-type manifest value to specify explicitly) + EOE + + : ignore-unknown + : + $* -i <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description-file: README.rtf + EOF + } + + : unknown + : + { + : fail + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/markdowns + EOI + stdin:7:27: error: invalid package description type: unknown text type + EOE + + : ignore + : + $* -i <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/markdowns + EOF + } + + : plain + : + { + : valid + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/plain + EOF + + : invalid + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/plain; + EOI + stdin:7:27: error: invalid package description type: missing '=' + EOE + } + + : markdown + : + { + : default + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/markdown + EOF + + : gfm + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/markdown; variant=GFM + EOF + + : common-mark + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/markdown; variant=CommonMark + EOF + + : invalid-variant + : + { + : fail + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/markdown; variant=Original + EOI + stdin:7:27: error: invalid package description type: unknown text type + EOE + + : ignore + : + $* -i <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/markdown; variant=Original + EOF + } + + : invalid-parameter + : + { + : fail + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/markdown; variants=GFM + EOI + stdin:7:27: error: invalid package description type: unknown text type + EOE + + : ignore + : + $* -i <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-description: libfoo is a very modern C++ XML parser. + package-description-type: text/markdown; variants=GFM + EOF + } + } + } + + : changes-file + : + { + : absolute-path + : + $* <<EOI 2>>~%EOE% != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + changes-file: /CHANGES + EOI + %( + stdin:6:15: error: changes file path is absolute + %| + stdin:6:15: error: invalid changes file: invalid filesystem path + %) + EOE + + : unknown-text-type + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + changes-file: CHANGES.0 + EOI + stdin:6:15: error: invalid changes file: unknown text type (use changes-type manifest value to specify explicitly) + EOE + + : different-type + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + changes-file: CHANGES1 + changes-file: CHANGES2.md + EOI + stdin:7:15: error: changes type 'text/markdown;variant=GFM' differs from previous type 'text/plain' + EOE + + : same-type + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + changes-file: CHANGES1.markdown + changes-file: CHANGES2.md + EOF + + : explicit-type + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + changes-file: CHANGES1 + changes-file: CHANGES2.md + changes-type: text/plain + EOF + } + : src-url : { @@ -541,6 +1048,571 @@ EOI } + : build-auxiliary + : + { + : named + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-auxiliary-pgsql: *-postgresql_* + build-auxiliary-mysql: *-mysql_* + EOF + } + + : unnamed + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-auxiliary: *-postgresql** + EOF + } + + : empty-config-pattern + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-auxiliary: + EOI + stdin:6:17: error: empty build auxiliary configuration name pattern + EOE + } + + : mixed + : + { + : named-unnamed + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-auxiliary-pgsql: *-postgresql** + build-auxiliary: *-mysql** + EOF + } + + : unnamed-named + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-auxiliary: *-mysql** + build-auxiliary-pgsql: *-postgresql** + EOF + } + + : unnamed-unnamed + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-auxiliary: *-mysql** + build-auxiliary: *-postgresql** + EOI + stdin:7:1: error: build auxiliary environment redefinition + EOE + } + + : redefinition + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-auxiliary-pgsql: *-postgresql** + build-auxiliary-pgsql: *-postgresql** + EOI + stdin:7:1: error: build auxiliary environment redefinition + EOE + } + } + } + + : build-bot + : + { + : basics + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-bot:\ + -----BEGIN PUBLIC KEY----- + MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAw5liP5pyU9ebC/nD3djZ + 1H2dlKmUyiX0Z8POvKhLREd0B3rM59bPcnbRB4HMIhj0J0hUBvS8xb4u5udCPToa + x0A/LMWZ6claiivNtJ3CdLV98eklWdNUg5WXOuqq9QDKXw2ZpGbwDwCOh6aHSWVq + 98N9AQx0ZMmMWz3qhRyxPfh+GeJ05uj2ohU9FeUJxeqUcgJT/UcMZ3+7KYbwr+Uq + /HCoX1BmN6nvzhQGHvJIZ2IcjvOQ0AUrPmpSZN01Zr3ZEpkHM3hJWNLu3ntJLGBQ + 0aT5kG3iqFyr9q3M3c4J8c0AWrnDjvj0qnCyjNwqW+qIpatmCNT43DmgYr9fQLW0 + UHusburz53AbXs12zu3gZzkb0irlShatkMqqQaqaU0/+zw1LnoZ+rvmn2XV97UuK + LFKMKXCnyi2ZG65IZHGkjBVAPuvsX6RgLNyner/QtkDJTbfhktInbG08dCPqv1EF + 1OtcYKMTn8I5P2VmMO6SXXDLMSdU8b5DA5EY6Ca6JBB8g06S9sqGqXgQFysAnZs1 + VFgMopf8WZqj23x+DX+9KKT2pVnjbwRvBAntuCDoO75gWoETDnCQXEei/PbyamPq + 9+NjNsTDn67iJTGncZbII+eciY2YiFHm6GMzBPsUYlQcxiuO4X36jW6m2rwuw37K + oFDbGI3uY4LnhwmDFLbjtk8CAwEAAQ== + -----END PUBLIC KEY----- + \ + build-bot:\ + -----BEGIN PUBLIC KEY----- + AIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAw5liP5pyU9ebC/nD3djZ + 2H2dlKmUyiX0Z8POvKhLREd0B3rM59bPcnbRB4HMIhj0J0hUBvS8xb4u5udCPToa + x0A/LMWZ6claiivNtJ3CdLV98eklWdNUg5WXOuqq9QDKXw2ZpGbwDwCOh6aHSWVq + 98N9AQx0ZMmMWz3qhRyxPfh+GeJ05uj2ohU9FeUJxeqUcgJT/UcMZ3+7KYbwr+Uq + /HCoX1BmN6nvzhQGHvJIZ2IcjvOQ0AUrPmpSZN01Zr3ZEpkHM3hJWNLu3ntJLGBQ + 0aT5kG3iqFyr9q3M3c4J8c0AWrnDjvj0qnCyjNwqW+qIpatmCNT43DmgYr9fQLW0 + UHusburz53AbXs12zu3gZzkb0irlShatkMqqQaqaU0/+zw1LnoZ+rvmn2XV97UuK + LFKMKXCnyi2ZG65IZHGkjBVAPuvsX6RgLNyner/QtkDJTbfhktInbG08dCPqv1EF + 1OtcYKMTn8I5P2VmMO6SXXDLMSdU8b5DA5EY6Ca6JBB8g06S9sqGqXgQFysAnZs1 + VFgMopf8WZqj23x+DX+9KKT2pVnjbwRvBAntuCDoO75gWoETDnCQXEei/PbyamPq + 9+NjNsTDn67iJTGncZbII+eciY2YiFHm6GMzBPsUYlQcxiuO4X36jW6m2rwuw37K + oFDbGI3uY4LnhwmDFLbjtk8CAwEAAQ== + -----END PUBLIC KEY----- + \ + EOF + } + + : empty + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-bot: + EOI + stdin:6:11: error: empty custom build bot public key + EOE + } + + : duplicate + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-bot:\ + -----BEGIN PUBLIC KEY----- + MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAw5liP5pyU9ebC/nD3djZ + 1H2dlKmUyiX0Z8POvKhLREd0B3rM59bPcnbRB4HMIhj0J0hUBvS8xb4u5udCPToa + x0A/LMWZ6claiivNtJ3CdLV98eklWdNUg5WXOuqq9QDKXw2ZpGbwDwCOh6aHSWVq + 98N9AQx0ZMmMWz3qhRyxPfh+GeJ05uj2ohU9FeUJxeqUcgJT/UcMZ3+7KYbwr+Uq + /HCoX1BmN6nvzhQGHvJIZ2IcjvOQ0AUrPmpSZN01Zr3ZEpkHM3hJWNLu3ntJLGBQ + 0aT5kG3iqFyr9q3M3c4J8c0AWrnDjvj0qnCyjNwqW+qIpatmCNT43DmgYr9fQLW0 + UHusburz53AbXs12zu3gZzkb0irlShatkMqqQaqaU0/+zw1LnoZ+rvmn2XV97UuK + LFKMKXCnyi2ZG65IZHGkjBVAPuvsX6RgLNyner/QtkDJTbfhktInbG08dCPqv1EF + 1OtcYKMTn8I5P2VmMO6SXXDLMSdU8b5DA5EY6Ca6JBB8g06S9sqGqXgQFysAnZs1 + VFgMopf8WZqj23x+DX+9KKT2pVnjbwRvBAntuCDoO75gWoETDnCQXEei/PbyamPq + 9+NjNsTDn67iJTGncZbII+eciY2YiFHm6GMzBPsUYlQcxiuO4X36jW6m2rwuw37K + oFDbGI3uY4LnhwmDFLbjtk8CAwEAAQ== + -----END PUBLIC KEY----- + \ + build-bot:\ + -----BEGIN PUBLIC KEY----- + MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAw5liP5pyU9ebC/nD3djZ + 1H2dlKmUyiX0Z8POvKhLREd0B3rM59bPcnbRB4HMIhj0J0hUBvS8xb4u5udCPToa + x0A/LMWZ6claiivNtJ3CdLV98eklWdNUg5WXOuqq9QDKXw2ZpGbwDwCOh6aHSWVq + 98N9AQx0ZMmMWz3qhRyxPfh+GeJ05uj2ohU9FeUJxeqUcgJT/UcMZ3+7KYbwr+Uq + /HCoX1BmN6nvzhQGHvJIZ2IcjvOQ0AUrPmpSZN01Zr3ZEpkHM3hJWNLu3ntJLGBQ + 0aT5kG3iqFyr9q3M3c4J8c0AWrnDjvj0qnCyjNwqW+qIpatmCNT43DmgYr9fQLW0 + UHusburz53AbXs12zu3gZzkb0irlShatkMqqQaqaU0/+zw1LnoZ+rvmn2XV97UuK + LFKMKXCnyi2ZG65IZHGkjBVAPuvsX6RgLNyner/QtkDJTbfhktInbG08dCPqv1EF + 1OtcYKMTn8I5P2VmMO6SXXDLMSdU8b5DA5EY6Ca6JBB8g06S9sqGqXgQFysAnZs1 + VFgMopf8WZqj23x+DX+9KKT2pVnjbwRvBAntuCDoO75gWoETDnCQXEei/PbyamPq + 9+NjNsTDn67iJTGncZbII+eciY2YiFHm6GMzBPsUYlQcxiuO4X36jW6m2rwuw37K + oFDbGI3uY4LnhwmDFLbjtk8CAwEAAQ== + -----END PUBLIC KEY----- + \ + EOI + stdin:23:1: error: duplicate custom build bot public key + EOE + } + } + + : build-config + : + { + : multiple + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bar-builds: all + bar-build-config: config.foo.bar = true; Bar. + baz-build-config: config.foo.baz = true; Baz. + EOF + } + + : empty + : + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + network-build-config: ; None. + EOF + + : undefined + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bar-builds: default + baz-build-config: config.foo.bar = true + EOF + } + + : redefinition + : + { + $* <<EOI 2>"stdin:3:1: error: build configuration redefinition" != 0 + : 1 + bar-build-config: config.foo.bar = true + bar-build-config: config.foo.bar = true + EOI + } + + : unexpected-underlying-class-set + : + { + $* <<EOI 2>"stdin:4:13: error: invalid package builds: unexpected underlying class set" != 0 + : 1 + bar-build-config: config.foo.bar = true + bar-builds: all + bar-builds: all + EOI + } + + : auxiliary + { + : named + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bar-build-auxiliary-pgsql: *-postgresql_* + baz-build-auxiliary-mysql: *-mysql_* + EOF + } + + : unnamed + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bar-build-auxiliary: *-postgresql** + EOF + } + + : empty-config-pattern + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bar-build-auxiliary: + EOI + stdin:6:21: error: empty build auxiliary configuration name pattern + EOE + } + + : mixed + : + { + : named-unnamed + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bar-build-auxiliary-pgsql: *-postgresql** + bar-build-auxiliary: *-mysql** + EOF + } + + : unnamed-named + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bar-build-auxiliary: *-mysql** + bar-build-auxiliary-pgsql: *-postgresql** + EOF + } + + : unnamed-unnamed + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bar-build-auxiliary: *-mysql** + bar-build-auxiliary: *-postgresql** + EOI + stdin:7:1: error: build auxiliary environment redefinition + EOE + } + + : redefinition + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bar-build-auxiliary-pgsql: *-postgresql** + bar-build-auxiliary-pgsql: *-postgresql** + EOI + stdin:7:1: error: build auxiliary environment redefinition + EOE + } + } + } + + : email + : + { + : override + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-email: package@example.com + build-email: build@example.com + build-warning-email: build-warning@example.com + build-error-email: build-error@example.com + bar-build-config: config.foo.bar = true; Bar. + bar-build-email: bar-build@example.com + bar-build-warning-email: bar-build-warning@example.com + bar-build-error-email: bar-build-error@example.com + EOF + } + + : disabled + : + { + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + package-email: package@example.com + build-email: build@example.com + build-warning-email: build-warning@example.com + build-error-email: build-error@example.com + bar-build-config: config.foo.bar = true; Bar. + bar-build-email: + EOF + } + + : unrecognized + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-error-email: build-error@example.com + bar-build-email: bar-build@example.com + EOI + stdin:7:1: error: stray build notification email: no build package configuration 'bar' + EOE + } + + : empty + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-error-email: build-error@example.com + bar-build-config: config.foo.bar = true; Bar. + bar-build-warning-email: ; Empty + EOI + stdin:8:26: error: empty build configuration warning email + EOE + } + } + } + + : distribution + : + { + : incomplete + : + { + $* <<EOF >>EOF + : 1 + name: libcrypto + version: 1.1.1+18 + upstream-version: 1.1.1n + summary: C library providing general cryptography and X.509 support + license: OpenSSL + debian-name: libssl1.1 libssl-dev + debian-version: 1.1.1n + debian-to-downstream-version: /([^.])\.([^.])\.([^.])n/\1.\2.\3+18/ + debian-to-downstream-version: /([^.])\.([^.])\.([^.])o/\1.\2.\3+19/ + debian-to-downstream-version: /([^.])\.([^.])\.([^.])p/\1.\2.\3+20/ + fedora-name: openssl-libs openssl-devel + fedora-version: $ + EOF + } + + : complete + : + { + $* -c <<EOI >>EOO + : 1 + name: libcrypto + version: +2-1.1.1-a.1+2 + upstream-version: 1.1.1n + summary: C library providing general cryptography and X.509 support + license: OpenSSL + fedora-name: openssl-libs openssl-devel + fedora-version: $ + fedora-to-downstream-version: $ + EOI + : 1 + name: libcrypto + version: +2-1.1.1-a.1+2 + upstream-version: 1.1.1n + summary: C library providing general cryptography and X.509 support + license: OpenSSL + fedora-name: openssl-libs openssl-devel + fedora-version: 1.1.1 + fedora-to-downstream-version: $ + EOO + } + + : multiple-names + : + { + $* <<EOO >>EOO + : 1 + name: libcrypto + version: 1.1.1+18 + upstream-version: 1.1.1n + summary: C library providing general cryptography and X.509 support + license: OpenSSL + debian-name: libcurl4 libcurl4-doc libcurl4-openssl-dev + debian-name: libcurl3-gnutls libcurl4-gnutls-dev + EOO + } + + : dash-in-name + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: libcrypto + version: 1.1.1+18 + upstream-version: 1.1.1n + summary: C library providing general cryptography and X.509 support + license: OpenSSL + de-bian-name: libssl1.1 libssl-dev + EOI + stdin:7:1: error: distribution name 'de-bian' contains '-' + EOE + } + + : empty-value + : + { + $* <<EOI 2>>EOE != 0 + : 1 + name: libcrypto + version: 1.1.1+18 + upstream-version: 1.1.1n + summary: C library providing general cryptography and X.509 support + license: OpenSSL + debian-name: + EOI + stdin:7:13: error: empty package distribution value + EOE + } + } + : depends : { @@ -953,6 +2025,29 @@ stdin:6:14: error: config.foo.* variable assignment expected instead of <buildfile fragment> EOE } + + : comments + : + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + depends:\ + bar + { + require + { + config.bar.frame=4016 + config.bar.timeout=10 + } + } | + {bar # Error. + \ + EOI + stdin:15:6: error: invalid package name: length is less than two characters + EOE } : multi-line @@ -972,7 +2067,8 @@ bar - ; Comment. + ; + Comment. \ EOI : 1 @@ -1093,9 +2189,10 @@ \ EOF - : no-accept-clause + + : empty : - $* <<EOI 2>>EOE != 0 + $* <<EOF >>EOF : 1 name: foo version: 2.0.0 @@ -1106,15 +2203,14 @@ { prefer { - config.bar.frame=4016 } + + accept (true) } \ - EOI - stdin:13:1: error: accept clause expected instead of '}' - EOE + EOF - : empty + : no-accept-clause : $* <<EOI 2>>EOE != 0 : 1 @@ -1127,12 +2223,12 @@ { prefer { - + config.bar.frame=4016 } } \ EOI - stdin:11:1: error: buildfile fragment expected + stdin:13:1: error: accept clause expected instead of '}' EOE : enable-clause @@ -1302,7 +2398,8 @@ { require { - config.bar.baz=a;bc + config.bar.baz=a + ; } } \ @@ -1323,7 +2420,7 @@ { require { - # @@ TMP Version tagging? See + # @@ Version tagging? See # upstream/qtbase/src/corelib/global/minimum-linux{.S,_p.h}, # global/qversiontagging.cpp, and QtCore.version (linker version script) in # the upstream build. @@ -1731,7 +2828,7 @@ # C sources from the Harfbuzz library. # - # @@ TMP Package this? (And double-conversion?) + # @@ Package this? (And double-conversion?) # harfbuzz_src = harfbuzz-buffer \\ harfbuzz-gdef \\ @@ -1765,7 +2862,7 @@ # Ensure included source files are distributed. # - # @@ TMP thread/qmutex_{linux,unix,mac,win}.cpp is included by + # @@ thread/qmutex_{linux,unix,mac,win}.cpp is included by # thread/qmutex.cpp, but thread/thread.pri adds it to SOURCES, meaning # the upstream build should compile it as well (which would lead to # multiple definition errors). This is confirmed by the fact that the @@ -1779,7 +2876,7 @@ # No idea what's going on but what we have here looks right and works # and matches what the upstream build actually ends up doing. # - # @@ TMP mimetypes/qmimeprovider_database.cpp (note: ~2MB) is generated by + # @@ mimetypes/qmimeprovider_database.cpp (note: ~2MB) is generated by # mimetypes/mime/generate.{pl,bat} from # mimetypes/mime/packages/freedesktop.org.xml which is from # http://www.freedesktop.org/wiki/Software/shared-mime-info/. This doesn't @@ -1798,7 +2895,7 @@ # The "metadata library": its purpose is to make sure all the imported # libraries are resolved for the ad hoc .mm compilation rules below. # - # @@ TMP Using cxx{dummy} as link rule hint (added `using c` recently). + # @@ Using cxx{dummy} as link rule hint (added `using c` recently). # libul{Qt5CoreMeta}: mkspecs/features/data/cxx{dummy} $impl_libs $intf_libs @@ -1920,7 +3017,7 @@ # # @@ Have to list hxx{moc_predefs} here to make dist work -- why? # - # @@ TMP Is this comment still relevant? moc_predefs is now only a + # @@ Is this comment still relevant? moc_predefs is now only a # dependency in the ad hoc rule below. # for s: hxx{$moc_hdr} @@ -2290,9 +3387,9 @@ # Build options. # # Add QtCore/3rdparty/ for include of <double-conversion/fixed-dtoa.h> (in - # double-conversion/fixed-dtoa.cc)\; QtCore/3rdparty/double-conversion/include/ - # for includes of <double-conversion/*>\; QtCore/3rdparty/harfbuzz/src/ for an - # include of <harfbuzz-shaper.h>\; and QtCore/3rdparty/forkfd/ for an include + # double-conversion/fixed-dtoa.cc); QtCore/3rdparty/double-conversion/include/ + # for includes of <double-conversion/*>; QtCore/3rdparty/harfbuzz/src/ for an + # include of <harfbuzz-shaper.h>; and QtCore/3rdparty/forkfd/ for an include # of <forkfd.h>. # cxx.poptions =+ "-I$out_root" "-I$src_root" \\ @@ -2317,7 +3414,7 @@ -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 \\ -DQT_NO_VERSION_TAGGING - # @@ TMP Are the hbmi* of any use? + # @@ Are the hbmi* of any use? # {hbmia obja}{*}: cxx.poptions += -DQT_STATIC {hbmis objs}{*}: cxx.poptions += -DQT_SHARED @@ -2348,13 +3445,13 @@ lib{Qt5Core}: cxx.libs += -ldl } - # @@ TMP Not sure if/when this is necessary. + # @@ Not sure if/when this is necessary. # # cxx.libs += -latomic # libexecinfo is required for backtrace(3) on BSD (see global/qlogging.cpp). # - # @@ TMP When we did libboost-stacktrace we considered packaging libbacktrace: + # @@ When we did libboost-stacktrace we considered packaging libbacktrace: # build2-packaging/boost/downstream/libs/stacktrace/src/buildfile. # if $bsd @@ -2366,9 +3463,9 @@ # explained in global/global.pri but see also the SSE/AVX comments in # qconfig.h.in. # - # @@ TMP Assuming the comments regarding special compiler options for + # @@ Assuming the comments regarding special compiler options for # SSE/AVX/NEON in qconfig.h.in apply to F16C as well. global/global.pri - # seems to make this connection as well (if only for GCC\; x86SimdAlways in + # seems to make this connection as well (if only for GCC; x86SimdAlways in # global.pri corresponds to QT_COMPILER_SUPPORTS_SIMD_ALWAYS in # qconfig.h.in). # @@ -2560,6 +3657,167 @@ stdin:9:1: error: multi-line dependency form with inline reflect clause EOE } + + : comments + : + { + : single-line-separate + : + $* <<EOI >>EOO + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + depends:\ + bar + { + # Configure bar. + # + require + { + config.bar.frame=4016 + config.bar.timeout=10 + } + } + \ + EOI + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + depends:\ + bar + { + require + { + config.bar.frame=4016 + config.bar.timeout=10 + } + } + \ + EOO + + : single-line-trailing + : + $* <<EOI >>EOO + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + depends:\ + bar + { + require # Configure bar. + { + config.bar.frame=4016 + config.bar.timeout=10 + } + } + \ + EOI + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + depends:\ + bar + { + require + { + config.bar.frame=4016 + config.bar.timeout=10 + } + } + \ + EOO + + : multi-line + : + $* <<EOI >>EOO + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + depends:\ + bar + { + #\\ + # Configure bar. + # + require + { + config.bar.frame=4016 + config.bar.timeout=10 + } + #\\ + + prefer + { + config.bar.frame=4016 + config.bar.timeout=10 + } + + accept ($config.bar.frame >= 1024 && config.bar.timeout < 20) + } + \ + EOI + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + depends:\ + bar + { + prefer + { + config.bar.frame=4016 + config.bar.timeout=10 + } + + accept ($config.bar.frame >= 1024 && config.bar.timeout < 20) + } + \ + EOO + + : multi-line-unterm + : + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + depends:\ + bar + { + #\\ + # Configure bar. + # + require + { + config.bar.frame=4016 + config.bar.timeout=10 + } + + prefer + { + config.bar.frame=4016 + config.bar.timeout=10 + } + + accept ($config.bar.frame >= 1024 && config.bar.timeout < 20) + } + \ + EOI + stdin:25:2: error: unterminated multi-line comment + EOE + } } : multiple-alternatives @@ -2778,7 +4036,8 @@ license: LGPLv2 requires:\ - ; X11 libs. + ; + X11 libs. \ EOI : 1 @@ -2850,6 +4109,29 @@ stdin:6:13: error: end of simple requirement expected EOE + # @@ TMP Drop this test and uncomment the next one when toolchain 0.15.0 + # is released (see dependency_alternatives_parser::parse_alternative() + # for details). + # + : old-fashioned + : + $* <<EOI >>EOO + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + requires: ? vc15; VC 15 or later if targeting Windows. + EOI + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + requires: vc15 ? ; VC 15 or later if targeting Windows. + EOO + + #\ : reflect : $* <<EOI 2>>EOE != 0 @@ -2862,6 +4144,7 @@ EOI stdin:6:13: error: end of simple requirement expected EOE + #\ : with-id : @@ -3042,6 +4325,506 @@ license: LGPLv2 tests: bar == $ EOF + + : reflect + : + { + : after-version-constraint + : + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests: bar == 1.0.0 config.bar.test = foo + EOF + + : no-version-constraint + : + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests: bar config.bar.test = foo + EOF + + : enable + : + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests: bar == 1.0.0 ? ($windows) config.bar.test = foo + EOF + + : invalid-variable + : + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests: bar config.foo.test = bar + EOI + stdin:6:8: error: config.bar.* variable assignment expected instead of <buildfile fragment> + EOE + } + + : enable + : + { + : after-version-constraint + : + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests: bar == 1.0.0 ? ($windows) + EOF + + : no-version-constraint + : + $* <<EOF >>EOF + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests: bar ? ($windows) + EOF + + : unterminated + : + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests: bar ? ($windows + EOI + stdin:6:8: error: unterminated evaluation context + EOE + } + + : newline + : + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests:\ + * + bar + \ + EOI + stdin:7:1: error: unexpected <newline> + EOE + + : no-package + : + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests: * + EOI + stdin:6:8: error: no package name specified + EOE + + : multiple-alternatives + : + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests: bar | baz + EOI + stdin:6:8: error: unexpected '|' + EOE + + : multiple-dependencies + : + $* <<EOI 2>>EOE != 0 + : 1 + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + tests: {bar baz} + EOI + stdin:6:8: error: only single package allowed + EOE + } + + : buildfile + : + { + : standard-naming + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bootstrap-build:\ + project = libfoo + + using version + using config + using dist + using test + using install + \ + root-build:\ + include config/common.build + + cxx.std = latest + + using cxx + \ + config/common-build:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + EOF + + : alt-naming + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bootstrap-build2:\ + project = libfoo + + using version + using config + using dist + using test + using install + \ + root-build2:\ + include config/common.build2 + + cxx.std = latest + + using cxx + \ + config/common-build2:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + EOF + + : mixed-naming + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bootstrap-build:\ + project = libfoo + + using version + using config + using dist + using test + using install + \ + root-build:\ + include config/common.build + + cxx.std = latest + + using cxx + \ + config/common-build2:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + EOI + stdin:22:1: error: standard buildfile naming scheme is already used + EOE + + : backslash + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + config\common-build:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + EOI + stdin:6:1: error: backslash in package buildfile path + EOE + + : unknown + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + common.build:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + EOI + stdin:6:1: error: unknown name 'common.build' in package manifest + EOE + + : empty-name + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + config/-build:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + EOI + stdin:6:1: error: empty package buildfile name + EOE + + : absolute-invalid + : + $* <<EOI 2>>~%EOE% != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + /config/common-build:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + EOI + %stdin:6:1: error: (absolute|invalid) package buildfile path% + EOE + + : outside + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + common/../../common-build:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + EOI + stdin:6:1: error: package buildfile path refers outside build/ subdirectory + EOE + + : redefinition + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + common-build:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + common-build:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + EOI + stdin:11:1: error: package buildfile redefinition + EOE + } + + : buildfile-path + : + { + : standard-naming + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bootstrap-build:\ + project = libfoo + + using version + using config + using dist + using test + using install + \ + root-build:\ + include config/common.build + include config/extra.build + + cxx.std = latest + + using cxx + \ + config/common-build:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + build-file: config/extra.build + EOF + + : alt-naming + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + bootstrap-build2:\ + project = libfoo + + using version + using config + using dist + using test + using install + \ + root-build2:\ + include config/common.build2 + + cxx.std = latest + + using cxx + \ + build-file: config/common.build2 + EOF + + : mixed-naming + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-file: config/common.build + build-file: config/extra.build2 + \ + EOI + stdin:7:13: error: standard buildfile naming scheme is already used + EOE + + : empty-path + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-file: + EOI + stdin:6:12: error: path with build or build2 extension expected + EOE + + : invalid-extension + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-file: common.buildfile + EOI + stdin:6:13: error: path with build or build2 extension expected + EOE + + : redefinition1 + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + common-build:\ + { + config [bool] config.libfoo.extras ?= false + } + \ + build-file: common.build + EOI + stdin:11:13: error: package buildfile redefinition + EOE + + : redefinition2 + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-file: config/common.build + build-file: config/common.build + EOI + stdin:7:13: error: package buildfile redefinition + EOE + + : bootstrap-build + : + $* <<EOI 2>>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + build-file: bootstrap.build + EOI + stdin:6:13: error: bootstrap not allowed + EOE } } @@ -3061,6 +4844,8 @@ : name: libfoo version: 1.2.3+2 + type: lib + language: c++ project: foo priority: high; Due to critical bug fix. summary: Modern XML parser @@ -3069,8 +4854,11 @@ keywords: c++ xml parser serializer pull description: libfoo is a very modern C++ XML parser. description-type: text/plain + package-description: packaged for build2. + package-description-type: text/plain changes: 1.2.3+2: applied upstream patch for critical bug bar changes: 1.2.3+1: applied upstream patch for critical bug foo + changes-type: text/plain url: http://www.example.org/projects/libfoo/; libfoo project page url doc-url: http://www.example.org/projects/libfoo/man.xhtml; documentation page src-url: http://scm.example.com/?p=odb/libodb.git\;a=tree; source tree @@ -3099,6 +4887,20 @@ build-include: linux* build-include: freebsd* build-exclude: *; Only supports Linux and FreeBSD. + network-builds: default + network-build-include: linux* + network-build-exclude: *; Only supports Linux. + network-build-config: config.libfoo.network=true; Enable networking API. + bootstrap-build:\ + project = libfoo + + \ + root-build:\ + cxx.std = latest + + using cxx + + \ location: libfoo-1.2.3+2.tar.bz2 sha256sum: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 : @@ -3114,6 +4916,10 @@ builds: default legacy; Default and legacy. builds: -windows; Not on Windows. build-exclude: *-msvc_14*/i?86-*; Linker crash. + bootstrap-build:\ + project = libbar + + \ location: bar/libbar-3.4A.5+6.tbz sha256sum: d4b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 : @@ -3125,6 +4931,10 @@ email: libbaz-users@example.org build-error-email: libbaz-issues@example.org; Email for libbaz issues. builds: default experimental + bootstrap-build:\ + project = libbaz + + \ location: libbaz/libbaz-+2-3.4A.5+3.tar.gz sha256sum: b5b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 EOF @@ -3145,6 +4955,28 @@ depends: bar == $ EOI } + + : buildfiles + : + { + # @@ TMP Uncomment when the missing bootstrap-build value related + # workaround is removed (see manifest.cxx for details). + #\ + : no-bootstrap + : + $* <<EOI 2>"stdin:10:1: error: no package bootstrap build specified" != 0 + : 1 + sha256sum: a2b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + : + name: foo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + location: foo/foo-2.0.0.tar.gz + sha256sum: b5b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + EOI + #\ + } } : dir @@ -3705,3 +5537,21 @@ } } } + +: effective-type +: +{ + test.options += -et + + $* '' libfoo >'lib' : lib-prefix + $* '' foo >'exe' : no-lib-prefix + $* 'mixed' foo >'other' : other + + : lib-binless + : + $* 'lib,binless,extras' libfoo >>EOO + lib + binless + extras + EOO +} |