Age | Commit message (Collapse) | Author | Files | Lines |
|
* tests: Add a test for C library in Vala target
https://github.com/mesonbuild/meson/issues/1939
* Make external library no-op when used with incompatible target
This is how it used to behave earlier, but we accidentally regressed
Closes https://github.com/mesonbuild/meson/issues/1939
|
|
|
|
This was broken because the class property will say True but the
object property will not be set. Store the value on the class property
and transfer to object in __init__. Just like PkgConfigDependency.
|
|
Adds a test so that this is catched later.
Closes https://github.com/mesonbuild/meson/issues/1937
|
|
|
|
|
|
Preserve -L -l pairings fetched from external deps
|
|
|
|
are kept in order.
|
|
While adding link args for external deps, sometimes different
libraries come from different prefixes, and an older version of the
same library might be present in other prefixes and we don't want to
accidentally pick that up.
For example:
/usr/local/lib/libglib-2.0.so
/usr/local/lib/pkgconfig/glib-2.0.pc
/usr/local/lib/libz.so
/usr/local/lib/pkgconfig/zlib.pc
/home/mesonuser/.local/lib/libglib-2.0.so
/home/mesonuser/.local/lib/pkgconfig/glib-2.0.pc
PKG_CONFIG_PATH="/home/mesonuser/.local/lib/pkgconfig/:/usr/local/lib/pkgconfig/"
If a target uses `dependencies : [glib_dep, zlib_dep]`, it will end up
using /usr/local/lib/libglib-2.0.so instead of
/home/mesonuser/.local/lib/libglib-2.0.so despite using the pkg-config
file in /home/mesonuser/.local/lib/pkgconfig because we reorder the -L
flag and separate it from the -l flag.
With this change, external link arguments will be added to the
compiler list without de-dup or reordering.
Closes https://github.com/mesonbuild/meson/issues/1718
|
|
gnome: Guard all cflags passed to g-ir-scanner
|
|
While g-ir-scanner's compatible -I and -D flags cover what most dependencies
use, there's no guarantee that a dependency's cflags don't include more
exotic flags that conflict with the tool's own options.
For a real world example, mozjs-38 has '-include some-header-file.h', which
translates to '--include nclude another-file-to-scan.h' for the scanner;
unless for some reason there's an 'nclude' GIR available on the system,
the target will thus fail.
For this purpose, g-ir-scanner allows explicitly marking some flags as
preprocessor/compiler flags by guarding them with --cflags-begin and
--cflags-end. Make sure it is used this for all cflags, not only for
global and project flags.
|
|
Include directories are passed with the -I flag to both the compiler
and g-ir-scanner, not as input files.
|
|
Work around GNU ld bug with -rpath,$ORIGIN
|
|
dependencies: Add a new class ExternalDependency
|
|
|
|
g-ir-scanner doesn't understand -rpath, so we use -L instead which
has the same effect.
Closes https://github.com/mesonbuild/meson/issues/1911
|
|
|
|
Boost tests are disabled on Windows for now because the detection
is actually completely broken. Once that's fixed (after the release)
we can enable it again.
|
|
No code changes
|
|
|
|
https://ci.appveyor.com/project/jpakkane/meson/build/2871/job/ti4qpoptd5tk19sn
|
|
This happened on the CI, so it could happen on people's machines too:
https://ci.appveyor.com/project/jpakkane/meson/build/2870/job/p2n70hg01vp3dkgl
https://ci.appveyor.com/project/jpakkane/meson/build/2870/job/7ifh64mi1999guxt
|
|
|
|
It is not feasible to test all failure modes by creating projects in
`test cases/failing` that would be an explosion of files, and that
mechanism is too coarse anyway. We have no way to ensure that the
expected error is being raised.
See FailureTests.test_dependency for an example.
|
|
|
|
This is really useful when debugging test failures. Without a stack
trace, you have to grep the source code for the error message.
Also set this in run_tests.py.
|
|
Otherwise we will never hit the informative DependencyException.
|
|
Currently optional on all platforms.
|
|
This class now consolidates a lot of the logic that each external
dependency was duplicating in its class definition.
All external dependencies now set:
* self.version
* self.compile_args and self.link_args
* self.is_found (if found)
* self.sources
* etc
And the abstract ExternalDependency class defines the methods that
will fetch those properties. Some classes still override that for
various reasons, but those should also be migrated to properties as
far as possible.
Next step is to consolidate and standardize the way in which we call
'configuration binaries' such as sdl2-config, llvm-config, pkg-config,
etc. Currently each class has to duplicate code involved with that
even though the format is very similar.
Currently only pkg-config supports multiple version requirements, and
some classes don't even properly check the version requirement. That
will also become easier now.
|
|
|
|
- VS 2010-2015 expect <WarningLevel> to be inside <ClCompile>
- WarningLevel now correctly reflects VisualStudioCCompiler.get_warn_args
|
|
add `capture: true` ability to configure_file()
|
|
|
|
|
|
|
|
Closes: https://github.com/mesonbuild/meson/issues/1863
|
|
Add mkdb_args support to gnome.gtkdoc()
|
|
Include the newly added argument.
|
|
This should help when using a non-standard sysroot, common in cross-compiling
|
|
|
|
|
|
Fixes #1870
|
|
Use absolute RPATHs while linking due to a binutils bug
|
|
This commit syncs the list with gnome-builder, which updates its list
in https://bugzilla.gnome.org/show_bug.cgi?id=782296.
llvm-config40 is added becaue LLVM 4.0 becomes a stable release.
llvm-config-5.0 is added to the bottom of the list because it is still
a development snapshot (svn trunk).
|
|
|
|
It's an invalid option with Apple ld and leads to a build error.
|
|
|
|
Use -rpath-link with the absolute paths to the respective build dirs
to work around a binutils bug that causes $ORIGIN to not be used while
linking.
Includes a unit test that manually checks the RPATH value written out
to ensure that it uses $ORIGIN.
See: https://sourceware.org/bugzilla/show_bug.cgi?id=16936
Closes https://github.com/mesonbuild/meson/issues/1897
|
|
|