summaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)Author
2024-01-15Add a note for Windows users to GuiTutorial.mdizimuth
When compiling on Windows using MSVC, you also need to link the SDL2main.lib file. I've added a note to the GuiTutorial.md file to mention this.
2024-01-09compilers: cpp: wire up debugstl for ClangSam James
For Clang, we now pass -D_GLIBCXX_DEBUG=1 if debugstl is enabled, and we also pass -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG. Per https://discourse.llvm.org/t/building-a-program-with-d-libcpp-debug-1-against-a-libc-that-is-not-itself-built-with-that-define/59176/3, we can't use _LIBCPP_DEBUG for older Clang versions as it's unreliable unless libc++ was built with it. We choose MODE_DEBUG for stldebug while building with assertions will do MODE_EXTENSIVE. Signed-off-by: Sam James <sam@gentoo.org> Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
2024-01-09compilers: cpp: wire up stdlib assertionsSam James
None of the options set here affect ABI and are intended for detecting constraint violations. For GCC, we simply need to set -D_GLIBCXX_ASSERTIONS. For Clang, the situation is far more complicated: * LLVM 18 uses a 'hardened mode' (https://libcxx.llvm.org/Hardening.html). There are several levels of severity available here. I've chosen _LIBCPP_HARDENING_MODE_EXTENSIVE as the strongest-but-one. The strongest one (_DEBUG) doesn't affect ABI still but is reserved for stldebug. * LLVM 15 uses a similar approach to libstdc++ called '_LIBCPP_ENABLE_ASSERTIONS' Note that LLVM 17 while in development had fully deprecated _LIBCPP_ENABLE_ASSERTIONS in favour of hardened, but changed its mind last-minute: https://discourse.llvm.org/t/rfc-hardening-in-libc/73925/4. Signed-off-by: Sam James <sam@gentoo.org> Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
2024-01-01envconfig: read CYTHON from the environment and use it if setErik Bråthen Solem
Add support for specifying Cython compiler using the CYTHON environment variable. If not set, proceed with the names hard coded for Cython.
2024-01-01docs: Document Qt tools updates in 0.63Chris Mayo
Especially relevant for users of Ubuntu 22.04 which has packages for Qt 6.2 and Meson 0.61. a606ce22e ("Add support for Qt 6.1+", 2022-01-08) d68a0651e ("qt module: also prefer the changed name scheme for the tools", 2022-02-09)
2024-01-01docs: Fix since for compile_translations in _include_qt_baseChris Mayo
2024-01-01docs: Rename Qt4 & Qt5 in Dependencies to QtChris Mayo
2024-01-01docs: Use Qt instead of qtChris Mayo
2023-12-28docs: fix regression that broke intended meaning of compiler variables noteEli Schwartz
In commit 58c2aeb5e433ae7652488d53021c40db1712dea5, an asterisk used to indicate "see note at bottom" was doubled up into an "italicize this paragraph", which didn't contextually make any sense. See: https://github.com/mesonbuild/meson/pull/12674#issue-2057666653
2023-12-27Add CLion to the list of IDE integrationsMarina.Kalashina
CLion was not mentioned in the list of IDE integrations. This commit adds it, also adds a “3rd party" prefix to the Meson Syntax Highlighter plugin to indicate that it doesn't come from JetBrains, and sorts the list alphabetically.
2023-12-18Update Users.md (#12634)Michael Gene Brockus (Dreamer)
* Update Users.md
2023-12-13Use SPDX-License-Identifier consistentlyDylan Baker
This replaces all of the Apache blurbs at the start of each file with an `# SPDX-License-Identifier: Apache-2.0` string. It also fixes existing uses to be consistent in capitalization, and to be placed above any copyright notices. This removes nearly 3000 lines of boilerplate from the project (only python files), which no developer cares to look at. SPDX is in common use, particularly in the Linux kernel, and is the recommended format for Meson's own `project(license: )` field
2023-12-13add the EFL, Enlightenment, libdwarf and ThorVG as users of mesonVincent Torri
2023-12-12cmake: parse project versionNicolas Werner
This properly sets the project version in projects meson generates from cmake projects. This allows dependency fallbacks to properly check the version constraints in dependency calls when falling back to a cmake subproject. Before this would fail, because the project version was undefined.
2023-11-26fix broken type annotation imports being ignoredEli Schwartz
If an annotation could not be resolved, it's classified as a "missing import" and our configuration ignored it: ``` Skipping analyzing "mesonbuild.backends": module is installed, but missing library stubs or py.typed marker ``` As far as mypy is concerned, this library may or may not exist, but it doesn't have any typing information at all (may need to be installed first). We ignored this because of our docs/ and tools/ thirdparty dependencies, but we really should not. It is trivial to install them, and then enforce that this "just works". By enforcing it, we also make sure typos get caught.
2023-11-24File: Add full_path() methodXavier Claessens
This is needed now that str.format() is not allowing it any more. It is also more consistent with other objects that have that method as well, such as build targets. Fixes: #12406
2023-11-22docs: Update Quick-guide.mdBin Meng
Change the shell prompt to '#' to when installing as root. Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2023-11-22docs/dependency: fix type of version kwargGerion Entrup
2023-11-22docs: document out of bounds behavior in str.substringFilipe Laíns
Signed-off-by: Filipe Laíns <lains@riseup.net>
2023-11-22Update release frequency to match realityPeter Harris
Releases have been happening an average of once every 90 days for the past two years (since 0.60.0). If we just look at releases since 1.0.0, the average is over 100 days.
2023-11-22docs: fix bindgen_clang_arguments exampleAlyssa Ross
> error: unsupported option '--target'; did you mean '-target'?
2023-11-19Generate release notes for 1.3.0.Jussi Pakkanen
2023-11-17note on glib libraryalbert
2023-11-14dependencies: allow get_variable to define multiple pkgconfig definesEli Schwartz
It was previously impossible to do this: ``` dep.get_pkgconfig_variable( 'foo', define_variable: ['prefix', '/usr', 'datadir', '/usr/share'], ) ``` since get_pkgconfig_variable mandated exactly two (if any) arguments. However, you could do this: ``` dep.get_variable( 'foo', pkgconfig_define: ['prefix', '/usr', 'datadir', '/usr/share'], ) ``` It would silently do the wrong thing, by defining "prefix" as `/usr=datadir=/usr/share`, which might not "matter" if only datadir was used in the "foo" variable as the unmodified value might be adequate. The actual intention of anyone writing such a meson.build is that they aren't sure whether the .pc file uses ${prefix} or ${datadir} (or which one gets used, might have changed between versions of that .pc file, even). A recent refactor made this into a hard error, which broke some projects that were doing this and inadvertently depending on some .pc file that only used the second variable. (This was "fine" since the result was essentially meaningful, and even resulted in behavior identical to the intended behavior if both projects were installed into the same prefix -- in which case there's nothing to remap.) Re-allow this. There are two ways we could re-allow this: - ignore it with a warning - add a new feature to allow actually doing this Since the use case which triggered this bug actually has a pretty good reason to want to do this, it makes sense to add the new feature. Fixes https://bugs.gentoo.org/916576 Fixes https://github.com/containers/bubblewrap/issues/609
2023-11-05Update Users.mdMichael Gene Brockus (Dreamer)
2023-11-05Adding Trilobite Data to Users.mdMichael Gene Brockus (Dreamer)
2023-11-02scan-build: Exclude subprojects from scan-build reportAndrew McNulty
When a user invokes the scan-build target that Meson generates all subprojects are included in the resulting report. This commit modifies the invocation of scan-build to exclude all bugs that scan-build finds in the subprojects from the final report. A release note has also been added describing the changed behaviour.
2023-10-20Support -j as a shorthand for --num-processesTristan Partin
We already use -j to support parallelism in meson compile. So let's add the same for meson test and meson subprojects.
2023-10-19pkgconfig: Allow setting both pkgconfig and pkg-configXavier Claessens
This was previously allowed for different usage. Keep allowing it, but with non fatal deprecation notice, and ignore the value from legacy pkgconfig.
2023-10-19mtest: set ASAN_OPTIONS and UBSAN_OPTIONS to abort by defaultSam James
Do as we do for MALLOC_PERTURB and set a sensible value for both ASAN_OPTIONS and UBSAN_OPTIONS to abort on failure and give more helpful output at the same time. We do not set these options if the user has exported a value themselves to allow override. In the last week alone, I've observed two cases where people were expecting sanitizers to abort on failure and were surprised when it didn't: 1) https://github.com/git/git/commit/252d693797912ddb2684733160170f0408b73274 2) https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/c47df433f7bc9936fc59b323ca5e53ea4a04f40e Correct this - which is in-line with meson's DWIM/DTRT philosophy. Signed-off-by: Sam James <sam@gentoo.org>
2023-10-17release notes: fix snippet for "fill:" argumentPaolo Bonzini
The release notes were using the older spelling "length". Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2023-10-09interpreter: Add support for cargo subprojectXavier Claessens
2023-10-09interpreter: add <lang>_(static|shared)_argsDylan Baker
Which allow passing arguments specifically to the static or shared libraries. For design, this is all handled in the interpreter, by the build layer the arguments are combined into the existing fields. This limits changes required in the mid and backend layers
2023-10-09interpreter: Handle BuildTarget.vala_args as Files in the interpreterDylan Baker
Way back in Meson 0.25, support was added to `vala_args` for Files. Strangely, this was never added to any other language, though it's been discussed before. For type safety, it makes more sense to handle this in the interpreter level, and pass only strings into the build IR. This is accomplished by adding a `depend_files` field to the `BuildTarget` class (which is not exposed to the user), and adding the depend files into that field, while converting the arguments to relative string paths. This ensures both the proper build dependencies happen, as well as that the arguments are always strings.
2023-10-05Add env kwarg in generator.process()Nomura
2023-10-05mcompile: add suffix as an additional parameterDudemanguy
Since the previous commit allows for more scenarios with name collisions, it makes sense to expand the compile command so that it can also take into account suffixes. i.e. meson compile -C build foo.exe can now work if the executable has an exe suffix along with being named foo.
2023-10-05build: use suffix when getting target id for exesDudemanguy
When checking target names, meson explictly forbids having multiple targets with the same name. This is good, but it is strict and it is impossible to have targets with the same basename and differing suffixes (e.g. foo and foo.bin) in the same directory. Allow this for executables by including the suffix (if it exists) in the interal target id. So foo would be foo@exe and foo.bin would be foo.bin@exe.
2023-09-30Update Users.mdMichael Gene Brockus (Dreamer)
2023-09-28add support for vs_module_defs to ExecutablesDylan Baker
fixes: #9254
2023-09-28fix using a CustomTargetIndex for vs_module_defsDylan Baker
Because `CustomTargetIndex`es don't have a `subdir` property, but they do implement the `get_subdir()` method
2023-09-25Add clang-tidy-fix targetLei YU
Add the `clang-tidy-fix` target to apply clang-tidy fixes to the source code. This is done by calling `run-clang-tidy` with `-fix` argument. Add a test case to run `clang-tidy-fix` and verify the file is changed. Signed-off-by: Lei YU <yulei.sh@bytedance.com>
2023-09-22Allow to fallback to cmake subprojectXavier Claessens
The method can be overridden by setting the `method` key in the wrap file and always defaults to 'meson'. cmake.subproject() is still needed in case specific cmake options need to be passed. This also makes it easier to extend to other methods in the future e.g. cargo.
2023-09-22CPU family support 'sw_64' and remove the compile warning (#12273)Kunwu.Chan
add sw_64 to the list of known cpus
2023-09-19docs: fix `add_project_link_arguments` documentationBenoit Pierre
It should refer to `add_project_arguments`, not `add_global_arguments`.
2023-09-19Rust: Replace rust_crate_type with rust_abiXavier Claessens
Meson already knows if it's a shared or static library, user only need to specify the ABI (Rust or C).
2023-09-19Rust: Add a rust.proc_macro() methodDylan Baker
2023-09-18fix linksyyyyyiiiiii
Wayland, Weston, wlroots migrated to gitlab.freedesktop.org
2023-09-18Update link to lcovEberhard Beilharz
lcov moved from sourceforge to github, so this change updates the link.
2023-09-15reference tables: Document how to set compiler paths with spaces in ↵L. E. Segovia
environment variables See #11128
2023-09-13install_{data,headers,subdir}: implement follow_symlinksArsen Arsenović
This permits users who rely on following symlinks to stay on the old default of following them.