Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
ninjabackend: Use more consistent descriptions
|
|
i18n: Improve data_dirs support
|
|
|
|
|
|
|
|
|
|
|
|
Meson has a common pattern of using 'if len(foo) == 0:' or
'if len(foo) != 0:', however, this is a common anti-pattern in python.
Instead tests for emptiness/non-emptiness should be done with a simple
'if foo:' or 'if not foo:'
Consider the following:
>>> import timeit
>>> timeit.timeit('if len([]) == 0: pass')
0.10730923599840025
>>> timeit.timeit('if not []: pass')
0.030033907998586074
>>> timeit.timeit('if len(['a', 'b', 'c', 'd']) == 0: pass')
0.1154778649979562
>>> timeit.timeit("if not ['a', 'b', 'c', 'd']: pass")
0.08259823200205574
>>> timeit.timeit('if len("") == 0: pass')
0.089759664999292
>>> timeit.timeit('if not "": pass')
0.02340641999762738
>>> timeit.timeit('if len("foo") == 0: pass')
0.08848102600313723
>>> timeit.timeit('if not "foo": pass')
0.04032287199879647
And for the one additional case of 'if len(foo.strip()) == 0', which can
be replaced with 'if not foo.isspace()'
>>> timeit.timeit('if len(" ".strip()) == 0: pass')
0.15294511600222904
>>> timeit.timeit('if " ".isspace(): pass')
0.09413968399894657
>>> timeit.timeit('if len(" abc".strip()) == 0: pass')
0.2023209120015963
>>> timeit.timeit('if " abc".isspace(): pass')
0.09571301700270851
In other words, it's always a win to not use len(), when you don't
actually want to check the length.
|
|
|
|
The build definition is basically cleaning all the directories of all
custom targets.
|
|
|
|
Use a titlecase for arbitrary language, this was we don't have 'C' in
lowercase.
Rename 'Static linking library $out' for 'Linking static target $out.'.
Add missing punctuation.
|
|
|
|
Different locales have a different number of ':' in the string
we want to match. Closes #1639.
|
|
When cross compiling and looking for moc/uic/rcc you really want the
host binary.
Still fall back to QT_INSTALL_BINS as it appears that's the only
variable available with qt4.
|
|
|
|
For parity with gettext()
Fixes #1565
|
|
It's much faster to do 'if a in dict' instead of 'if a in dict.keys()',
since the latter constructs an iterator and walks that iterator and then
tests equality at each step, and the former does a single hash lookup.
|
|
The intel fortran compiler "ifort" was not listed in the list of
default fortran compilers. This caused it to not be found unless
explicitly set via the FC.
|
|
|
|
|
|
|
|
This uses the ABC's in collections to implement an OrderedSet class.
Internally an OrderedDict is still wrapped so that the ordering is
maintained, this adds the full interface and behavior of an Set, but
with ordering by first insertion.
|
|
wrap: submodule fixes
|
|
Includes a test for this that will only run on the CI.
Closes https://github.com/mesonbuild/meson/issues/1665
|
|
|
|
Using Meson from outside a git repo results in an error when trying to
resolve submodule subprojects. Running git from inside subproject root
should be enough to fix it.
Partially fixes #1679
Signed-off-by: Ernestas Kulik <ernestas.kulik@gmail.com>
|
|
After an initial checkout, submodules aren’t initialized and thus trying
to update them fails.
Partially fixes #1679
Signed-off-by: Ernestas Kulik <ernestas.kulik@gmail.com>
|
|
|
|
|
|
Fix precedence of arguments for Vala tasks and include those considered
external (i.e. '-Dvala_args' and 'VALAFLAGS').
|
|
Add a testcase for linking C and C++ static archives into a shared li…
|
|
Fix LTO + static libraries on GCC and Clang
|
|
|
|
Sometimes you want to link to a C++ library that exports C API, which
means the linker must link in the C++ stdlib, and we must use a C++
compiler for linking. The same is also applicable for objc/objc++ etc,
so we can keep using clike_langs for the priority order.
Closes https://github.com/mesonbuild/meson/issues/1653
|
|
Ideally, all dependency objects should support this, but it's a lot of
work and isn't supported by all dependency types (like frameworks and
pkg-config), so for now just enable it for external libraries.
|
|
We can't use @file.rsp on Windows with ArLinker because llvm-ar and
gcc-ar blindly pass the --plugin argument to `ar` and you cannot pass
options as arguments while using the @file.rsp syntax.
[5/7] cc @mylib@sta/libfile4.c.obj.rsp
[6/7] gcc-ar @libmylib.a.rsp
FAILED: libmylib.a
gcc-ar @libmylib.a.rsp
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ar.exe: invalid option -- @
https://github.com/mesonbuild/meson/pull/1649
https://ci.appveyor.com/project/jpakkane/meson/build/1.0.2330/job/w3hj9jfdasefsqi9
|
|
Closes https://github.com/mesonbuild/meson/issues/1646
|
|
|
|
|
|
|
|
|
|
Grammatically, this full stop isn't needed and with file names it has a
potential to be confusing:
Installing /foo/bar/filename.1 to /foo/bar/dirname.
The full stop caused me to do a double-take more than once, so let's drop it.
|
|
sharing. Closes #1619.
|
|
d: Fix linking shared libraries with DMD
|
|
Don't raise a full backtrace.
|
|
No need to turn it on and off again if there's nothing requiring it.
|
|
|
|
|