aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2018-06-20Make it work with current master.Jussi Pakkanen1-8/+9
2018-06-18Add option to only install changed files.Jussi Pakkanen1-8/+22
2018-06-18Refactored installer to use a class to eradicate global variables.Jussi Pakkanen2-270/+265
2018-06-18Made install a top level Meson command.Jussi Pakkanen3-15/+39
2018-06-18generate_gir: Add all the files provided by the CustomTargetCorentin Noël1-3/+4
2018-06-18Make a custom target output dir as an include dir relative to @BUILD_ROOT@Jon Turney1-1/+1
Make a custom target output dir as an include dir relative to @BUILD_ROOT@, so that path is constructed correctly when using the absolute path forms used by the MSVC backend.
2018-06-18Correctly substitute the internal @BUILD_ROOT@ token with MSVC backendJon Turney1-1/+1
To me, this looks like a mistake in 976c9abc, but perhaps there's something I don't understand going on here.
2018-06-18Make depends: of windows.compile_resources() include-ableJon Turney2-0/+8
Add the output directories for any custom target in depends: to the resource compiler include path
2018-06-18Add a depends: keyword to windows.compile_resources()Jon Turney1-4/+6
Expose depends: from the custom_target this creates.
2018-06-18run_command: Add new kwarg 'capture'Nirbheek Chauhan2-17/+23
capture: false means we won't try to read the stdout at all. Closes https://github.com/mesonbuild/meson/issues/3364
2018-06-18Deprecate `build_always`, add `build_always_stale`Alex Hirsch4-9/+18
Since `build_always` also adds a target to the set of default targets, this option is marked deprecated in favour of the new option `build_always_stale`. `build_always_stale` *only* marks the target to be always considered out of date, but does *not* add it to the set of default targets. The old behaviour can still be achieved by combining `build_always_stale` with `build_by_default`. fixes #1942
2018-06-18meson_install: Don't add DESTDIR to install_nameNirbheek Chauhan1-2/+1
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-18Add missing stubs to Compiler.Christoph Behle1-0/+12
Added missing stubs to class Compiler for the methods: * compute_int * has_members * has_type * symbols_have_underscore_prefix
2018-06-18Add check for arguments of has_members.Christoph Behle1-0/+2
Ensure that has_members has at least two arguments.
2018-06-18Use stub to report misuse of get_defineChristoph Behle2-4/+4
Instead of checking on the call site add a stub to Compiler which raises an exception.
2018-06-18Test if compiler supports get_define.Christoph Behle1-1/+4
Raise an InterpreterError for a clean error message if get_define is not supported by the compiler.
2018-06-18macos: Rewrite install_name for dependent built libraries on installNirbheek Chauhan12-76/+125
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 Chauhan2-8/+18
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-18pkgconfig deps: Also resolve paths to shared librariesNirbheek Chauhan2-31/+51
This allows us to more aggressively de-dup them, and also sets RPATHs to all libraries that are not in the system linker paths so that binaries can be run uninstalled without any special steps. These RPATHs will be wiped on install, so they do not affect reproducible builds. De-duping: Fixes https://github.com/mesonbuild/meson/issues/2150 Fixes https://github.com/mesonbuild/meson/issues/2118 Fixes https://github.com/mesonbuild/meson/issues/3071 RPATHs: Fixes https://github.com/mesonbuild/meson/issues/314 Fixes https://github.com/mesonbuild/meson/issues/2881 Also fixes the uninstalled usage portions of: https://github.com/mesonbuild/meson/issues/3038 https://github.com/mesonbuild/meson/issues/3077
2018-06-18Add UserFeatureOption typeXavier Claessens3-25/+129
This is a special type of option to be passed to most 'required' keyword arguments. It adds a 3rd state to the traditional boolean value to cause those methods to always return not-found even if the dependency could be found. Since integrators doesn't want enabled features to be a surprise there is a global option "auto_features" to enable or disable all automatic features.
2018-06-17Report exit status or signal that killed the testKurtis Rader1-3/+34
When a test fails due to a signal (e.g., SIGSEGV) it can be somewhat mysterious why the test failed. Also, even when a test fails due to a non-zero exit status it would help if the exit status was reported. This augments the result string to include the non-zero exit status or signal number and name. Resolves #3642
2018-06-17Merge pull request #3715 from jon-turney/duplicate-rsrc-script-nameJussi Pakkanen1-2/+4
Use a unique name for windows resource compilation custom target
2018-06-17Support Rust targets with more than one source file. Closes #3632.Jussi Pakkanen1-3/+9
2018-06-17gtkdoc: Run gtkdoc-scangobj command from build directoryXavier Claessens2-2/+5
All paths in CFLAGS are relative to build_root, so current directory must be there we invoking gtkdoc-scangobj. Closes: #3379
2018-06-12Always apply concatenate_string_literal.Christoph Behle2-5/+1
get_define always applies concatenate_string_literal to its result. Remove kwarg concatenate_string_literal from get_define.
2018-06-12Make concatenate_string_literals staticChristoph Behle1-1/+2
2018-06-12get_define can concatenate string literals.Christoph Behle2-1/+14
Added method concatenate_string_literals to CCompiler. Will concatenate string literals. Added keyword argument 'concatenate_string_literals' to Compiler.get_define. If used will apply concatenate_string_literals to its return value.
2018-06-12Revert changeChristoph Behle1-2/+2
2018-06-12Concatenate string literals in get_defineChristoph Behle1-3/+4
If get_define returns a list of string_literals concatenate them into one string.
2018-06-10modules/qt: check for un-suffixed moc,rcc,uic on windowsMatthew Waters1-1/+1
The windows Qt installer doesn't ship with suffixed versions of the qt tools.
2018-06-10Visual Studio: Implement startup projectNiklas Claesson2-5/+24
2018-06-10Add missing FeatureNew for libwmf dependencyNirbheek Chauhan1-0/+1
Also add it to the release notes for the 0.44 release. https://github.com/mesonbuild/meson/pull/3709#issuecomment-395738573
2018-06-10vala: fix extract_all_objects() resultPaolo Bonzini1-2/+2
Because vala is not listed in clike_langs, is_source(fname) is returning False for Vala source files. Therefore, extract_all_objects() is completely empty for Vala programs. Fixes #791
2018-06-10configure_file: Add 'encoding' to FeatureNewNirbheek Chauhan1-1/+1
2018-06-09Add file encoding to configure_fileSander Sweers2-7/+13
Input files can be in any file encoding, not just utf-8 or isolatin1. Meson should not make assumptions here and allow for the user to specify the encoding to use.
2018-06-09Fix options being reset to default on reconfigureXavier Claessens1-4/+14
Closes: #3712
2018-06-09Refine cross file checking to ignore directoriesJon Turney1-2/+2
e.g. 'meson x86_64-w64-mingw32 --cross-file x86_64-w64-mingw32' currently fails with an IsADirectoryError exception. Cross files must be files, so when searching, only accept a candidate path which is an existing file, not just an existing path.
2018-06-08gdbus_codegen: Support --c-generate-autocleanupRobert Ancell1-2/+7
2018-06-08mintro: Fix introspecting installation pathsThibault Saunier1-2/+2
A new custom_install_mode element was added in 05c43cdcd
2018-06-07Use a unique name for windows resource compilation custom targetJon Turney1-2/+4
2018-06-07gdbus_codegen: Support arbitrary extra argumentsRobert Ancell1-1/+4
2018-06-07backends: Don't exclude system libraries for PATHNirbheek Chauhan1-3/+3
We reuse the same function for generating PATH, and we don't want to exclude system paths there for obvious reasons.
2018-06-07find_library: Add a cache for library searchingNirbheek Chauhan2-7/+27
Otherwise we can end up searching for the same library tens of times, because pkg-config does not de-duplicate -lfoo args before returning them. We use -Wl,--start-group/end-group, so we do not need to worry about ordering issues in static libraries.
2018-06-07backends: Don't hardcode system library pathsNirbheek Chauhan1-5/+12
Lookup the library paths using the available compilers instead. This makes the code work on non-Linux platforms too.
2018-06-07Install shared_module implibsJon Turney2-2/+1
On Windows, if we are going to link with a shared module, we need the implib. Use case: The Xorg server builds some X protocol extensions as modules. The implibs for these modules need to be shipped as part of the SDK, to enable building of 3rd party extensions which reference symbols in (and hence on Windows, need to be linked with) these modules.
2018-06-07More clearly explain portability issues with linking to a moduleJon Turney1-2/+6
Refine #3277 According to what I read on the internet, on OSX, both MH_BUNDLE (module) and MH_DYLIB (shared library) can be dynamically loaded using dlopen(), but it is not possible to link against MH_BUNDLE as if they were shared libraries. Metion this as an issue in the documentation. Emitting a warning, and then going on to fail during the build with mysterious errors in symbolextractor isn't very helpful, so make attempting this an error on OSX. Add a test for that. See also: https://docstore.mik.ua/orelly/unix3/mac/ch05_03.htm https://stackoverflow.com/questions/2339679/what-are-the-differences-between-so-and-dylib-on-osx
2018-06-07dependencies/qt: fix debugoptimized builds with qtMatthew Waters1-1/+1
debugoptimized builds building against Qt would ultimately link against both the debug and non-debug msvcrt, ntdll, etc libraries which causes crashes in weird places and is very much not recommended by Microsoft. This changes the selected Qt library(ies) correctly to not uses the debug variants for debugoptimized builds. https://github.com/mesonbuild/meson/pull/3680
2018-06-07Interpreter: Fix subdir_done() to exit from inside if/foreach blocksXavier Claessens2-4/+8
Closes: #3700.
2018-06-07gettext: Install .mo files atomicallyPhilip Chimento1-2/+4
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-06compilers: Use RUSTFLAGS from the env as default rust_args valueXavier Claessens1-1/+2