It appears that LIB/LINK default to the host architecture if they can't
guess it from the first object. With the MSVC toolchain, resource files
are (usually) compiled to an arch-neutral .res format. Always
explicitly provide a '/MACHINE:' argument to avoid it guessing
incorrectly when cross-compiling.
The documentation states: "In other cases you can get multi-line
statements by ending the line with a \." but that seems to never have
worked.
Closes: #4720
This effectively reverts 92219a2739.
Back in the day, meson test would not print the logs on failure. But it now
does that automatically, for the failed test. Printing all logs is annoying because
it results in exteremely long output in some packages.
Example output:
+ /usr/bin/ninja test -v -j4 -C x86_64-redhat-linux-gnu
ninja: Entering directory `x86_64-redhat-linux-gnu'
[0/1] /usr/bin/meson test --no-rebuild --print-errorlogs
1/16 test-script.sh OK 46.23 s
...
14/16 test-casync FAIL 1.17 s (exit status 1)
15/16 test-cautil OK 0.00 s
16/16 test-util OK 0.01 s
Ok: 15
Expected Fail: 0
Fail: 1
Unexpected Pass: 0
Skipped: 0
Timeout: 0
The output from the failed tests:
14/16 test-casync FAIL 1.17 s (exit status 1)
--- command ---
/home/zbyszek/fedora/casync/casync-2/x86_64-redhat-linux-gnu/test-casync
--- stdout ---
error
-------
Building a cross compiler (`build == host != target`) is not cross
compiling. As such, it doesn't make sense to handle it under
`is_cross_build`.
(N.B. Building a standard library for a cross compiler would require
cross compiling, but Meson has support to do such a thing as part of a
compiler build currently.)
Previously, the configuration worked fine, but the compiler raised an
error. Now, we explicitly check for the existence of files and print a
useful error message if they do not exist.