aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-08-05cmake: Do not split CMAKE_PREFIX_PATH with ':' on WindowsNirbheek Chauhan1-1/+6
This is obviously wrong, since on Windows ':' is in the drive letter. Causes us to call cmake with `-DCMAKE_PREFIX_PATH=c;\foo\bar`.
2020-08-05Document VS backend from_buildtype behaviour change in release notesNirbheek Chauhan1-0/+8
Closes https://github.com/mesonbuild/meson/issues/7438
2020-08-04tests/common/227: remove unneeded is_git_checkoutMichael Hirsch, Ph.D1-12/+6
2020-08-04tests/common/227: don't have symlink in GitMichael Hirsch2-3/+4
Windows Git users with symlinks have a constantly dirty repo from this "a_symlink". This change generates a symlink in the build directory when the test is run.
2020-08-04"Downgrade" warning when regenerating after version bumpZbigniew Jędrzejewski-Szmek3-5/+18
There is nothing to "warn" about, this is a completely routine occurence. OTOH, when something is corrupted, we should warn. Keep the red color and "WARNING:" prefix in that case. Example output: $ ninja -C build Regenerating configuration from scratch: Build directory has been generated with Meson version 0.55.999, which is incompatible with current version 0.56.0. The Meson build system Version: 0.56.0 ...
2020-08-04tests: Disable Boost extralib test on macOSSimon McVittie1-1/+5
Since upgrading Boost to version 1.73, this test segfaults on macOS when dynamically linked. Disable it to keep the rest of the CI reliable. Mitigates: #7535 Signed-off-by: Simon McVittie <smcv@debian.org>
2020-08-04Capitalize some constants in coredataJohn Ericson5-21/+21
I've been getting confused between them and similarly-named other things, so I figured it was high time to clean this up.
2020-08-03cmake: Only run the cmake_module_path test for CMake >= 3.12Daniel Mensinger2-16/+6
2020-08-03cmake: resolve IMPORTED executables in custom commands (fixes #7509)Daniel Mensinger5-5/+49
2020-08-02Make meson recognize the Qualcomm LLVM toolchainAntony Chan3-2/+17
Meson calls `path/to/clang++ --version` to guess which build toolchain the user has picked to build the source code. For the Qualcomm LLVM toolchain, the output have an unusual output as shown below: ``` clang version 8.0.12 Snapdragon LLVM ARM Compiler 8.0.12 (based on llvm.org 7.0+) Target: arm-unknown-linux-gnueabi Thread model: posix Repository: (ssh://git-hexagon-aus.qualcomm.com:...) InstalledDir: /pkg/qct/software/llvm/release/arm/8.0.12/bin ``` Another unusual pattern is the output of `path/to/ld.qcld --version`: ``` ARM Linker from Snapdragon LLVM ARM Compiler Version 8.0.12 ARM Linker based on LLVM version: 8.0 ``` The Meson logic is modified accordingly so that Meson can correctly determine toolchain as "LLVM aarch64 cross-compiler on GNU/Linux64 OS". This is the expected output of `meson --native-file native_file.ini --cross-file cross_file.ini build/aarch64-debug/`: ``` ... C++ compiler for the host machine: ... (clang 8.0.12 "clang version 8.0.12") C++ linker for the host machine: ... ld.lld 8.0.12 ... ```
2020-08-02Merge pull request #6597 from dcbaker/full-project-configDylan Baker51-231/+791
Set project and meson options in cross/native files
2020-08-02docs/users: Add HarfBuzz [skip ci]Ebrahim Byagowi1-0/+1
Proudly a meson user now
2020-08-01run dircondensor.pyDylan Baker31-9/+9
2020-08-01update version from 0.55. to 0.56Dylan Baker1-4/+4
2020-08-01Put machine file and cmd line parsing in EnvironmentDylan Baker5-135/+238
This creates a full set of option in environment that mirror those in coredata, this mirroring of the coredata structure is convenient because lookups int env (such as when initializing compilers) becomes a straight dict lookup, with no list iteration. It also means that all of the command line and machine files are read and stored in the correct order before they're ever accessed, simplifying the logic of using them.
2020-08-01push all config-file settings into coredata.set_default_optionsDylan Baker1-37/+32
This puts all of them together, in the next patch they'll be pulled back out, but it's convenient to start that refactor by moving them all there, then moving them into env as a whole.
2020-08-01mesonlib: Add repr() methods to PerMachine classesDylan Baker1-0/+12
Which is super helpful in debuggers
2020-08-01machine-files: deprecate the paths sectionDylan Baker5-65/+44
2020-08-01coredata: fix type annotationDylan Baker1-1/+1
2020-08-01docs/machine-files: Add a section on data typesDylan Baker1-8/+40
This attempts to clarify the usage of strings and arrays, as well as document the boolean type that has been exposed via the project and built-in options
2020-08-01machine-files: give better error messages about using integersDylan Baker8-3/+30
2020-08-01Allow setting built-in options from cross/native filesDylan Baker16-38/+307
This is like the project options, but for meson builtin options. The only real differences here have to do with the differences between meson builtin options and project options. Some meson options can be set on a per-machine basis (build.pkg_config_path vs pkg_config_path) others can be set on a per-subproject basis, but should inherit the parent setting.
2020-08-01mconf/mintro: use authoritative list of options from coredataDylan Baker3-38/+19
This splits the directory options and non-directory options into two dicts, and then merges them later to maintain API.
2020-07-31Doc: Added clarification on introspection files gen order [skip ci]Alexis Jeandet1-1/+2
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
2020-07-30docs/Machine-files: remove duplicate Properties sectionDylan Baker1-7/+0
2020-07-30Allow setting project options from cross or native filesDylan Baker7-2/+171
This allows adding a `[project options]` section to a cross or native file that contains the options defined for a project in it's meson_option.txt file.
2020-07-30Support armel/armhf builds on native arm64 hosts.Mark Hindley1-1/+2
2020-07-30pkgconfig: Fix various corner casesXavier Claessens6-30/+135
See unit tests for the exact scenarios this PR fixes.
2020-07-30Merge pull request #7494 from keszybz/fix-two-warningsJussi Pakkanen5-8/+12
Fix two warnings
2020-07-30mtest: report failures and overall summary *after* test(s) logsCamilo Celis Guzman1-2/+8
2020-07-30backends: fix rpath match patternJames Hilliard2-14/+55
Since -Wl,-rpath= is not the only valid rpath ldflags syntax we need to try and match all valid rpath ldflags. In addition we should prevent -Wl,--just-symbols from being used to set rpath due to inconsistent compiler support. Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
2020-07-28Fix typoZbigniew Jędrzejewski-Szmek1-1/+1
2020-07-28Avoid warning about multiple outputs when building private directory nameZbigniew Jędrzejewski-Szmek1-3/+3
Fixup for b4b1a2c5a145c1459fc4563a289e164e23bd6a02. A warning would be printed for any rule with multiple outputs, for example: WARNING: custom_target 'coredump.conf.5' has more than one output! Using the first one. WARNING: custom_target 'dnssec-trust-anchors.d.5' has more than one output! Using the first one. WARNING: custom_target 'halt.8' has more than one output! Using the first one. Fixes https://github.com/systemd/systemd/issues/16461.
2020-07-28Only emit warning about "native:" on projects with minimum required versionZbigniew Jędrzejewski-Szmek3-4/+8
'native:' keyword was only added in 0.54. For projects declaring meson_version >= 0.54, warn, because those projects can and should set the keyword. For older projects declaring support for older versions, don't warn and use the default implicitly. Fixes https://github.com/mesonbuild/meson/issues/6849.
2020-07-28Describe syntax of `meson configure [skip ci]Matthew D. Scholefield1-1/+1
This makes it a lot easier for people to quickly figure out how to customize parameter.
2020-07-28ninjabackend: check if target has compiler attributeMarcel Hollerbach3-2/+24
otherwise we are getting errors like: Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/mesonbuild/mesonmain.py", line 131, in run return options.run_func(options) File "/usr/local/lib/python3.6/dist-packages/mesonbuild/msetup.py", line 245, in run app.generate() File "/usr/local/lib/python3.6/dist-packages/mesonbuild/msetup.py", line 159, in generate self._generate(env) File "/usr/local/lib/python3.6/dist-packages/mesonbuild/msetup.py", line 215, in _generate intr.backend.generate() File "/usr/local/lib/python3.6/dist-packages/mesonbuild/backend/ninjabackend.py", line 518, in generate self.generate_coverage_rules() File "/usr/local/lib/python3.6/dist-packages/mesonbuild/backend/ninjabackend.py", line 991, in generate_coverage_rules self.generate_coverage_command(e, []) File "/usr/local/lib/python3.6/dist-packages/mesonbuild/backend/ninjabackend.py", line 975, in generate_coverage_command for compiler in target.compilers.values(): AttributeError: 'RunTarget' object has no attribute 'compilers' This extends the 109 generatecode test case to also define a test, so coverage can really detect something.
2020-07-23Merge pull request #7461 from mensinda/noMoreSetuptoolsJussi Pakkanen7-16/+549
Remove the setuptools dependency with mesondata.py
2020-07-23Merge pull request #7460 from mensinda/fixDeepcpyJussi Pakkanen3-9/+20
deps: Do not deepcopy internal libraries (fixes #7457)
2020-07-23compilers: Cache gnu-mixins has_arguments() checksNirbheek Chauhan1-1/+1
want_output gives us the output file. We don't need the file. We just need the compiler stderr, which is always stored.
2020-07-22coredata: Make warning_level per subproject builtin optionXavier Claessens6-24/+54
2020-07-22visualstudio: warning_level 0 should not map to /W1Xavier Claessens1-1/+1
In every other compilers level 0 maps to no argument at all.
2020-07-22Don't spam about usage of rspfiles to stdoutNirbheek Chauhan1-1/+1
Put it in the log file if necessary. Users don't need to know this. It's very spammy.
2020-07-22vim: Syntax-highlight continue and break statementsNirbheek Chauhan1-1/+2
2020-07-21Add boost_root support to properties files (#7210)cmcneish15-44/+163
* Add boost_root support to properties files This commit implements `boost_root`, `boost_includedir`, and `boost_librarydir` variable support to native and cross properties files. The search order is currently environment variables, then these variables, and finally a platform-dependent search. * Add preliminary boost_root / boost_includedir tests Each test contains a fake "version.hpp", as that's how boost detection is currently being done. We look for this file relative to the root directory, which probably shouldn't be allowed (it previously was for BOOST_LIBRARYDIR but not for BOOST_ROOT). It also cannot help with breakage detection in libraries, however it looks like this wasn't getting tested beforehand. I've given the two unique version numbers that shouldn't be present in any stock version of boost (001 and 002). * Add return type to detect_split_root * Return empty list when nothing found in BOOST_ROOT, rather than None * Update boost_root tests * Create nativefile.ini based on location of run_project_tests.py * Add fake libraries to ensure boost_librarydir is being used * Require all search paths for boost to be absolute * Redo boost search ordering To better match things like pkg-config, we now look through native/cross files, then environment variables, then system locations for boost installations. Path detection does not fall back from one method to the next for properties or environment variables--if boost_root, boost_librarydir, or boost_includedir is specified, they must be sufficient to find boost. Likewise for BOOST_ROOT and friends. pkg-config detection is still optional falling back to system-wide detection, for Conan. (Also, fix a typo in test 33's nativefile) * Correct return type for detect_roots * Correct boost dependency search order in documentation * Print debug information for boost library finding, to resolve CI issues * Handle native/cross file templates in a more consistent way All tests can now create a `nativefile.ini.in` if they need to use some parameter that the testing framework knows about but they can't. * Pass str--rather than PosixPath--to os.path.exists, for Python35 * Look for boost minor versions, rather than boost patch versions in test cases * Drop fake dylib versions of boost_regex * Prefer get_env_var to use of os.environ * Correct error reporting for relative BOOST_ROOT paths * Bump version this appears in. Also, change "properties file" to "machine file" as that appears to be the more common language.
2020-07-21summary: Wrap lines when printing listsXavier Claessens3-5/+34
When a list_sep is provided (e.g. ', ') all items are printed on the same line, which gets ugly on very long lists (e.g. list of plugins enabled).
2020-07-20string: add substring methodStéphane Cerveau4-0/+52
This method aims to offer a simple way to 'substring' an existing string with start and end values.
2020-07-20Do not add rpaths for static libs. Closes #5191.Jussi Pakkanen2-1/+9
2020-07-19Fix dirs typo in Vala docs [skip ci]wb96881-1/+1
Co-authored-by: wb9688 <wb9688@users.noreply.github.com>
2020-07-19Print a warning when importing a stabilized moduleMarc-André Lureau3-7/+26
2020-07-19Stabilize keyval moduleMarc-André Lureau8-7/+14
We have experimented with the module for about a year in a qemu branch (https://wiki.qemu.org/Features/Meson), and we would like to start moving the build system to meson. For that, keyval should have the stability guarantees. Cc: Paolo Bonzini <pbonzini@redhat.com>