D lang compilers have an option -release (or similar) which turns off
asserts, contracts, and other runtime type checking. This patch wires
that up to the b_ndebug flag.
Fixes#7082
This also adds a "# noqa: F401" comment on an unused "import lzma",
which we are using it in a try/except block that is being used to
check if the lzma module is importable; of course it is unused.
v2: This turned out to be a little tricky.
mesonbuild/modules/__init__.py had the "unused" import:
from ..interpreterbase import permittedKwargs, noKwargs
However, that meant that the various modules could do things like:
from . import noKwargs # "." is "mesonbuild.modules"
Which breaks when you remove __init__.py's "unused" import. I
could have tagged that import with "# noqa: F401", but instead I
chose to have each of the module import directly from
"..interpreterbase" instead of ".".
Ever since we changed how we do library searching, the full path to the
library has not been available under `.fullpath`. This has been broken
for at least a year...
And actually test that prog.path() works. The earlier test was just
running the command without checking if it succeeded.
Also make everything use prog.get_command() or get_path() instead of
accessing the internal member prog.fullpath directly.
Set the rules for the symlinking on the target itself, and then reuse
that information while generating aliases during the build, and then
pass it to the install script too.
It is often useful to be able to check if a specific object is of a type
defined in a module. To that end, define all such targets in
modules/__init__.py so that everyone can refer to them without poking
into module-specific code.
Everywhere we use this object, we end up iterating over it and comparing
compiler.get_language() with something. Using a dict is the obvious
choice and simplifies a lot of code.
Traceback (most recent call last):
File "../../../meson.py", line 184, in <module>
app.generate()
File "../../../meson.py", line 130, in generate
intr.run()
File "/home/brain/git/upstream/meson/interpreter.py", line 828, in run
self.evaluate_codeblock(self.ast)
File "/home/brain/git/upstream/meson/interpreter.py", line 850, in
evaluate_codeblock
raise e
File "/home/brain/git/upstream/meson/interpreter.py", line 844, in
evaluate_codeblock
self.evaluate_statement(cur)
File "/home/brain/git/upstream/meson/interpreter.py", line 897, in
evaluate_statement
return self.method_call(cur)
File "/home/brain/git/upstream/meson/interpreter.py", line 1620, in
method_call
return obj.method_call(method_name, args, kwargs)
File "/home/brain/git/upstream/meson/interpreter.py", line 625, in
method_call
value = fn(state, args, kwargs)
File "/home/brain/git/upstream/meson/modules/rpm.py", line 98, in
generate_spec_template
fn.write('BuildRequires: %s\n' % ' '.join(prog.fullpath))
TypeError: sequence item 0: expected str instance, NoneType found
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>