Age | Commit message (Collapse) | Author | Files | Lines |
|
This is enough to fix things.
Note that build_shared_lib doesn't use the implib name for mingw or cygwin
gcc, only msvc, so I'm not quite sure how this is working, I guess we are
using the gcc facility to link directly with a dll...
|
|
Sometimes pkg-config can decide that the libdir is a system library dir
and must not be included in the output because that would mess up the
library search order for pkg-config libraries that must be sourced from
a non-system prefix.
However, when we're doing manual searching, we always want to see the
library directory even if it's the system path, otherwise we can't do
manual searching at all.
|
|
This was always broken, but was missed because we ran MSVC on Cygwin
instead.
|
|
|
|
|
|
Without this, we produce unusable pkg-config files when
prefix/libdir/etc contain spaces, which is very common on Windows.
|
|
Escaping spaces with '\ ' is the only way that works with both
pkg-config and pkgconf, so quote that way and unquote inside Meson.
This should work on all platforms.
Also fix the unit test to do the same.
https://github.com/pkgconf/pkgconf/issues/153
|
|
When `static: true` is passed to dependency(), we parse the pkg-config
output and manually search for `-lfoo`, etc in the library paths
gathered from `-Lbar` arguments in the output.
If there are no `-L` arguments in the output, the behaviour is the
same as before. If there are `-L` arguments and we can't find a static
library, we will error out.
|
|
We can now specify the library type we want to search for, and whether
we want to prefer static libraries over shared ones or the other way
around. This functionality is not exposed to build files yet.
|
|
Demonstrates that pkg-config does not prefer static libs over shared
libs even if we use the `static: true` kwarg.
|
|
|
|
Mesa has 4 build systems currently, set our version in a file called
VERSION, and read that in to each build system to simplify the release
process. For meson this is accomplished by using run_command within the
project() function declaration itself, and with meson <= 0.43.0 this
works fine. Commit 1b0048a7022a89f461cf4d01e7cdbf995bab70f5 makes
scripts that are run through run_command a rebuild dependency, but the
attribute used to store that information is set after the project()
command is processed. This breaks mesa.
The solution is to set that list before calling parse_project.
Fixes #2597
|
|
|
|
Taking mconf for instance:
before:
$ meson configure --help
usage: meson [-h] [-D SETS] [--clearcache] [directory [directory ...]]
after:
$ meson configure --help
usage: meson configure [-h] [-D SETS] [--clearcache] [directory [directory ...]]
|
|
|
|
I left a hack patch in a pull request for LLVM, and the result is that
LLVM doesn't link with static builds. The real problem was that some
distros have pkg-config for tinfo, other's don't, so the correct
solution is to use cpp_compiler.find_library if dependency() fails.
|
|
So set it as the first versioned config to check for, and add
llvm-config-6.0 to the list of configs.
|
|
|
|
LLVM: Fix dynamic vs statically linking.
|
|
interchangeably.
|
|
Fix detection of include dirs with gnu compiler and non US locale
|
|
Closes #2540
|
|
|
|
There is no reason to indent twice inside blocks.
|
|
Unfortunately, `time.time` and file timestamps are not guaranteed to be
in sync and due to various kernel caches may be different enough to
cause rebuilds to fail [1]. This was masked by older ninja versions that
could not read sub-second timestamps.
[1] https://travis-ci.org/mesonbuild/meson/jobs/296797872
|
|
|
|
set_value() already does a better job at parsing strings, such as
accepting "True" for a boolean.
This fixes issue #2544
|
|
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
|
|
Auto detection was based on parsing gcc's output so we have to
ensure that it is always 'C'.
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
|
|
Remove references to `mesontest`
|
|
|
|
|
|
`mesontest` is deprecated, and shouldn't be suggested to users anymore.
|
|
`mesontest` is deprecated, and shouldn't be suggested to users anymore.
|
|
|
|
Evaluate subproject directory name correctly
|
|
|
|
Currently, run_target does not get namespaced for each subproject,
unlike executable and others. This means that two subprojects sharing
the same run_target name cause meson to crash.
Fix this by moving the subproject namespacing logic from the BuildTarget
class to the Target class.
|
|
Qt5-Module: Add `moc_extra_arguments` keyword support.
|
|
As suggested by @jeandet.
Details:
https://github.com/mesonbuild/meson/pull/2529#pullrequestreview-72703268
|
|
|
|
|
|
|
|
|
|
self.request_modules doesn't have 'boost_' prefix but lib_modules is keyed on 'boost_*'
|
|
dependencies.
|
|
Use GCC 7 for cross compilation tests.
|
|
With executable(), if the link_with argument has a string as one of it's
elements, meson ends up throwing an AttributeError exception:
...
File "/home/lyudess/Projects/meson/mesonbuild/build.py", line 868, in link
if not t.is_linkable_target():
AttributeError: 'str' object has no attribute 'is_linkable_target'
Which is not very helpful in figuring out where exactly the project is
trying to link against a string instead of an actual link target. So,
fix this by verifying in BuildTarget.link() that each given target is
actually a Target object and not something else.
Additionally, add a simple test case for this in failing tests. At the
moment, this test case just passes unconditionally due to meson throwing
the AttributeError exception and failing as expected. However, this test
case will be useful eventually if we ever end up making failing tests
more strict about failing gracefully (per advice of QuLogic).
|
|
|
|
|