aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-08-03Merge remote-tracking branch 'upstream/master' into lang-enumlang-enumJohn Ericson497-3367/+11374
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>
2020-07-19coredata: add missing EnvironmentException importJames Hilliard1-2/+3
Fixes: NameError: name 'EnvironmentException' is not defined Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
2020-07-19fix msvc not recognising b_ndebugElliot Haisley3-1/+17
fixes #7404
2020-07-19Fix a comment about cross compilation with clang-cl [skip ci]Martin Storsjö1-1/+1
This comment was added in 0fbd09609f4, where the case of a forward slash was added for the case when cross compiling.
2020-07-19Fix setuptools 49 test. (fixes #7452)Daniel Mensinger1-0/+4
2020-07-16mdata: Add test to ensure mesondata.py is up-to-dateDaniel Mensinger1-0/+32
2020-07-16mdata: remove setuptools and use mesondata insteadDaniel Mensinger4-16/+4
2020-07-16mdata: Generate mesondata.py from */data foldersDaniel Mensinger2-0/+513
2020-07-16Make virtualenv inside the project workDaniel Mensinger2-9/+10