aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-06-26gtkdoc: Use generated types file if there is oneXavier Claessens1-0/+5
Closes: #3773.
2018-06-25ArLinker: Use response files on WindowsMathieu Duponchelle2-7/+3
ninja chokes when building FFmpeg's static libraries, as the command line can be larger than 32000. This was disabled on purpose in #1649, but the rsp syntax was different: this commit makes it so the options and output file are still passed on the command line, gcc-ar didn't work otherwise.
2018-06-24Update documentation about compiler envvars and cross files. [skip ci]Jussi Pakkanen1-11/+46
2018-06-24Warn if compiler envvars point to cross compilers. Closes #3782.Jussi Pakkanen1-0/+7
2018-06-24Return a better warning if compiled executable is invalid.Jussi Pakkanen1-1/+4
2018-06-24Write GNOME all uppercaseAlexandre Franke1-8/+8
GNOME (all caps) is a registered trademark
2018-06-24Add FractalAlexandre Franke1-0/+1
2018-06-21Print default option values that don't match the current valueNiklas Claesson2-2/+21
2018-06-21Added ARMCLANG compiler support for C/C++ (#3717)Vasu Penugonda8-2/+206
2018-06-21Merge pull request #3590 from mesonbuild/testcommandJussi Pakkanen7-457/+531
Made install a top level Meson command.
2018-06-20Added documentation.testcommandJussi Pakkanen2-8/+49
2018-06-20Make it work with current master.Jussi Pakkanen1-8/+9
2018-06-20gtkdochelper: pass CC to gtkdoc-scangobjRoss Burton1-0/+1
The helper is told what CC to use already, but doesn't pass it to gtkdoc-scangobj.
2018-06-20Document environment() append/prepend/set with multiple values [skip ci]Nirbheek Chauhan1-12/+15
Fixes https://github.com/mesonbuild/meson/issues/3761
2018-06-20gdbus_codegen: Only add autocleanup args if glib is new enoughNirbheek Chauhan1-10/+22
Fixes https://github.com/mesonbuild/meson/issues/3766
2018-06-20Validate cpu_family (#3753)Ross Burton3-0/+46
* environment: validate cpu_family in cross file * run_unittests: add unittest to ensure CPU family list in docs and environment matches * run_unittests: skip compiler options test if not in a git repository * environment: validate the detected cpu_family * docs: add 32-bit PowerPC and 32/64-bit MIPS to CPU Families table Names gathered by booting Linux in Qemu and running: $ python3 import platform; platform.machine() Partial fix for #3751
2018-06-20pkgconfig dep: Special-case D link argumentsNirbheek Chauhan1-2/+6
The D compiler does not implement find_library(), so we can't resolve these libraries to absolute paths. Keep the old behaviour till that can be done.
2018-06-20Rename clike_langs to clink_langs for clarityNirbheek Chauhan7-33/+33
D is not a 'c-like' language, but it can link to C libraries. The same might be true of Rust in the future and Go when we add support for it. This contains no functionality changes.
2018-06-20dependencies: Don't assume self.compiler is a C compilerNirbheek Chauhan9-34/+42
All dependencies were using find_library, has_header, get_define, etc on self.compiler assuming that it's a compiler that outputs and consumes C-like libraries. This is not true for D (and in the future, for Rust) since although they can consume C libraries, they do not use the C ecosystem. For such purposes, we now have self.clib_compiler. Nothing uses self.compiler anymore as a result, and it has been removed.
2018-06-20ninjabackend: Obvious typo, missing spaceNirbheek Chauhan1-1/+1
I checked the original commit, and that space should not be there.
2018-06-19Downgrade unknown option from exception to warningXavier Claessens2-6/+4
It used to be non-fatal warnings but recent command line refactor made it fatal. It looks like GNOME continuous would break with this change. To avoid delaying upcoming 0.47.0 release adoption, let's downgrade this back to warning for now and reconsider after the release.
2018-06-19gtkdoc: Fix dependencies not being built before invoking gtkdocXavier Claessens1-7/+7
In GLib when running "ninja gio-doc" without doing a full build first, it won't build libraries and the generated gio-scan.c gets linked against system libgio instead. This fix 2 bugs: gtkdoc() was not passing 'depends' variable down to _get_dependencies_flags(), and many places had 'if depends' which is False when 'depends' is an empty list and not only when it's None. There is no reason for that argument to be optional, we always want to collect dependencies.
2018-06-19Properly name the targetsCorentin Noël1-6/+8
2018-06-19Add more tests to ensure no future regressionCorentin Noël1-0/+4
2018-06-19gdbus_codegen: Keep the same behavior for all GLib versionsCorentin Noël1-51/+62
previous version duplicated the outputs disallowing to select only the .c files or the .h files The docbook output files weren't listed too.
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 Pakkanen4-17/+40
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-18Test windows.compile_resource() when depends: is a custom_targetJon Turney7-0/+104
This test covers the case where the resource script references a file which is created by a custom_target (in this case, an icon). Put icon in a separate directory to ensure we excercise setting the include path to the directory which contains it.
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 Turney3-5/+9
Expose depends: from the custom_target this creates.
2018-06-18run_command: Add new kwarg 'capture'Nirbheek Chauhan4-19/+46
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 Hirsch6-11/+34
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 Chauhan2-4/+16
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-18unittests: Assert that we have pkg-config on all CINirbheek Chauhan1-5/+12
Our appveyor configuration provides pkg-config when building for mingw, cygwin, msvc, etc. Of course, people manually running the tests won't require pkg-config.
2018-06-18macos: Rewrite install_name for dependent built libraries on installNirbheek Chauhan14-84/+147
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-18Test that binaries that use external libraries workNirbheek Chauhan9-14/+96
When we link to an external library either with find_library() without any dirs:, or with dependency(), we should be able to run uninstalled out of the box without having to set any environment variables or other shenanigans. This is especially important on macOS because only the system frameworks directory is in the default runtime path, and all other frameworks and libraries need to be found with RPATH or absolute path to the dylib.
2018-06-18nasm test: use -no-pie (#3710)Mathieu Duponchelle1-1/+6
We were hitting the problem described by: https://stackoverflow.com/questions/43367427/32-bit-absolute-addresses-no-longer-allowed-in-x86-64-linux See the first answer for a detailed explanation Fixes https://github.com/mesonbuild/meson/issues/3707
2018-06-18Add UserFeatureOption typeXavier Claessens10-28/+263
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 Rader6-3/+70
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 Pakkanen10-2/+55
Use a unique name for windows resource compilation custom target