aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/markdown/Gnome-module.md14
-rw-r--r--docs/markdown/snippets/gnome_yelp_sources.md6
-rw-r--r--mesonbuild/modules/gnome.py8
3 files changed, 27 insertions, 1 deletions
diff --git a/docs/markdown/Gnome-module.md b/docs/markdown/Gnome-module.md
index 9477b29..ccdb1f2 100644
--- a/docs/markdown/Gnome-module.md
+++ b/docs/markdown/Gnome-module.md
@@ -298,9 +298,23 @@ VAPI or Vala binaries.
### gnome.yelp()
+```meson
+ gnome.yelp(id: string, sources: ...string, sources: []string, media: []string,
+ languages: []string, symlink_media: bool = true): void
+```
+
Installs help documentation using Yelp. The first argument is the
project id.
+Additionally, sources can be passed as additional positional arguments. This
+was, however, undocumented and never officially supported. Due to a longstanding
+bug, passing sources as a keyword argument will result in the positional
+argument sources to be ignored. *since 0.60.0* A warning is raised in this case.
+
+*Since 0.60.0* the use of the positional argument sources has been deprecated,
+and the "sources" keyword argument should be used instead. The passing of
+sources as positional arguments will be removed in the future.
+
This also creates two targets for translations
`help-$project-update-po` and `help-$project-pot`.
diff --git a/docs/markdown/snippets/gnome_yelp_sources.md b/docs/markdown/snippets/gnome_yelp_sources.md
new file mode 100644
index 0000000..3633d17
--- /dev/null
+++ b/docs/markdown/snippets/gnome_yelp_sources.md
@@ -0,0 +1,6 @@
+## gnome.yelp variadic argument deprecation
+
+`gnome.yelp` previously allowed sources to be passed either as variadic
+arguments or as a keyword argument. If the keyword argument was given the
+variadic arguments would be silently ignored. This has changed in 0.60.0, the
+variadic form has been deprecated, and a warning is printed if both are given.
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index a6c0e1b..739faec 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -33,7 +33,7 @@ from ..mesonlib import (
join_args, HoldableObject
)
from ..dependencies import Dependency, PkgConfigDependency, InternalDependency
-from ..interpreterbase import noPosargs, noKwargs, permittedKwargs, FeatureNew, FeatureNewKwargs, FeatureDeprecatedKwargs
+from ..interpreterbase import noPosargs, noKwargs, permittedKwargs, FeatureNew, FeatureNewKwargs, FeatureDeprecatedKwargs, FeatureDeprecated
from ..interpreterbase import typed_kwargs, KwargInfo, ContainerTypeInfo
from ..programs import ExternalProgram, OverrideProgram
from ..build import CustomTarget, CustomTargetIndex, GeneratedList
@@ -969,12 +969,18 @@ class GnomeModule(ExtensionModule):
raise MesonException('Yelp requires a project id')
project_id = args[0]
+ if len(args) > 1:
+ FeatureDeprecated.single_use('gnome.yelp more than one positional argument', '0.60.0', 'use the "sources" keyword argument instead.')
+
sources = mesonlib.stringlistify(kwargs.pop('sources', []))
if not sources:
if len(args) > 1:
sources = mesonlib.stringlistify(args[1:])
if not sources:
raise MesonException('Yelp requires a list of sources')
+ else:
+ if len(args) > 1:
+ mlog.warning('"gnome.yelp" ignores positional sources arguments when the "sources" keyword argument is set')
source_str = '@@'.join(sources)
langs = mesonlib.stringlistify(kwargs.pop('languages', []))