aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-05-02python module: add an automatic byte-compilation stepEli Schwartz8-7/+149
For all source `*.py` files installed via either py.install_sources() or an `install_dir: py.get_install_dir()`, produce `*.pyc` files at install time. Controllable via a module option.
2023-05-02update the devenv module hooks to support generic modifications to BuildEli Schwartz3-10/+10
We may want to do things like update install scripts as well, which have to happen before generating the backend. Instead of adding one module method per thing to do, use a single function that allows for modifying the Build object directly.
2023-05-02extend install scripts to allow specific directory variable exportsEli Schwartz3-5/+14
This is useful for internal scripts that want to know about something other than MESON_INSTALL_PREFIX and MESON_INSTALL_DESTDIR_PREFIX, which is very specific to the prefix.
2023-05-02fix regression in precomputing CMAKE_SIZEOF_VOID_PMaxHearnden1-1/+1
In commit 808d5934dd6c6a6c16f66e9dc51dae6e83e02cef, compiler.sizeof was refactored to introduce caching, but cmake subprojects did not adapt to that API change and ended up embedding the python repr of a tuple as a cmake variable.
2023-05-02Log python name when not foundCharles Brunet1-3/+3
Fixes #11686.
2023-05-02Find python3.xx on windowsCharles Brunet3-3/+12
2023-05-02Ensure python fallback has the right versionCharles Brunet1-1/+2
Fixes #11057
2023-05-01avoid re-uploading the docs when a PR is based on the upstream repoEli Schwartz1-3/+2
In this case, we have the secret available, and the workflow ran even though it wasn't on branch "master" because of the pull request trigger. Since the change hasn't landed on master, though, we do not want to update the website. So check for pushes to master, specifically.
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.