aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-04-29wrap: Always pass posix paths to patchNirbheek Chauhan1-1/+2
patch on Windows is provided by MSYS, which only understands POSIX paths, with `/`. Using Windows paths with `\` results in a "file not found" error. We got a little lucky here because the path is relative, so the drive letter difference doesn't affect us.
2023-04-28detect_cpu: Fix mips32 detection on mips64Cyan2-9/+17
MIPS64 can run MIPS32 code natively, so there is a chance that a mixture of MIPS64 kernel and MIPS32 userland exists. Before this Meson just treats such mixture as mips64, because uname -m returns mips64. So in this case we have to check compiler builtin defines for actual architecture and CPU in use. - Also fixes mips64 related detection tests in internaltests: Normalize mips64 as mips first, then if __mips64 is defined, return mips64 for mips64* machines. This is a bit confiusing because normally one would detect if a flag of 32-bit target is defined while running on a 64-bit machine. For mips64 it is almost just the other way around - we need to detect if __mips64 is set to make sure it is a mips64 environment. Co-Authored-By: Jue Wang <maliya355@outlook.com>
2023-04-27Don't use dyndep scanner when preprocessingVolker Weißmann3-0/+13
Fixes #11504
2023-04-27Specify c++ 11 flag as code uses c++ 11 featuresPeter Hull1-1/+2
2023-04-26Add env kwarg to gnome.generate_gir().Volker Weißmann11-12/+33
Fixes #384
2023-04-26Set the CC environment variable for g-ir-scanner.Volker Weißmann1-1/+4
Fixes #1035
2023-04-25Fix html coverage report generation when using clang on linuxJakob Widauer1-1/+1
2023-04-24yasm: Fix usage of incompatible optimization flagsL. E. Segovia1-0/+4
Fixes #11726
2023-04-24mtest: prevent parse error with gtest protocolCharles Brunet1-1/+5
Replace illegal characters when reading gtest generated xml file, to prevent a ParseError and a stacktrace. catch et.ParseError, just in case, to prevent stopping other tests if the xml file was malformed.
2023-04-24ci: Don't error out CI if codecov upload failsNirbheek Chauhan6-9/+9
2023-04-24ci: Don't search for llvm modules with LLVM 16.0.xNirbheek Chauhan1-16/+40
See: https://github.com/mesonbuild/meson/issues/11642
2023-04-24dependencies: allow to fallback on CMake to find the SDL2 libraryMatthieu Bouron4-6/+8
On Windows, the SDL2 library is generally provided with only CMake config files. This commit allows meson to fallback on CMake as a last resort to find the SDL2 library.
2023-04-24Initial support for Metrowerks C/C++ compilerNomura14-5/+571
2023-04-23fix python.version() not working in some casesCharles Brunet2-0/+4
import('python').find_installation('python').version() causes exception because of a missing initialization, when `find_installation()` receives a name or a path.
2023-04-21rust: Add new `rust_dependency_map` target configurationSebastian Dröge7-14/+48
This allows changing the crate name with which a library ends up being available inside the Rust code, similar to cargo's dependency renaming feature or `extern crate foo as bar` inside Rust code.
2023-04-21docs: update the Rust bindgen docs to talk about assertionsDylan Baker1-0/+9
Since we now guarantee that Rust and C/C++ will have assertions both on or both off, we can give guidance about using `cfg(debug_assertions)` to wrap code using `#ifdef NDEBUG`.
2023-04-21modules/rust: Add -DNDEBUG to bindgen if b_ndebug is falseDylan Baker1-0/+3
Otherwise bindgen may generate different behavior than the compiled C code actually has.
2023-04-21rust: add support for b_ndebugDylan Baker4-2/+24
Rust has a `debug_assert!()` macro, which is designed to be toggled on the command line. It is on by default in debug builds, and off by default in release builds, in cargo. This matches what meson's b_ndebug option does in `if-release` mode.
2023-04-21compilers: split code for deciding if debug is needed into a helperDylan Baker1-4/+12
2023-04-21compilers: convert method to get assert control to a booleanDylan Baker4-15/+28
C like compilers only off `-DNDEBUG` to disable asserts. This is not a universal paradigm however. Rust, for example has an argument that takes a boolean. To better represent this, we allow passing a `disable` boolean. `disable` was chosen rather than `enable` because it allowed all existing logic to be left in place
2023-04-21ci: Move to the codecov github actionNirbheek Chauhan8-21/+95
The pypi package was suddenly removed. Not the most confidence-inspiring deprecation/migration: https://about.codecov.io/blog/message-regarding-the-pypi-package/
2023-04-20intro: add more details to generated json filesCharles Brunet6-38/+172
This will help with the writing of tools to generate VisualStudio project and solution files, and possibly for other IDEs as well. - Used compilers a about `host`, `build` and `target` machines arere listed in `intro-compilers.json` - Informations lister in `intro-machines.json` - `intro-dependencies.json` now includes internal dependencies, and relations between dependencies. - `intro-targets.json` now includes dependencies, `vs_module_defs`, `win_subsystem`, and linker parameters.
2023-04-20extra_files keyword in declare_dependency()Charles Brunet7-8/+34
2023-04-20rust: Also disallow `.` in Rust library target namesSebastian Dröge2-6/+6
2023-04-20rust: Don't allow spaces/dashes in Rust library namesSebastian Dröge1-0/+9
The library names are directly mapped to filenames by meson while the crate name gets spaces/dashes replaced by underscores. This works fine to a certain degree except that rustc expects a certain filename scheme for rlibs that matches the crate name. When using such a library as a dependency of a dependency compilation will fail with a confusing error message. See https://github.com/rust-lang/rust/issues/110460
2023-04-19rust: Don't use prefer-dynamic in case of proc-macro Rust dependenciesSebastian Dröge1-2/+3
They're only used at build-time and whether they exist or not should not have any effect on the final build artifact.
2023-04-19Revert "cygwin CI: work around gcovr bug"Eli Schwartz1-6/+0
This reverts commit 0022e1863d8d9769378ebfb56695bdbf55f118b9. The bug is long since both fixed and *released*.
2023-04-19CI: update cygwin cache actions to new version supporting granular saveEli Schwartz1-3/+8
cache/restore and cache/save now exist, and close the issue linked in the workflow comment. The new save action runs when invoked, rather than as a post action.
2023-04-18pkgconfig module: fix traceback on invalid missing descriptionEli Schwartz2-6/+17
If the optional first "mainlib" argument is there, then we infer several values. Otherwise, some of those values fall back to a generic default, and two of them -- name and description -- fall back to being mandatory. In commit e84f293f672a372d2434d0ce4fa39d3f902b6ce8, we removed validation for description as part of refactoring that never actually validated anything.
2023-04-17CI: cygwin coverage uploader needs to run in bash tooEli Schwartz1-1/+4
Like every single other command in the entire workflow, and for the same reasons. ;)
2023-04-17Update Users.md [skip ci]Volker Weißmann1-0/+1
2023-04-17Add c++23 to the list of C++ standards.Jussi Pakkanen1-1/+5
2023-04-17select the correct python_command for pyinstaller builds, even on not-WindowsEli Schwartz1-2/+2
Checking the executable basename sort of works, at least for Windows, since Windows always happens to use exactly this approach. However, the official pyinstaller documentation suggests a very different approach: https://pyinstaller.org/en/stable/runtime-information.html This approach is more robust since it works on any OS, and in particular it allows me to test the PyInstaller bundle functionality on Linux, even though we don't officially distribute it as such.
2023-04-17fix data collection with pyinstallerEli Schwartz1-1/+1
pyinstaller considers .py files to not be data by default. The entire architecture of pyinstaller is, in fact, different from zipapp or unpacked modules -- because it actually has to use a resource loader with on-disk files *separate* from the module itself. So just because a file gets packaged in the application does not mean it's usable as an importlib.resources compatible resource. Although we collect data files in general, we need to make sure that .py files are collected from scripts, because we may try to run them standalone from an external process. Fixes #11689
2023-04-14mbuild: .pdb files are created only when debug symbols are enabledDaniele Nicolodi1-5/+9
This is the same fix as the one in #10800 for shared libraries but applied to executables instead.
2023-04-14minstall: work around broken environments with missing UIDsEli Schwartz1-2/+10
Running some container-like mechanisms such as chroot(1) from sudo, can result in a new isolated environment where the environment variables exist but no users exist. From there, a build is performed as root but installation fails when we try to look up the passwd database entry for the user outside of the chroot. Proper container mechanisms such as systemd-nspawn, and even improper ones like docker, sanitize this and ensure those stale environment variables don't exist anymore. But chroot is very low-level. Avoid crashing when this happens. Fixes #11662
2023-04-14minstall: do not drop privileges if msetup also ran under sudoEli Schwartz1-0/+4
A user might run `sudo somewrapper` to build and install something with meson, and it is not actually possible to drop privileges and build, since the build directory is also owned by root. A common case of this is `sudo pip install` for projects using meson-python or other python build-backends that wrap around meson. Fixes #11665
2023-04-14minstall: Fix install_subdir() excludes with path separators on WinDaniele Nicolodi7-5/+18
The paths in meson.build use / as path separator, however, the paths constructed during the directory structure walk use native path separators, thus the path never compare equal to the excluded ones. Normalize the exclusion paths before the comparison.
2023-04-14rust: Use `isinstance(d, build.StaticLibrary)` instead of comparing the type ↵Sebastian Dröge1-1/+1
name string
2023-04-14rust: Link staticlib/cdylib link targets like link targets from any other ↵Sebastian Dröge1-1/+4
language staticlib/cdylib only provide a C ABI, i.e. contain no Rust metadata, and can be linked like a link target from any other language.
2023-04-14rust: Don't prefer dynamic linking of Rust libraries for cdylibsSebastian Dröge1-5/+9
cdylibs provide a plain C ABI to its consumers and should not be treated like dylib/proc-macro shared libraries that provide a Rust ABI.
2023-04-14rust: Use the corresponding rustc version when clippy-driver is chosen as ↵Sebastian Dröge1-1/+12
Rust compiler By default clippy-driver will report its own version, which is not very useful to check the toolchain version. Instead make sure to extract the actual toolchain version here.
2023-04-14rust: Convert dashes in crate names to underscoresSebastian Dröge1-4/+14
Dashes can't be used as identifiers in Rust and cargo is converting dashes in crate names to underscores for the same reason.
2023-04-14rust: Don't pass dependency compile arguments to the compilerSebastian Dröge2-2/+13
Rust doesn't have a concept of dependency compile arguments, i.e. something like headers. Dependencies are linked in and all required metadata is provided by the linker flags.
2023-04-11backend/vs: Fix OpenMPSupportJosh Soref1-2/+2
https://learn.microsoft.com/en-us/visualstudio/msbuild/cl-task?view=vs-2022 Found by https://www.check-spelling.dev/ Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-11zsh: fix help / descriptionsJosh Soref1-3/+3
* --load-average * --gdb-path * description for install Found by https://www.check-spelling.dev/ Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-11ci: properly check `test cases/windows` filesJosh Soref1-2/+2
Found by https://www.check-spelling.dev/ Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-11ci: rename workflowJosh Soref1-3/+3
Found by https://www.check-spelling.dev/ Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-11syntax-highlighting: vim: fix mesonSpaceErrorJosh Soref1-1/+1
Fixes regression from 388fa6e7761712a7b1d3422a879fa9e90b6fa606 Found by https://www.check-spelling.dev/ Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-11packaging: fix options hostArchitectures attributeJosh Soref1-1/+1
This is used by the meson.pkg but is an optional attribute: https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW41 Found by https://www.check-spelling.dev/ Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>