Commit Graph

1969 Commits

Author SHA1 Message Date
Eli Schwartz
d924586bee docs: note the automatic creation of gitignore in build directories 2022-09-14 18:53:53 -04:00
Dylan Baker
9a645c1c5a rust: Generate a rust-project.json file when rust targets are present
When at least one Rust target is present, we now generate a
rust-project.json file, which can be consumed by rust-analyzer. This is
placed in the build directory, and the editor must be configured to look
for this (as it is not a default search path).
2022-09-12 18:51:27 -04:00
Eli Schwartz
c555724b49 docs: fix broken porting advice for intl dependency in release notes
See https://github.com/theimpossibleastronaut/rmw/pull/345#discussion_r967876201

The check for `.found()` implies the dependency lookup should be
optional, but the example didn't make it optional.
2022-09-12 15:16:38 -04:00
Xavier Claessens
1acccc862a doc: Recommend tags for libraries utilities
GLib installs a few executables that are not needed by applications that
use the glib libraries, but are used either by build systems or by user
scripts. Debian splits them into libglib2.0-dev-bin and libglib2.0-bin
packages. Another example is GStreamer tools (e.g. gst-launch-1.0) that
Debian packages separately in gstreamer1.0-tools.

It is common enough that Meson documentation should recommend a tag for
consistency across projects.
2022-09-09 18:24:18 -04:00
Mark Bolhuis
a289e5416b modules/wayland: Change default value of include_core_only to true
The use of wayland-<client|server>.h is discouraged, therefore
change the default value of include_core_only to true.
2022-09-07 08:43:29 -04:00
Mark Bolhuis
b6235a2e42 modules/wayland: Rename core_only to include_core_only
Rename the core_only option in scan_xml to include_core_only
to match the flag used by wayland-scanner.
2022-09-07 08:43:29 -04:00
Mark Bolhuis
25f838fd33 modules/wayland: Support --include-core-only
wayland-scanner can generate header files that only include
wayland-client-core.h using a flag.

Add a core_only option to scan_xml to support this use case.
2022-09-06 18:08:39 -04:00
Eli Schwartz
4f05f877fc docs: make note of the path restriction on subdir()
It's mentioned in the error message if you try to do it, that you cannot
use `..`, but it is probably useful to mention this in the online docs
too.
2022-08-29 12:09:52 -04:00
Eli Schwartz
e8d42bd9a8 docs: mention in the native-file docs, the command line argument to use
We mention --cross-file in the relevant page, but the fact that
--native-file is the command line argument to use is mentioned nowhere
other than a couple of release notes and the --help text for meson
setup.

This should be described in the docs.
2022-08-29 12:09:52 -04:00
Thomas Lange
d4733984e9 Users.md: Add Audacious 2022-08-27 23:18:58 -04:00
Eli Schwartz
f8ebfdf7b1 install modes should not apply sticky bit to files
This is generally a bad idea, e.g. it causes OSError on freebsd.

It also gets ignored by solaris and thus causes unittest failures.

The proper solution is to simply reject any attempt to set this, and log a
warning.

The install_emptydir function does apply the mode as well, and since it
is a directory it actually does something. This is the only place where
we don't reset the mode.

Although install_subdir also installs directories, and in theory it
could set the mode as well, that would be a new feature. Also it doesn't
provide much granularity and has mixed semantics with files. Better to
let people use install_emptydir + install_subdir.

Fixes #5902
2022-08-23 21:07:00 -04:00
Dylan Baker
991baf56e9 modules/fs: Replace configure_file(copy:) with fs.copyfile
`configure_file` is both an extremely complicated implementation, and
a strange place for copying. It's a bit of a historical artifact, since
the fs module didn't yet exist. It makes more sense to move this to the
fs module and deprecate this `configure_file` version.

This new version works at build time rather than configure time, which
has the disadvantage it can't be passed to `run_command`, but with the
advantage that changes to the input don't require a full reconfigure.
2022-08-18 16:53:36 -04:00
Eli Schwartz
3c7ab542c0 deprecate running "meson builddir" without setup subcommand
This is ambiguous, if the build directory has the same name as a
subcommand then we end up running the subcommand. It also means we have
a hard time adding *new* subcommands, because if it is a popular name of
a build directory then suddenly scripts that try to set up a build
directory end up running a subcommand instead.

The fact that we support this at all is a legacy design. Back in the
day, the "meson" program was for setting up a build directory and all
other tools were their own entry points, e.g. `mesontest` or
`mesonconf`. Then in commit fa278f351f we
migrated to the subcommand mechanism. So, for backwards compatibility,
we made those tools print a warning and then invoke `meson <tool>`. We
also made the `meson` tool default to setup.

However, we only warned for the other tools whose entry points were
eventually deleted. We never warned for setup itself, we just continued
to silently default to setup if no tool was provided.

`meson setup` has worked since 0.42, which is 5 years old this week.
It's available essentially everywhere. No one needs to use the old
backwards-compatible invocation method, but it continues to drag down
our ability to innovate. Let's finally do what we should have done a
long time ago, and sunset it.
2022-08-16 17:40:03 -04:00
Eli Schwartz
25b0988d4e docs: fix various references to "meson builddir"
This is wrong, it should use "meson setup builddir".
2022-08-16 16:18:18 -04:00
0xMRTT
d141b85462 add AdwCustomizer 2022-08-12 21:56:24 +03:00
Gerion Entrup
e5df70b8d3 documentation: extend custom_target install
custom_target allows selective installation if it outputs more than one
file. Mention this explicitly in install.
Additionally, fix the types for install_dir.

see: https://github.com/mesonbuild/meson/issues/505
2022-07-31 07:50:26 -07:00
Eli Schwartz
5851c133a0 docs: add some function linkification in code snippets
Let people easily find the documentation for concepts we are trying to
teach.
2022-07-14 00:01:39 -04:00
Philip Withnall
69131e7242 docs: Suggest using depth=1 by default for wrap-git
It saves bandwidth and disk usage on downloaded subprojects, and people
very rarely need more than the single commit they’re using.

Add `depth=1` to the `[wrap-git]` examples in the rest of the
documentation, to make it more likely that people will copy-and-paste it
into their `.wrap` files.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-07-13 08:14:41 -07:00
Michael Davidsaver
34fcb00ec0 docs: add cross-file example 2022-07-11 22:46:58 +03:00
Eli Schwartz
e7d87b6f58 implement the new preserve_path kwarg for install_data too
Primarily interesting to me because it is then available for the python
module's install_sources method.

Based on the new feature in install_headers.
2022-07-08 01:58:23 -04:00
Amit D
569521d5ec Users.md: Add SciPy 2022-07-07 11:44:42 -07:00
Amit D
b88bec0ee8 Update Users.md 2022-07-04 23:59:39 -04:00
Amit D
f1c507f302 Update Users.md 2022-07-04 18:22:41 +03:00
Jussi Pakkanen
9c6dab2cfd Finalize the release. 2022-07-03 17:39:59 +03:00
smowzy
51dad83d46 Users.md: remove wxFormBuilder
according to commit 8a3d1697c8
2022-07-02 00:12:01 +03:00
Eli Schwartz
e06dd48ad2 docs: update various function references to be linkified 2022-06-29 20:33:35 -04:00
Eli Schwartz
4635fd5937 docs: fix broken link to structured sources
We used the wrong spelling for both the object and the function. Link to
both, once in the description and once in the example code.
2022-06-27 19:45:43 -04:00
Eli Schwartz
6cc1f26e55 docs: fix broken links in i18n modue
We want to talk about the kwargs to the custom_target() function, but
tried to link to custom_tgt instead, which is not a function. It is an
object, but this was the wrong reference method for a type.

We want the function anyway, so use that.
2022-06-27 19:43:39 -04:00
Eli Schwartz
21493fe5c6 docs: correctly classify module methods as a method, not a function 2022-06-27 18:29:48 -04:00
Eli Schwartz
8ef3909086 docs: grammar nit 2022-06-27 18:29:48 -04:00
Eli Schwartz
0960cd3c23 docs: encourage using the "setup" subcommand where appropriate 2022-06-27 18:29:48 -04:00
Eli Schwartz
5e445fd747 docs: fix confusing repetition
The end of the paragraph indicates that the options which support --foo
will be listed in the help text. The beginning of the paragraph seems to
suggest the same thing, except it doesn't distinguish between -Dfoo and
--foo style options.

The first mention is redundant and feels like the wrong part of the
paragraph to mention it anyway.
2022-06-27 18:29:48 -04:00
Eli Schwartz
4e43970752 docs: linkify some function references 2022-06-27 18:29:48 -04:00
Eli Schwartz
0be3532456 docs: fix yaml refman example of embedding links in a code comment
With the previous commit, we made this smartly detect when parentheses
are not needed. But the example was broken, because it doesn't follow
its own documented rules to use `[[#` syntax. Add the missing hash
character.
2022-06-27 17:07:33 +02:00
Eli Schwartz
ad0c70bac1 docs: make the refman linkification slightly prettier for codeblocks
If we link to

```meson
[[#function]]('posarg')
```

then the ideal linkification would operate on "function" in the
formatted text:

```
function('posarg')
```

Instead, it operated on "function()" in the formatted text:

```
function()('posarg')
```

Fix this by detecting the next character after the reference, and
skipping the usual "automatically append the () for you" stage if it
already has that opening parenthesis.
2022-06-27 17:07:33 +02:00
Eli Schwartz
a20523aa5f docs: grammar and formatting nits 2022-06-21 16:29:30 -04:00
Eli Schwartz
b72a5668c2 docs: remove incorrect information about nonexisting kwarg 2022-06-21 16:29:17 -04:00
CLanguagePurist
87b4b0d4e7 Update Unit-tests.md (#10515) 2022-06-21 21:49:12 +03:00
Eli Schwartz
22dcb692ad python module: implicitly add python dep to extensions
If there isn't a preexisting dependency on python, append one. It's
almost assuredly needed, so just do the right thing out of the box.
2022-06-19 21:44:17 +03:00
Xavier Claessens
807cbcb350 external-project: Add depends kwarg
The unit test was racy but surprisingly never failed on CI. The reason
is we need to ensure ninja build somelib.so before running `make` into
the external project.
2022-06-17 18:56:13 -04:00
Eli Schwartz
b13a95c301 docs: d_module_versions has an undocumented ability to accept integers
Dlang uses both integer version "levels" and arbitrary string
identifiers, and we support both, but don't mention it in the docs.

Also update a test case to pass one via declare_dependency. We already
test this kwarg for build_target.
2022-06-17 14:33:02 -04:00
Eli Schwartz
e99e55d0aa docs: fix incorrect info for declare_dependency sources
The type information is clearly wrong as it disagrees with the
description w.r.t. generated headers.

We also rely on it accepting custom targets for the obvious reason that
we accept it in a build target too! In fact, we rely on this in the
testsuite too.
2022-06-17 14:33:01 -04:00
Eli Schwartz
41860f686f docs: ensure stable order of release notes
Merging snippets happens in arbitrary order -- whatever filesystem
globbing results in. This didn't matter too much when we ran it once at
release time and checked the resulting release notes into git. However,
now that we generate a temporary version of the release notes for
development versions, the order of the results will periodically change.

Sort the files before processing them in order to guarantee that
whatever order they are in, they stay that way.

As a side effect, it's now technically possible to guarantee an ordering
by judicious use of snippets naming.
2022-06-17 06:48:45 -04:00
Xavier Claessens
ebfbaef7ee doc: Add meson.override_dependency() in external-project example 2022-06-16 09:18:24 -04:00
ff
4ad869cd84 fix typo in IndepthTutorial.md 2022-06-10 12:41:00 -07:00
Paweł Marczewski
9061c3a52d wrap: Add support for applying a list of patch files
Co-authored-by: Xavier Claessens <xavier.claessens@collabora.com>
2022-06-07 06:43:39 -04:00
Marco Trevisan (Treviño)
29c26d5b26 compilers: Add support for stand-alone leak sanitizer
Leak sanitizer can be enabled without the whole AddressSanitizer, this
can be done by passing -fsanitize=leak as documented at [1].

Meson doesn't support this, so add support for it.

[1] https://clang.llvm.org/docs/LeakSanitizer.html
2022-06-06 09:40:14 -07:00
Xavier Claessens
39ba552811 Add "in development" in release notes title
It was already written in the side menu, but better have it in the page
title too.
2022-06-01 21:52:45 -04:00
Eli Schwartz
eec7b2c359 docs: fix incorrect link
When referring to the custom_target docs, we want to point to the docs
on the function, not the docs on the returned method.
2022-05-31 17:49:30 -04:00
Eli Schwartz
c88a1dc55c fix bug in i18n merge_file/itstool_join revealed by previous commit
Logically, i18n.merge_file cannot ever take a MULTI_OUTPUT_KW, but it
does take a CT_OUTPUT_KW-like interface.

Actually trying to pass multiple merge_file outputs causes the
msgfmthelper script to be entirely malformed in the arguments it
accepts, and treat the broken one like a --flag, then exit with argparse
errors.

Even if we somehow assumed that somehow it was designed to actually
allow this, msgfmt doesn't support conceptually passing multiple outputs
so that would be a msgfmt error instead of an error inside the guts of
`meson --internal msgfmthelper`.

Same logic applies again for the itstool command and the itstool
internal helper.

Catch this error at configuration time by using the single-output kwarg
form.

Likewise, it's totally nonsense to accept multiple install_dir or
install_tags, and ever since commit 11f9638035
the CustomTarget itself won't even check this.
2022-05-31 17:49:29 -04:00