aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-09-12new custom dependency lookup for iconvEli Schwartz4-2/+48
Also internally needed by intl, so add that as a proxied dependency instead of coding it manually.
2021-09-12deprecate layout=flat and warn people never to use itEli Schwartz1-0/+7
It's broken in various circumstances, no one seems to actually use it, CI doesn't test it, no one is committed to maintaining it, etc. etc. etc. Also, projects doing trivially reasonable things, such as generating "foo/util.py" and "bar/util.py", create clashing output names. This will never, ever, ever, ever work with layout=flat. Closes #996 Closes #1521 Closes #1908 Closes #7133 Closes #7135 Closes #7480 Closes #8378
2021-09-12msetup: make xcode unsupported warning actually showEli Schwartz1-2/+5
Until we invoke interpreter.Interpreter(b, ...) the coredata options still have their default values and thus cannot be used sensibly. Currently the warning never shows (other than, unsurprising in retrospect, during --internal regenerate).
2021-09-10qt module: consolidate on one list of binsEli Schwartz1-25/+25
2021-09-10add test case for qrc translationsEli Schwartz6-0/+51
2021-09-10qt module: fix regression in building translations via qresourceEli Schwartz1-1/+1
In commit 3c4c7d042932c23a8ea24d85f24cd290d0a5ea13 the qresource variable stopped being overwritten with a mesonlib.File, which is reasonable. However, one call site for it which relied on being a built file did not get renamed when needed. Make the build target use the built file.
2021-09-10qt module: correctly register a found tool and stop looking for itEli Schwartz1-3/+1
Regression in commit d7ac2f10655433989e5e17867b6c8ef428fd39e8 since self.{tool_name} is not how it used to be tracked, and the "found" dictionary is a legacy of the old location.
2021-09-10docs: add note about built-in options supportePirat1-0/+2
Older meson versions would not honor the `<lang>_args` and `<lang>_link_args` in the built-in options section, add a note about this to the relevant section as it can cause quite some surprises when using a crossfile with an older meson version.
2021-09-10nagfor OpenMP recognition.Mat Cross1-0/+6
2021-09-10nagfor preprocessor flag.Mat Cross1-0/+3
2021-09-10Made submodule child code valid Fortran.Mat Cross1-2/+2
2021-09-10Presence of nagfor signifies that Fortran tests can be run.Mat Cross1-0/+1
2021-09-10Comments on nagfor options setup.Mat Cross2-1/+9
2021-09-10Implemented some missing operation for the NAG Fortran Compiler.Mat Cross4-5/+59
2021-09-10objc/objcpp compiler: accept all gnu stds corresponding to c/c++ stdsEli Schwartz2-2/+2
The clang compiler now reimplements and re-checks the c_std and cpp_std options in order to use them for objc as well, but it didn't consistently support the same options. First it completely excluded all the gnu ones, and then it added a handful of them but not for C++. Be fully consistent -- or at least as consistent as we can be, given a minimally working fix. (The C/C++ compiler mixin actually gates different stds depending on detected clang version, we do not do that here.) Fixes regression in c54dd63547b030e3d9feee694ec6f49c434f0df8 Fixes incomplete fix from #8766 (which didn't fix objcpp at all) Fixes #9237
2021-09-07unittests: test external dependency in summaryPaolo Bonzini2-3/+9
This requires a bit of extra code because the version might change, but otherwise it fits in the existing AllPlatformTests.test_summary testcase Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2021-09-07summary: fix dependenciesPaolo Bonzini3-3/+6
Dependencies are currently printed as [<mesonbuild.mlog.AnsiDecorator object at 0x7faa85aeac70>, ' ', <mesonbuild.mlog.AnsiDecorator object at 0x7faa85aeab50>] This was introduced in commit adb1b2f3f6ad54b346348ec6e5b8d96f2f7ba0a6, due to an incorrect type annotation on the AnsiText constructor. Fix both the annotation and the usage. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2021-09-07docs: document new behavior with respect to mixed language link testsPaolo Bonzini2-1/+25
2021-09-07add test case for mixed language link testsPaolo Bonzini3-0/+26
2021-09-07interpreter: detect and pass compiler to be used for linker testsPaolo Bonzini4-0/+23
Allow using the links method to test that the C++ driver (e.g. g++) can be used to link C objects. One usecase is that the C compiler's libsanitizer might not be compatible with the one included by the C++ driver. This is theoretically backwards-incompatible, but it should be treated as a bugfix in my opinion. There is no way in Meson to compile a .c file with the C++ driver as part of a build target, therefore there would be no reason to do something like meson.get_compiler(meson.get_compiler('cpp').links(files('main.c')). Fixes: #7703
2021-09-07compilers: allow link tests to use objects from a different compilerPaolo Bonzini1-2/+12
In some cases, link tests would like to use objects provided by a compiler for a different language, for example linking a C object file with a C++ compiler. This kind of scenario is what link_language is for, but it is impossible to test that it works with a linker test. This patch implements the required support in the Compiler class. The source code compiler is passed to the Compiler.links method as an argument.
2021-09-07compilers: do accept None in Compiler.compile extra_argsPaolo Bonzini1-1/+2
The type information allows it, but it is not actually handled.
2021-09-07compilers: fix flake8 issuesPaolo Bonzini1-7/+6
2021-09-06mintro: add installed_planFilipe Laíns26-72/+414
Signed-off-by: Filipe Laíns <lains@riseup.net>
2021-09-04ci: Also use the `autoCancel` key for AzureDaniel Mensinger2-27/+13
This also removes the additional upload step for test results in the hope of fixing the `autoCancel` flag.
2021-09-04ci: Fix missing MESON_CI_JOBNAME in the image buildersDaniel Mensinger7-7/+16
2021-09-04ci: Use GitHub concurrencyDaniel Mensinger10-0/+41
2021-09-04Support for appleframeworks with GCC and IntelEvan Miller1-3/+1
Fixes #8792 Fixes #8733
2021-09-03tests: when generating git repositories, make sure that pgpsign is offEli Schwartz2-6/+6
I have a local configuration tag.forcesignannotated=true commit.gpgsign=true This causes the tests to fail with e.g. error: gpg failed to sign the data fatal: failed to write commit object Since this is a unittest, it is never wrong to tell git "just ignore prior configuration, and disable all PGP signing".
2021-09-03mdist: use git archive with git repositories for correctnessEli Schwartz1-29/+35
Fixes various inconsistencies: - gitattributes is respected - export-subst - export-ignore - submodules with relative paths are not checked out relative to the local clone (which does not work anyway) - no need to manually remove gitfiles with inaccurate heuristics Fixes #2287 Fixes #3081 Fixes #8144
2021-09-03Improve WSL detectionWill1-1/+1
WSL 2 removes the "Microsoft" from `platform.version` but leaves it inside `platform.release`. This lets us detect both types of WSL without issue.
2021-09-03log a more informative error when wrap-git subprojects cannot be downloadedEli Schwartz1-1/+1
"ERROR: Git program not found" is both highly true, and somewhat inscrutable. Sure, looking at the line number you can basically figure out that subproject('something') must somehow need git to operate, but that may not be immediately obvious. Make mention of the fact that it is needed to "download foo.wrap". Fixes #7764
2021-09-02interpreter: Add summary of all user defined optionsXavier Claessens5-26/+31
It is a commonly needed information to help debugging build issues. We already were printing options with non-default value at the end of the configure but outside of the summary. Keeping the list of user defined options in the interpreter will also in the future be useful to use new default value on reconfigure.
2021-09-02OptionKey: Fix orderingXavier Claessens1-10/+8
When sorting options we want the same order as they are presented in "meson configure" command.
2021-09-01make the display name of a gettext translation build, look prettierEli Schwartz1-1/+1
And more accurate too, TBH. Currently it says it is building "lang.mo", even though it is actually building "domain.mo" inside lang/LC_MESSAGES/. Since meson loudly complains if I try to name the display name "lang/domain.mo", name it with a dash instead of a slash. The actual name isn't a priority here IMO, and this is nicely readable.
2021-09-01add release note formally allowing run_target in an aliasEli Schwartz1-0/+20
We've now fixed it so it works, and it provides useful functionality, e.g. creating a custom target that builds multiple gettext domains in one action.
2021-09-01fix repr for alias_targetEli Schwartz1-0/+4
It has no command, so you cannot try printing it or it explodes with IndexError: list index out of range
2021-09-01run_target: do not yield broken names with subdirsEli Schwartz4-1/+14
A run_target object created in a subdir/meson.build always has a ninja rule name of "name", not "subdir/name". Fixes #9175
2021-09-01dependency: fallback and allow_fallback are mutually exclusiveXavier Claessens3-0/+13
That used to abort in previous Meson versions but 0.59 stopped forbidding that by mistake.
2021-09-01Clang should error for all implicit function checks (#9165)Dylan Baker2-3/+8
* compilers: improve docstring to `get_compiler_check_args()` There was an incomplete list, which wasn't useful as it now takes an enum anyway. Also add a new entry to the list of reasons to use this function. * clang: Add -Werror=implicit-function-declarations to check_args Unlike GCC, clang warns but doesn't error when an implicit function declaration happens. This means in checks like `compiler.has_header_symbol('string.h', 'strlcat')` (on Linux, at least) that GCC will fail, as there is no such function; clang will emit a warning, but since it exists with a 0 status Meson interprets that as success. To fix this, add `-Werror=implicit-function-declarations` to clang's check arguments. There seems to be something specific about functions that _may_ exist in a header on a given system, as `cc.has_header_symbol('string.h', 'foobar')` will return false with clang, but `strlcat` will return true, even though it's not defined. It is however, defined in some OSes, like Solaris and the BSDs. Fixes #9140
2021-09-01interpreter: Introduce BooleanHolder for the bool primitiveDaniel Mensinger8-68/+129
2021-09-01interpreter: Simplify Disabler logicDaniel Mensinger2-16/+8
2021-09-01interpreter: Remove the AND and OR operator enumsDaniel Mensinger1-2/+0
These operators don't make sens to use in ObjectHolders, since this mechanism wouldn't allow for lazy evaluation.
2021-09-01interpreter: Remove permissive from _unholderDaniel Mensinger4-13/+11
2021-09-01msvc: Assume UTF8 source by defaultXavier Claessens7-2/+70
Currently every project that uses UTF8 for its source files must add '/utf-8' argument otherwise they don't work non-English locale MSVC. Since meson.build itself is assumed to be UTF8 by default, seems better to assume it for source files by default too. For example: - https://gitlab.freedesktop.org/gstreamer/gst-build/-/blob/master/meson.build#L62 - https://gitlab.gnome.org/GNOME/glib/-/blob/main/meson.build#L29
2021-08-31i18n module: restore the <packagename>-gmo targetEli Schwartz1-0/+3
Removed in commit 487d45c1e5bfff0fbdb4747841db6a0b5b124af9 but perhaps it should not have -- people may have been depending on ensuring those are built somehow. Even though the internal implementation changed and it is now built by the all target, let's keep the old target around too. Now it just aliases the actual build rules, though.
2021-08-31i18n module: provide targets as return value for gettext()Eli Schwartz3-1/+14
Users may wish to make use of these files for their own purposes. For example, the -pot and -update-po pseudo targets could be reused in an alias_target(), and at least one person wanted to reuse the built .mo files as custom_target input. Fixes #6227
2021-08-31interpreter: use python dunders instead of lock for unpicklabilityDylan Baker3-10/+5
This simplifies things for us, as we don't have to have threading imported for no other reason, and we can remove the `an_unpicklable_object` from the Interpreter and mesonlib, since there was only one user of this.
2021-08-31unittests: add a test to Interpreter is unpicklableDylan Baker1-7/+17
We want this, so let's test it.
2021-08-31interpreter: Add IntegerHolderDaniel Mensinger12-65/+186