summaryrefslogtreecommitdiff
path: root/mesonbuild/scripts
AgeCommit message (Collapse)Author
2018-09-28dist: Make usage of period in messages consistentNirbheek Chauhan
Having a period at the end of sentences in messages is confusing when a file or path is being outputted, and is inconsistent when not. This is part of an ongoing effort to fix this inconsistency across the message outputs everywhere in Meson.
2018-09-28gtkdochelper: show full command if it failsRoss Burton
Instead of showing just the command invoked, it's useful when debugging to also show all of the arguments.
2018-09-21gnome: add support for `module_version`Marco Trevisan (Treviño)
gtk-doc for autotools has the concept of module version, that is used to define the module install path and the devhelp2 basename. Add a `module_version` parameter to gnome.gtkdoc to replicate the same behavior. Updated the test checking that the install_dir is properly computed (if not passed), and that the .devhelp2 file has proper name. https://gitlab.gnome.org/GNOME/gtk-doc/blob/GTK_DOC_1_29/buildsystems/autotools/gtk-doc.make#L269
2018-08-29Merge pull request #4016 from thiblahute/hotdocJussi Pakkanen
modules: Add an 'hotdoc' module
2018-08-28modules: Add an 'hotdoc' moduleThibault Saunier
hotdoc: http://github.com/hotdoc/hotdoc/
2018-08-27Add support for custom dist scripts.Jussi Pakkanen
2018-08-07gtkdoc: set PATH on Windows when executing gtkdoc-scangobj. Fixes #3307Christoph Reiter
The code was adding the library paths to LD_LIBRARY_PATH, but that doesn't work on Windows where they need to be added to PATH instead. Move the environ handling into gtkdoc_run_check() and add paths to PATH instead of LD_LIBRARY_PATH when on Windows. This fixes the gtk-doc build for glib on Windows (in case glib isn't installed already)
2018-07-31Merge pull request #3799 from rossburton/gtkdocJussi Pakkanen
scripts/gtkdochelper: add support for --run
2018-07-09scripts/gtkdochelper: add support for --runRoss Burton
gtkdoc-scangobj has a --run argument that specifies a wrapper to be used when executing the GObject scanner. Typically this can be libtool but it is also useful in cross-compilation environments. This patch adds support for this argument to the gtkdochelper so that tools using the helper can pass --run if required.
2018-07-09cross: Be more permissive about not-found exe_wrapperNirbheek Chauhan
We used to immediately try to use whatever exe_wrapper was defined in the cross file, but some people generate the cross file once and use it for several projects, most of which do not even need an exe wrapper to build. Now we're a bit more resilient. We quietly fall back to using non-exe-wrapper paths for compiler checks and skip the sanity check. However, if some code needs the exe wrapper, f.ex., if you run a built executable using custom_target() or run_target(), we will error out during setup. Tests will, of course, continue to error out when you run them if the exe wrapper was not found. We don't want people's tests to silently "pass" (aka skip) because of a bad CI setup. Closes https://github.com/mesonbuild/meson/issues/3562 This commit also adds a test for the behaviour of exe_wrapper in these cases, and refactors the unit tests a bit for it.
2018-07-09cross: Use ExternalProgram for cross-file exe_wrapperNirbheek Chauhan
We already have code to fetch and find binaries specified in a cross file, so use the same code for exe_wrapper. This allows us to handle the same corner-cases that were fixed for other cross binaries.
2018-07-03java: remove manifest classpath from installed jarNiclas Moeslund Overby
2018-06-26gtkdoc: Use generated types file if there is oneXavier Claessens
Closes: #3773.
2018-06-21Merge pull request #3590 from mesonbuild/testcommandJussi Pakkanen
Made install a top level Meson command.
2018-06-20gtkdochelper: pass CC to gtkdoc-scangobjRoss Burton
The helper is told what CC to use already, but doesn't pass it to gtkdoc-scangobj.
2018-06-18Made install a top level Meson command.Jussi Pakkanen
2018-06-18meson_install: Don't add DESTDIR to install_nameNirbheek Chauhan
This was added accidentally. Includes a test for it. Also fix a rebase error. The variable was defined incorrectly and was overwritten with the correct value immediately afterwards.
2018-06-18macos: Rewrite install_name for dependent built libraries on installNirbheek Chauhan
On macOS, we set the install_name for built libraries to @rpath/libfoo.dylib, and when linking to the library, we set the RPATH to its path in the build directory. This allows all built binaries to be run as-is from the build directory (uninstalled). However, on install, we have to strip all the RPATHs because they point to the build directory, and we change the install_name of all built libraries to the absolute path to the library. This causes the install name in binaries to be out of date. We now change that install name to point to the absolute path to each built library after installation. Fixes https://github.com/mesonbuild/meson/issues/3038 Fixes https://github.com/mesonbuild/meson/issues/3077 With this, the default workflow on macOS matches what everyone seems to do, including Autotools and CMake. The next step is providing a way for build files to override the install_name that is used after installation for use with, f.ex., private libraries when combined with the install_rpath: kwarg on targets.
2018-06-18depfixer: Rewrite install_name for dylibs on installNirbheek Chauhan
The install name is used by consumers of the library to find the library at runtime. If it's @rpath/libfoo.dylib, all consumers must manually add the library path to RPATH, which is not what people expect. Almost everyone sets the library install name as the full path to the library, and this is done at install time with install_name_tool.
2018-06-17gtkdoc: Run gtkdoc-scangobj command from build directoryXavier Claessens
All paths in CFLAGS are relative to build_root, so current directory must be there we invoking gtkdoc-scangobj. Closes: #3379
2018-06-07gettext: Install .mo files atomicallyPhilip Chimento
Without this, building a module in a Flatpak app manifest that is a newer version of a module already present in the Flatpak runtime will fail. (The Flatpak file system is a bunch of hard links to readonly files, which can be replaced but not written to.) This instead creates a temporary file in the same directory as the destination (to avoid cross-device renaming errors) and atomically renames the temporary file to the destination, replacing it instead of rewriting it as shutil.copyfile() would do.
2018-06-06Fix issues found by flake8Xavier Claessens
2018-06-05Set WINEPATH when running serialized executablesNirbheek Chauhan
When the exe runner is `wine` or `wine32` or `wine64`, etc. This allows people to run tests with wine. Note that you also have to set WINEPATH to point to your custom prefix(es) if your tests use external dependencies. Closes https://github.com/mesonbuild/meson/issues/3620
2018-06-02Add 'install_mode' to all installable targetsFilipe Brandenburger
This makes it possible to customize permissions of all installable targets, such as executable(), libraries, man pages, header files and custom or generated targets. This is useful, for instance, to install setuid/setgid binaries, which was hard to accomplish without access to this attribute.
2018-06-01Set the meson command to use when we know what it isNirbheek Chauhan
Instead of using fragile guessing to figure out how to invoke meson, set the value when meson is run. Also rework how we pass of meson_script_launcher to regenchecker.py -- it wasn't even being used With this change, we only need to guess the meson path when running the tests, and in that case: 1. If MESON_EXE is set in the env, we know how to run meson for project tests. 2. MESON_EXE is not set, which means we run the configure in-process for project tests and need to guess what meson to run, so either - meson.py is found next to run_tests.py, or - meson, meson.py, or meson.exe is in PATH Otherwise, you can invoke meson in the following ways: 1. meson is installed, and mesonbuild is available in PYTHONPATH: - meson, meson.py, meson.exe from PATH - python3 -m mesonbuild.mesonmain - python3 /path/to/meson.py - meson is a shell wrapper to meson.real 2. meson is not installed, and is run from git: - Absolute path to meson.py - Relative path to meson.py - Symlink to meson.py All these are tested in test_meson_commands.py, except meson.exe since that involves building the meson msi and installing it.
2018-06-01Revert "commandrunner: make run handle python options"Filipe Brandenburger
This reverts commit ab599b5733539130db5c4d17c664744f4d5aacaf.
2018-05-30commandrunner: make run handle python optionsMartin Kelly
Currently, commandrunner breaks when we give options to python because it assumes python commands are in the form "python script.py", rather than "python -u script.py" or "python -u -m module script.py". Extend it to be more resilient and correctly parse python options.
2018-05-24depfixer: Run install_name_tool only once while deleting rpathsNirbheek Chauhan
2018-05-24depfixer: We no longer run this as a scriptNirbheek Chauhan
2018-05-18Print message when using polkitRyan Gonzalez
2018-05-18Fix #3579: Wait for a permissions failure before trying to run pkexecRyan Gonzalez
2018-05-17Support installation via polkitRyan Gonzalez
2018-05-06gnome.gtkdoc: Allow passing file objects as xml_filesNirbheek Chauhan
If we pass a source files() object, we will look for it in the build directory, which is wrong. If we pass a build files() object (from configure_file()), we will find it in the build directory, and then try to copy it on top of itself in gtkdochelper.py getting a SameFileError. Add a test for it, and also properly iterate custom target outputs when adding to content files.
2018-05-01Made depfixer more robust on OSX. Closes #3493.Jussi Pakkanen
2018-04-18Add new builtin option --install-umaskFilipe Brandenburger
This option controls the permissions of installed files (except for those specified explicitly using install_mode option, e.g. in install_data rules.) An install-umask of 022 will install all binaries, directories and executable files with mode rwxr-xr-x, while all data and non-executable files will be installed with mode rw-r--r--. Setting install-umask to the string 'preserve' will disable this feature, keeping the permissions of installed files same as the files in the build tree (or source tree for install_data and install_subdir.) Note that, in this case, the umask used when building and that used when checking out the source tree will leak into the install tree. Keep the default as 'preserve', to show that no behavior is changed and all tests keep passing unchanged. Tested: ./run_tests.py
2018-04-14🤦🤦🤦Jussi Pakkanen
2018-04-08Update depfixer to fix rpaths also on OSX.Jussi Pakkanen
2018-04-02Merge pull request #3242 from thejk/coverage_targetsJussi Pakkanen
Use standalone coverage script for legacy targets
2018-04-02gtkdochelper: print warningsSébastien Wilmet
The GTK-Doc commands output was never printed, except in case of error. So there was no way to see the warnings. https://github.com/mesonbuild/meson/issues/2396
2018-03-27Always build parser objects anew to avoid leaking old data.Jussi Pakkanen
2018-03-19Create a helper for checking if a string has a path componentNirbheek Chauhan
This is used in a number of places, and in some places it is incomplete. Use a helper to ensure it's used properly.
2018-03-19Generate coveragereport directory for gcovr html targetJoel Klinghed
2018-03-19Exclude subprojects when doing coverageJoel Klinghed
Restore subproject exclusion for the html coverage report that existed in the ninja backend legacy target. Also exclude subprojects for the gcovr generated reports.
2018-03-19Use standalone coverage script for legacy targetsJoel Klinghed
ninja coverage -> generate all possible reports (text, xml, html) depending on gcovr and/or lcov/genhtml availability. ninja coverage-html -> generate only html report ninja coverage-xml -> generate only xml report ninja coverage-text -> generate only text report Make all targets phony, the old legacy rules where just annoying as you would have to remove the old report before being able to generate a new one. ninja coverage succeeds if it can generate at least one report. ninja coverage-* only succeeds if it can generate the requested report
2018-03-15Fix FileNotFoundError when restorecon unavailableFabrice Fontaine
Fixes: - http://autobuild.buildroot.net/results/d5dcdfdfab3503fdc387f99e68267972a38c417d Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2018-03-13Merge pull request #3145 from thejk/gcovrJussi Pakkanen
Support gcovr >= 3.1 and add gcovr html report as fallback
2018-03-12fixup! Allow gcovr >= 3.1 to be used to generate html coverage reportJoel Klinghed
Rename gcovr_3_1 to gcovr_new_rootdir
2018-03-12fixup! Fix coverage-xml and coverage-text targets for gcovr >= 3.1Joel Klinghed
Rename gcovr_3_1 to gcovr_new_rootdir
2018-03-12Use specific exception types instead of ExceptionAleksey Filippov
2018-03-11Do not use bare except [flake8]Aleksey Filippov
Use more specific exception types where appropriate. This patch does not change bare except calls if exception is re-raised.