aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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>
2023-04-11fix various spelling issuesJosh Soref151-248/+248
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-11better algo to find DLL paths on WindowsCharles Brunet1-6/+62
Instead of using a hacky version of rpaths_for_non_system_absolute_shared_libraries, we use a custom adhoc function. The function filters out paths that do not contain dll files. It also finds paths from any kind of dependencies. This removes unneeded paths from the PATH env var, and adds paths that were missing otherwise.
2023-04-11Revert "find dll path on Windows"Charles Brunet1-34/+10
This reverts commit 3968b84696a9034233c2fd64ef7d8e078982afe3.
2023-04-11Change "can not" to "cannot" throughout projectHiPhish41-45/+45
The word "cannot" expresses inability to do something whereas "can not" expresses the ability to refrain from doing something.
2023-04-11Fix spelling and grammar in Dependencies.mdPete Dietl1-3/+3
2023-04-10Bump version number for new development.Jussi Pakkanen1-1/+1
2023-04-10Bump version number for release.1.1.0Jussi Pakkanen1-1/+1
2023-04-10Generate relnotes for 1.1.0.Jussi Pakkanen20-198/+225
2023-04-04propagate the most accurate node to error messagesEli Schwartz48-50/+53
During evaluation of codeblocks, we start off with an iteration of nodes, and then while evaluating them we may update the global self.current_node context. When catching and formatting errors, we didn't take into account that the node might be updated from the original top-level iteration. Switch to formatting errors using self.current_node instead, to ensure we can point at the likely most-accurate actual cause of an error. Also update the current node in a few more places, so that function calls always see the function call as the current node, even if the most recently parsed node was an argument to the function call. Fixes #11643
2023-04-04tests: make it easier to read overall results in githubEli Schwartz1-1/+7
Use collapsible sections for cicmds.
2023-04-03tests/94 threads: fix build error with clang 16Christoph Reiter1-1/+1
It fails with "incompatible-function-pointer-types" otherwise
2023-04-03get_llvm_tool_names: add released llvm versionsChristoph Reiter1-0/+2
2023-04-02Bump version number for rc2.1.1.0rc2Jussi Pakkanen2-2/+2
2023-03-30fix regression that broken git-based wraps with dirty contentsEli Schwartz1-1/+2
In commit 8da060706c2c34fbea91898509123cb190894f3e we fixed an issue where stashing would ignore untracked files, potentially conflicting with what we reset to. Unfortunately in the process it broke the functionality entirely, by producing an invalid git command... according to some versions of git. This is actually a git bug, fixed upstream in git 2.37.0 via commit b02fdbc80a41f73ceb6c99e8e27b22285243a335. It causes git itself to re-synthesize the command line for a negation pathspec with a "." rather than "", as that's what is needed to make it match all files other than the negation. For backwards compatibility to older versions of git, we manually pass the dot pathspec ourselves.
2023-03-30backend/vs: ensure that build dir is preferred to src dirBarnabás Pőcze1-1/+2
Previously, the VS backend would add the the include directories in the reverse order that the Ninja backend does it, which means that the source directories would be preferred over the build directories. For example, this would cause the compiler to choose the file from the source directory if a file with the same name is found in both. Fixes 57ec097b5 ("vs: Use CompilerArgs() for compile and link args") Fixes #11630
2023-03-30tests: add test to ensure that build dir is preferred to src dirBarnabás Pőcze4-1/+7
Extend the "common/include order" test to ensure that the build directory is preferred over the source directory. For example, when using `configure_file()`, the resulting file should be preferred over a file with the same name in the source directory.