summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Bump version number for rc2.1.0.0rc2Jussi Pakkanen2022-12-171-1/+1
|
* mtest: handle TAP tests with unknown version.Eli Schwartz2022-12-171-1/+4
| | | | | | | | | | | | | | | | | TAP 14 states: > Harnesses may treat any TAP stream lacking a version as a failed test. TAP 13 states: > In the absence of any version line version 12 is assumed. It is an > error to explicitly specify any version lower than 13. So, modern TAP is saying that we should treat a missing version as a test definition bug, it's no longer okay to use a missing version as saying "let's use TAP 12". But, we can choose whether to treat it that way or error out. Let's do a diagnostic, as we do elsewhere. But allow TAP streams that aren't well defined, if they used to be well defined (back in TAP 12).
* Merge pull request #11174 from bgilbert/jar-manifestJussi Pakkanen2022-12-165-2/+63
|\ | | | | depfixer: silence `fix_jar()` and make it do something
| * depfixer: silence fix_jar() and make it do somethingBenjamin Gilbert2022-12-145-1/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix_jar() tries to remove an existing Class-Path entry from the jar manifest by postprocessing the manifest and passing it to `jar -um`. However, `jar -um` can only add/replace manifest entries, not remove them, and it also complains loudly when replacing an entry: Dec 13, 2022 7:11:19 PM java.util.jar.Attributes read WARNING: Duplicate name in Manifest: Manifest-Version. Ensure that the manifest does not have duplicate entries, and that blank lines separate individual sections in both your manifest and in the META-INF/MANIFEST.MF entry in the jar file. Thus fix_jar() produces one such warning for each entry in the manifest and accomplishes nothing else. Use jar -uM instead. This completely removes the manifest from the jar and allows adding it back as a normal zip member, fixing fix_jar() and avoiding the warnings. Fixes: https://github.com/mesonbuild/meson/issues/10491 Fixes: c70a051e93 ("java: remove manifest classpath from installed jar")
| * depfixer: don't extract MANIFEST.MF verboselyBenjamin Gilbert2022-12-131-1/+1
| | | | | | | | | | | | | | | | Avoids non-actionable output when installing a jar: inflated: META-INF/MANIFEST.MF Fixes: c70a051e93 ("java: remove manifest classpath from installed jar")
* | Merge pull request #11181 from tristan957/backendsJussi Pakkanen2022-12-163-16/+36
|\ \ | | | | | | JNISystemDependency fixes
| * | Enable Java project tests on DarwimTristan Partin2022-12-151-1/+1
| | |
| * | Change double quote doc comment to sinqle quoteTristan Partin2022-12-151-2/+2
| | |
| * | Try to find the jni dependency when javac is a Darwin stubTristan Partin2022-12-152-11/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Darwin-based systems, at least macOS, provide various JDK executable stubs in /System/Library/Frameworks/JavaVM.framework/Versions/*/Commands. These stubs are placed in such a way that they break the heuristics of the JNI system dependency. If a javac being analyzed to find a Java home is a stub, use /usr/libexec/java_home. See https://stackoverflow.com/a/15133344/7572728 for more details. Closes #11173
| * | Deduplicate code in JNISystemDependency conditionalTristan Partin2022-12-141-2/+2
| | |
* | | delay importing ctypes unless it is actually usedEli Schwartz2022-12-151-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ctypes uses FFI, and surprisingly often people's Python installations will be broken because ctypes is broken (e.g. the system libffi has been updated and Python needs to be recompiled). That is not our fault, but it does manifest as Meson failing to run. It turns out we aren't even using it though. At least, pretty often. We have two uses of ctypes, and both of them are for Windows. One of them is already conditionally imported in the function that uses it, but the other is imported at startup. Move this down into the invoking function. On non-Windows systems, it is now impossible for Meson to fail to run when ctypes is broken, because we don't use it. Anecdotally, this issue tends to come up on Linux systems primarily. Fixes #11111 Closes #11112
* | docs: clarify the semantics of the required: kwarg everywhereEli Schwartz2022-12-143-8/+23
| | | | | | | | | | | | Link to feature options consistently, and point out that it controls "whether" the function finds what it's trying to find. This clues people in to the fact that disabled features exist.
* | docs: simplify the documentation on required kwarg for subprojectEli Schwartz2022-12-141-4/+1
| | | | | | | | It's a clone of dependency() anyway.
* | docs: update description of supported functions for feature optionsEli Schwartz2022-12-141-3/+7
|/ | | | We support these for a couple more things now.
* Revert "openbsd: execinfo is not a compiler lib"Brad Smith2022-12-131-6/+2
| | | | | | OpenBSD now has execinfo as compiler lib. DragonFly has all along. This reverts commit 0241948d8fa37f59eb93088a26e9b7ae642cc2d0.
* Fixing typosAndreas Deininger2022-12-125-5/+5
| | | | Convert http to https in some links
* mlog: set LV environment variable for pager.Phil Jones2022-12-121-0/+3
|
* mlog: set LESS environment variable for pager.Phil Jones2022-12-121-5/+11
| | | | | | Rather than passing arguments directly to less, set the LESS environment variable to contain the desired arguments instead. This allows passing arguments in case the user has PAGER=less set in their environment.
* fix broken fs.copyfile function that crashed if you tried to use itEli Schwartz2022-12-115-8/+11
| | | | | | | | | | | | At least, if you tried to use it when passing an install_dir. Because T.Sequence is horrible and we should never use it, and the annotations are a lie that produces bugs. So, fix the annotations on CustomTarget to never allow this to happen again, and also fix the function too. Move some definitions elsewhere inline to satisfy the linter. Fixes #11157
* typing: fix some broken Sequence annotationsEli Schwartz2022-12-115-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | T.Sequence is a questionable concept. The idea is to hammer out generic, maximally forgiving APIs that operate on protocols, which is a fancy way of saying "I don't care if you use tuples or lists". This is rarely needed, actually, and in exchange for this fancy behavior you get free bugs. Specifically, `somestr` is of type `T.Sequence[str]`, and also `somestr[0]` is another string of type you guessed it. It's ~~turtles~~ strings all the way down. It's worth noting that trying to code for "protocols" is a broken concept if the contents have semantic meaning, e.g. it operates on "the install tags of this object" rather than "an iterable that supports efficient element access". The other way to use T.Sequence is "I don't like that T.List is invariant, but also I don't like that T.Tuple makes you specify exact ordering". This sort of works. In fact it probably does work as long as you don't allow str in your sequences, which of course everyone allows anyway. Use of Sequence has cute side effects, such as actually passing lists around, knowing that you are going to get a list and knowing that you need to pass it on as a list, and then having to re-allocate as `list(mylist)` "because the type annotations says it could be a str or tuple". Except it cannot be a str, because if it is then the application is fatally flawed and logic errors occur to disastrous end user effects, and the type annotations: - do not enforce their promises of annotating types - fail to live up to "minimal runtime penalties" due to all the `list()` Shun this broken concept, by hardening the type annotations. As it turns out, we do not actually need any of this covariance or protocol-ism for a list of strings! The whole attempt was a slow, buggy waste of time.
* simplify install_tag handling according to the accepted APIEli Schwartz2022-12-112-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two problems here: a typing problem, and an algorithm problem. We expect it to always be passed to CustomTarget() as a list, but we ran list() on it, which became horribly mangled if you violated the types and passed a string instead. This caused weird*er* errors and didn't even do anything. We want to do all validation in the interpreter, anyway, and make the build level dumb. Meanwhile we type it as accepting a T.Sequence, which technically permits... a string, actually. This isn't intentional; the point of using T.Sequence is out of a misguided idea that APIs are supposed to be "technically correct" by allowing "anything that fulfills an interface", which is a flawed concept because we aren't using interfaces here, and also because "technically string fulfills the same interface as a list, if we're talking sequences". Basically: - mypy is broken by design, because it typechecks "python", not "what we wish python to be" - we do not actually need to graciously permit passing tuples instead of lists As far as historic implementations of this logic go, we have formerly: - originally, typeslistified anything - switched to accepting list from the interpreter, redundantly ran list() on the list we got, and mishandling API violations passing a string (commit 11f96380351a88059ec55f1070fdebc1b1033117) - switched to accepting anything, stringlistifying it if it was not `None`, mishandling `[None]`, and invoking list(x) on a brand new list from stringlistify (commit 157d43883515507f42618b065a64fb26501734a0) - stopped stringlistify, just accept T.List[str | None] and re-cast to list, violates typing because we use/handle plain None too (commit a8521fef70ef76fb742d80aceb2e9ed634bd6a70) - break typing by declaring we accept a simple string, which still results in mishandling by converting 'foo' -> ['f', 'o', 'o'] (commit ac576530c43734495815f22456596772a8f6a8cc) All of this. ALL of it. Is because we tried to be fancy and say we accept T.Tuple; the only version of this logic that has ever worked correctly is the original untyped do-all-validation-in-the-build-phase typeslistified version. Let's just call it what it is. We want a list | None, and we handle it too.
* Merge pull request #11071 from tristan957/java-moduleJussi Pakkanen2022-12-124-47/+70
|\ | | | | Java module 1.0.0 updates
| * Fix package kwarg typeTristan Partin2022-12-111-2/+3
| |
| * Rename java.generate_native_headers to java.native_headersTristan Partin2022-12-114-1/+67
| | | | | | | | | | This follows the Meson naming scheme which typically leaves off a verb like generate.
| * Remove java.generate_native_headerTristan Partin2022-12-112-45/+1
| | | | | | | | | | This API existed for 2 minor releases and was worthless for pretty much every usecase.
* | DOCS: Rust-module: Remove note about unstable APIEwout ter Hoeven2022-12-111-2/+0
|/ | | Remove the note about the unstable API of the Rust module, since it's no longer unstable as of Meson 1.0.0.
* CI: skip libgcrypt test on msys2Eli Schwartz2022-12-111-1/+1
| | | | | | | This is no longer implicitly installed due to libxslt. Actually though, we don't need to test this in order to ensure that the custom dependency works -- we have other jobs that test it, and the config-tool handling itself won't suddenly fail on msys2 specifically.
* debug cygwin CIEli Schwartz2022-12-111-0/+1
|
* CUDA: Update compute-capability limits logic for CUDA 12.Olexa Bilaniuk2022-12-111-0/+8
| | | | | | In particular, CUDA 12 removes support for Kepler (3.x) entirely. Unusually, however, it does not introduce any new architectures, or even compute capabilities.
* CUDA: Add listing for newly-released CUDA 12 in minimum driver version table.Olexa Bilaniuk2022-12-111-0/+1
|
* Merge pull request #11024 from dcbaker/submit/bindgen-dependenciesJussi Pakkanen2022-12-119-17/+112
|\ | | | | Add a `dependencies` keyword argument to bindgen
| * modules/rust: Add support for dependencies in bindgenDylan Baker2022-12-059-5/+103
| | | | | | | | | | This is needed for cases where we need external C headers, which are passed to clang.
| * modules/rust: Use `__future__.annotations`Dylan Baker2022-12-051-6/+7
| |
| * modules/rust: use the shared DEPENDENCIES_KWDylan Baker2022-12-051-6/+2
| |
* | Bump version numbers for rc1.1.0.0rc1Jussi Pakkanen2022-12-102-2/+2
| |
* | doc: Add date in release notesXavier Claessens2022-12-091-0/+5
| |
* | Merge pull request #10990 from xclaesse/devenvJussi Pakkanen2022-12-098-63/+84
|\ \ | | | | | | devenv: various improvements
| * | devenv: Document recent changesXavier Claessens2022-12-072-0/+17
| | |
| * | devenv: Set QEMU_LD_PREFIX to sys_rootXavier Claessens2022-12-071-1/+6
| | | | | | | | | | | | | | | When the cross file has a sys_root, it is most probably needed to run executables with qemu.
| * | Remove useless EmptyExternalProgramXavier Claessens2022-12-074-31/+6
| | | | | | | | | | | | | | | | | | It is only used by Environment.get_exe_wrapper() and every callers were handling None already. Type annotation was wrong, it already could return None for the case an exe wrapper is needed but none is provided.
| * | devenv: Always include env for HOST machineXavier Claessens2022-12-072-3/+9
| | | | | | | | | | | | | | | | | | | | | Cross compiled executables could still be run with an exe wrapper, or with proper binfmt installed. Fixes: #10999
| * | devenv: Add executables locations to both PATH and WINEPATHXavier Claessens2022-12-071-7/+12
| | | | | | | | | | | | | | | Handles the case when wine-binfmt is installed, which makes .exe files executable without without specifying an exe wrapper.
| * | devenv: Do not include system values in --dumpXavier Claessens2022-12-072-13/+14
| | | | | | | | | | | | This makes --dump print variables like `FOO=/path:$FOO:/another/path`.
| * | devenv: Add more info how to get gdb scripts workingXavier Claessens2022-12-061-3/+12
| | | | | | | | | | | | | | | | | | | | | Now that top builddir is not the default workdir any more, the .gdbinit file we write there won't be loaded automatically unless user cd there, or use --init-command. There is also a global setting that user has to set to allow automatically loading .gdbinit file.
| * | devenv: Add --workdir optionXavier Claessens2022-12-061-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | Most of the time it is preferable to remain the the top source dir instead of going into the builddir. Add --workdir argument to be able to have a different workdir than builddir, but keep it default to builddir for backward compatibility, and also because it makes gdb integration better.
* | | python module: don't overwrite and destroy the .pc dependency nameEli Schwartz2022-12-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When finding a py.dependency() we try to use pkg-config. We then apply our own custom base class, which replaces self.name with the informative comment "override the name from the "real" dependency lookup", to which I can only say "uhhh why". Why do we want to do that??? It turns out we don't, it was just a really old legacy design because we had a SystemDependency with a .pkgdep attribute hiding the real dependency bizarro-land style. We cleaned that up in commit 4d67dd19e5b7dcec6716840d30984fa41eef55c6 and as part of that, we *shifted over* the self.name assignment to preserve the visible effects, sort of. We didn't have a *reason* to override the name, we just did it because... we weren't sure whether it mattered. Unfortunately it very much does matter the other way -- we don't want it. We can pass this dependency to the pkgconfig module, which uses the name attribute to fill out the `Requires: ` field. Also, the name should name what we have. :p Get rid of this bizarre historic quirk. Since we have proper dependencies here, we should go all in. Fixes https://github.com/ufo-kit/ufo-core/pull/185#issuecomment-1328224996
* | | utils: Fix pylint warning using-constant-testL. E. Segovia2022-12-071-1/+1
| | |
* | | wrap: Don't use --branch with shallow clones against HEADL. E. Segovia2022-12-072-4/+21
| | | | | | | | | | | | Fixes #10931
* | | test: Add get_define test with prefix arrayMarvin Scholz2022-12-061-0/+7
| | |
* | | interpreter: compiler: Allow array for the prefix kwargMarvin Scholz2022-12-063-6/+32
| | |