aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-04-17CI: cygwin coverage uploader needs to run in bash tooeli/ci-shellEli Schwartz1-0/+1
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.
2023-03-30msetup: Allow (re)configure of not empty builddirXavier Claessens3-1/+40
Also prevent from using a parent directory as builddir by mistake. Co-authored-by: Volker Weißmann <volker.weissmann@gmx.de> Co-authored-by: Charles Brunet <charles.brunet@optelgroup.com>
2023-03-30msetup: use more consistent exceptions on exitXavier Claessens2-11/+18
- MesonException for errors is clearer than SystemExit('error message') and provides meson-formatted "ERROR: ..." - `raise SystemExit` with no parameter isn't obvious that it intends to exit successfully While clarifying the latter, it was observed to cause test_preprocessor_checks_CPPFLAGS() failure to be ignored. That test checks get_define() on both c and cpp compilers, which means we need to define either CPPFLAGS or both CFLAGS+CXXFLAGS.
2023-03-30coredata: Fix changing prefix optionXavier Claessens2-6/+6
This is a regression from #11537.
2023-03-29Make --vsenv a readonly builtin optionXavier Claessens13-24/+45
We need to remember its value when reconfiguring, but the Build object is not reused, only coredata is. This also makes CLI more consistent by allowing `-Dvsenv=true` syntax. Fixes: #11309
2023-03-28test cases: make various things werror-safeEli Schwartz5-4/+11
Allows getting closer to `./run_project_tests.py -- -Dwerror=true`. - when argc and argv are not *both* used, there's a standard, compliant mechanism to mark the variable as unused - generated code should not build as -Werror - more thoroughly comment out some commented code
2023-03-28python dependency: avoid redefinition warnings for MS_WIN64Eli Schwartz1-1/+1
pyconfig.h defines it in limited cases, but as empty, rather than as "1" which is what command-line defines generally do. Explicitly define it as a compatible definition so the compiler does not log a warning that the value has changed. Fixes #11592
2023-03-28test that python modules nominally compile without warningsEli Schwartz1-1/+1
Because we poke around with the dependency, so we might introduce some, and have at least once.
2023-03-28doc: Use better name for builtin/return object titleXavier Claessens2-1/+2
The title is used only in the sidebar. There is no need to have "extends" information there. For returned objects the actual name is not meaningful so it's better to use the long name. For builtin objects the name is important because that's the global variable name.
2023-03-28doc: Fix some broken linksXavier Claessens2-3/+3
2023-03-28Bump version number for rc1.1.1.0rc1Jussi Pakkanen2-3/+3
2023-03-28Condense test directories for rc1.Jussi Pakkanen93-23/+23
2023-03-28Fix validation regexes to handle rc version numbers.Jussi Pakkanen2-2/+2
2023-03-28backends: fix bug where meson_exe crashed if constructed with found programsEli Schwartz3-2/+2
Because we base the pickled data name on the name property of the command being run... and for built targets, `exe.name` is always just the name. However, for an ExternalProgram this is just whatever string we searched for, so, NOT just the basename. This became a bigger issue once we started using generator() with the actual program in commit 6aeec808367f05463394e30a8d40834e97c7afc0, rather than first casting it to a string, because the VS backend *always* uses the meson_exe approach for various reasons related to VS being VS. Outside of that, it's difficult to actually get an ExternalProgram object passed to meson_exe -- CustomTarget lowers it to a string, capture is handled via argparse instead of pickling, etc. Fixes #11593