Commit Graph

665 Commits

Author SHA1 Message Date
Xavier Claessens 93dc9cfcc3 gnome.generate_gir: Fix missing include directories
This revert a part of #7020 because it was using gir_inc_dirs
before it is set. Properly fix typelib_includes instead that was working
only when g-i is a pkgconfig dependency.
2020-05-14 17:59:17 +00:00
Marc-André Lureau efb86088bc python: install_sources() should default to pure, following the doc
As stated by the doc, default to install python sources to purelib
location, as they should not depend on platform.

This also fixes discrepancy between get_install_dir() and
install_sources() locations.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2020-05-10 20:08:41 +03:00
Paolo Bonzini 7e15295018 rename unstable-kconfig to unstable-keyval
Discussions in #6524 have shown that there are various possible uses of the
kconfig module and even disagreements in the exact file format between
Python-based kconfiglib and the tools in Linux.  Instead of trying to
reconcile them, just rename the module to something less suggestive and
leave any policy to meson.build files.

In the future it may be possible to add some kind of parsing through
keyword arguments such as bool_true, quoted_strings, etc. and possibly
creation of key-value lists too.  For now, configuration_data objects
provide an easy way to access quoted strings.  Note that Kconfig stores
false as "absent" so it was already necessary to write "x.has_key('abc')"
rather than the more compact "x['abc']".  Therefore, having to use
configuration_data does not make things much more verbose.
2020-05-08 20:56:14 +03:00
James Hilliard 1e073c4c1b Allow overriding g-ir-scanner and g-ir-compiler binaries.
This is useful when one needs to force meson to use wrappers for cross
compilation.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
2020-05-07 10:19:34 -04:00
Xavier Claessens 4929547b53 gnome: Print proper error when 'nsversion' or 'namespace' are missing 2020-04-30 09:40:35 -04:00
Xavier Claessens 707d3a2e20 gnome: Fix usage of gobject-introspection as subproject 2020-04-28 14:39:59 -04:00
Xavier Claessens 39a69d1fb0 find_program: Fixes when the program has been overridden by executable
- ExternalProgramHolder has path() method while CustomTargetHolder and
  BuildTargetHolder have full_path().
- The returned ExternalProgramHolder's path() method was broken, because
  build.Executable object has no get_path() method, it needs the
  backend.
- find_program('overridden_prog', version : '>=1.0') was broken because
  it needs to execute the exe that is not yet built. Now assume the
  program has the (sub)project version.
- If the version check fails, interpreter uses
  ExternalProgramHolder.get_name() for the error message but
  build.Executable does not implement get_name() method.
2020-04-28 01:39:56 +03:00
Michael c53b637959 switch python2 %s for python3 .format 2020-04-21 00:16:21 +03:00
Jon Turney 7005e211a2 Report an errror if glib-compile-resources is missing
Produce a diagnostic if we try to use gnome.compile_resources() when
glib-compile-resources isn't present, rather than a python backtrace.
2020-03-29 20:53:50 +03:00
Xavier Claessens 4d7ccd1399 Make werror per subproject option 2020-03-24 22:48:55 +02:00
Xavier Claessens 326e9dcc51 gtkdoc: Add missing permitted kwarg
The 'check' kwarg was added in Meson 0.52.0.
2020-03-23 23:57:49 +02:00
John Ericson 3a4388e51d Fix legacy env var support with cross
Fix #3969
2020-03-23 17:51:36 +02:00
Fini Jastrow b745769535 pkgconfig: Document conflicts keyword
[why]
Sometimes one want to set the 'Conflicts:' field in .pc files.

This is possible by using the 'conflicts' keyword argument in the
pkgconfig module. The feature is not documented on mesonbuild.org,
though.

But a warning is issued:
  WARNING: Passed invalid keyword argument "conflicts".
  WARNING: This will become a hard error in the future.

History:

It has been added along with kwarg 'url' with commit
  309041918 pkgconfig: Add missing 'URL' and 'Conflicts' entries

Later the kwargs check has been introduced with
  80d665e8d Converted some modules.
but both 'url' and 'conflicts' were missing.

With commit
   2acf737b pkgconfig: Document url keyword
the 'url' kwarg has been added to the checks, but not 'conflicts'.

[how]
Add 'conflicts' to the allowed kwargs.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2020-03-09 09:10:06 -04:00
Jussi Pakkanen 44ff3e6c7d
Merge pull request #6736 from dcbaker/mesonlib-type-annotations
Mesonlib type annotations
2020-03-08 14:49:23 +02:00
Xavier Claessens ecb076ba00 qt5: Add has_tools() method 2020-03-08 13:48:27 +02:00
Dylan Baker 06b1a317d2 Make use of unholder
We have a lot of cases of code like:
```python
if hasattr(var, 'held_object'):
    var = var.held_object`
```

replace that with the unholder function.
2020-03-05 09:58:52 -08:00
Dylan Baker 581d69a8d3 remove ability to pass multiple keys to extract_as_list
This makes the typing annotations basically impossible to get right, but
if we only have one key then it's easy. Fortunately python provides
comprehensions, so we don't even need the ability to pass multiple keys,
we can just [extract_as_list(kwargs, c) for c in ('a', 'b', 'c')] and
get the same result.
2020-03-05 09:58:52 -08:00
Dylan Baker b231ff36df Remove some uses of mesonlib.run_once
These are basically doing what mlog.log(..., once=True) does, so lets
just use that. The once argument to mlog is newer, so these probably
should have been changed already.
2020-03-05 09:31:29 -08:00
Dylan Baker a8293dd59c mesonlib: Replace unholder argument to listify
listify shouldn't be unholdering, it's a function to turn scalar values
into lists, or flatten lists. Having a separate function is clearer,
easier to understand, and can be run recursively if necessary.
2020-03-05 09:31:29 -08:00
Stéphane Cerveau 21e543fea8 pkgconfig: Fix deprecation message (fixes #6720)
Deprecation warning was unable to display because of patch
c8f8d58273

fixes #6720
2020-03-03 08:25:25 -05:00
Adam Duskett 6ba034c37d mesonbuild/modules/gnome.py: Fix giscanner and gicompiler logic
Currently, giscanner and the gicompiler paths are only scanned via pkg-config
if they are first found in the host path.

Add a else statement to fix this oversite.
2020-02-26 11:49:34 -05:00
Adam Duskett f66b04b099 gobject-introspection: determine g-ir-scanner and g-ir-compiler paths from pkgconfig
Currently, meson hard codes the paths of these binaries which results in
cross-compiled environments to run the host versions of these tools.
However, GObject-introspection provides the appropriate paths to these
utilities via pkg-config

find_program is needed in the case g-i is built as a subproject. If
g-ir-scanner or g-ir-compiler are in the build or source directory use those.
If they aren't found in the source directory, use the results from pkg-config.
2020-02-25 20:16:44 -05:00
Rohan Garg 73f03e6093 Introduce dataonly for the pkgconfig module
This allows users to disable writing out the inbuilt variables to
the pkg-config file as they might actualy not be required.

One reason to have this is for architecture-independent pkg-config
files in projects which also have architecture-dependent outputs.

For example : https://gitlab.freedesktop.org/wayland/weston/issues/269

Fixes #4011
2020-02-20 10:19:19 -05:00
Dylan Baker 73ddc01477 modules/cmake: Add a found() method to the cmake subproject
Just like the native meson subproject has.
2020-02-19 07:07:35 +05:30
Dylan Baker 52d36aaec1 modules/cmake: Use the noPosargs helper 2020-02-19 07:07:35 +05:30
Nirbheek Chauhan 40b58be100 modules/python: Do not error out if positional args are passed
Also update the documentation.

Fixes https://github.com/mesonbuild/meson/issues/6470
2020-02-17 00:38:57 +02:00
Michael Hirsch, Ph.D 2bbd57092f add FeatureNew 2020-02-06 12:54:38 -05:00
Michael Hirsch, Ph.D 5bbeab8ed4 add fs.stem() 2020-02-06 12:54:38 -05:00
Michael Hirsch, Ph.D dcb7043403 fs: add expanduser method
this should help users specify leading `~` in various Meson options and variables
without refactoring lots of places inside Meson itself.
2020-02-06 12:54:38 -05:00
Michael Hirsch, Ph.D 4556343d95 fs: add methods as_posix, is_absolute
fs: make exception specify method name

fs: actually raise exceptions

fs: resolve path e.g.  /opt/foo/.. => /opt/foo

fs: correct behavior of is_symlink
2020-02-06 12:54:38 -05:00
Xavier Claessens 4c5a9523be pkgconfig: Generate -uninstalled.pc files
Closes: #3472.
2020-02-05 16:54:01 +01:00
Xavier Claessens b3ab022777 pkgconfig: Fix code that make relative path
When subdir is '/foo/bar' and prefix '/foo' it was returning '/bar',
which is an absolute path. It was then constructing '-L${prefix}//bar'
with bogus double slash.

When subdir is '/fooo/bar' and prefix '/foo' it was returning 'o/bar'.
2020-02-05 16:54:01 +01:00
Dylan Baker fbad73c939 dependencies: Use a DependencyFactory for threads
This lets us make a number of uses of threads safer, because we can use
the threads_factory instead of the ThreadDependency
2020-01-29 09:11:24 -08:00
Dylan Baker fd892ad7ce dependencies: Make Dependency initializer signatures match
Currently PkgConfig takes language as a keyword parameter in position 3,
while the others take it as positional in position 2. Because most
dependencies don't actually set a language (they use C style linking),
using a positional argument makes more sense. ExtraFrameworkDependencies
is even more different, and duplicates some arguments from the base
ExternalDependency class.

For later changes I'm planning to make having all of the dependencies
use the same signature is really, really helpful.
2020-01-29 09:11:24 -08:00
Jussi Pakkanen a51c9af921
Merge pull request #6423 from dcbaker/declare-dependency-variables
Add ability to set and query arbitrary variables on declare_dependency objects
2020-01-27 18:29:22 +02:00
Eli Schwartz 71bbcc7669 pkgconfig module: add FeatureNew for requires: dependency('foo')
Introduced in https://github.com/mesonbuild/meson/pull/3131
2020-01-09 22:08:03 -05:00
Dylan Baker cd895be99a dependencies: Add ability to set arbitrary variables on
declare_dependencies

This allows dependencies declared in subprojects to set variables, and
for those variables to be accessed via the get_variable method, just
like those from pkg-config and cmake. This makes it easier to use
projects from subprojects in a polymorphic manner, lowering the
distinction between a subproject and an external dependency every
further.
2020-01-09 11:02:17 -08:00
Daniel Mensinger 09b53c534f types: import typing as T (fixes #6333) 2020-01-08 15:28:17 +01:00
Michael Hirsch, Ph.D fb121f6254 fs: rename samefile => is_samepath
is_samepath better reflects the nature of this function--that files
and directories can be compared.

Also, instead of raising exceptions, simply return False when one
or both .is_samepath(path1, path1) don't exist. This is more
intuitive behavior and avoids having an extra if fs.exist() to go
with every fs.is_samepath()
2019-12-19 08:51:31 -05:00
Daniel Mensinger c4649704c8 python: add embed to the python dependency function 2019-12-18 01:19:16 +02:00
Michael Hirsch, Ph.D 0f65bf1dd7
rpm: update for host machine compiler API change 2019-12-05 23:07:18 -05:00
Michael Brockus 7d162487e3 Add raise at the start of MesonException 2019-12-04 10:54:24 +02:00
Marc Herbert adcd70861d modules/qt.py: friendlier "lrelease-qtN not found" error message
When lrelease-qtN is missing, upgrade the error message from the
cryptic:

  meson.build:75:4: ERROR: Tried to use not-found external program in "command"

to the meaningful:

  meson.build:75:4: ERROR: qt.compile_translations: lrelease-qt5 not found

Issue found and tested with "test cases/frameworks/4 qt/"
2019-11-27 02:28:20 +02:00
Xavier Claessens a6f7a1d8c4 fs: Add parent() and name() methods 2019-11-25 14:55:19 -05:00
Olexa Bilaniuk bbaacc0a63 Add table entry for CUDA Toolkit 10.2.89. 2019-11-21 13:53:08 -05:00
Michael Hirsch, Ph.D 0cb48cdc79
fs: make replace_suffix not expand file to absolute path, just manipulate the string 2019-11-17 00:22:53 -05:00
Michael Hirsch, Ph.D 2ae96f8595
fs: replace_suffix 2019-11-17 00:17:06 -05:00
Michael Hirsch, Ph.D a320274179
fs: get file size
fs: add samefile
2019-11-17 00:17:04 -05:00
Michael Hirsch, Ph.D 67651271f6
fs: add hash compute method 2019-11-17 00:17:04 -05:00
Michael Hirsch, Ph.D 052d918908
add fs.with_suffix 2019-11-17 00:17:02 -05:00