aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/scripts/yelphelper.py19
-rw-r--r--test cases/frameworks/13 yelp/help/LINGUAS2
-rw-r--r--test cases/frameworks/13 yelp/help/meson.build6
-rw-r--r--test cases/frameworks/13 yelp/installed_files.txt6
4 files changed, 33 insertions, 0 deletions
diff --git a/mesonbuild/scripts/yelphelper.py b/mesonbuild/scripts/yelphelper.py
index 978a870..f8c9f8c 100644
--- a/mesonbuild/scripts/yelphelper.py
+++ b/mesonbuild/scripts/yelphelper.py
@@ -29,6 +29,22 @@ parser.add_argument('--media', dest='media', default='')
parser.add_argument('--langs', dest='langs', default='')
parser.add_argument('--symlinks', type=bool, dest='symlinks', default=False)
+def read_linguas(src_sub):
+ # Syntax of this file is documented here:
+ # https://www.gnu.org/software/gettext/manual/html_node/po_002fLINGUAS.html
+ linguas = os.path.join(src_sub, 'LINGUAS')
+ try:
+ langs = []
+ with open(linguas) as f:
+ for line in f:
+ line = line.strip()
+ if line and not line.startswith('#'):
+ langs += line.split()
+ return langs
+ except (FileNotFoundError, PermissionError):
+ print('Could not find file LINGUAS in {}'.format(src_sub))
+ return []
+
def build_pot(srcdir, project_id, sources):
# Must be relative paths
sources = [os.path.join('C', source) for source in sources]
@@ -108,6 +124,9 @@ def run(args):
build_subdir = os.path.join(os.environ['MESON_BUILD_ROOT'], options.subdir)
abs_sources = [os.path.join(src_subdir, 'C', source) for source in sources]
+ if not langs:
+ langs = read_linguas(src_subdir)
+
if options.command == 'pot':
build_pot(src_subdir, options.project_id, sources)
elif options.command == 'update-po':
diff --git a/test cases/frameworks/13 yelp/help/LINGUAS b/test cases/frameworks/13 yelp/help/LINGUAS
new file mode 100644
index 0000000..173f978
--- /dev/null
+++ b/test cases/frameworks/13 yelp/help/LINGUAS
@@ -0,0 +1,2 @@
+de
+es
diff --git a/test cases/frameworks/13 yelp/help/meson.build b/test cases/frameworks/13 yelp/help/meson.build
index 85bc980..c8edd61 100644
--- a/test cases/frameworks/13 yelp/help/meson.build
+++ b/test cases/frameworks/13 yelp/help/meson.build
@@ -13,3 +13,9 @@ gnome.yelp('meson-symlink',
symlink_media: true,
languages: ['de', 'es'],
)
+
+gnome.yelp('meson-linguas',
+ sources: 'index.page',
+ media: 'media/test.txt',
+ symlink_media: false,
+)
diff --git a/test cases/frameworks/13 yelp/installed_files.txt b/test cases/frameworks/13 yelp/installed_files.txt
index 9fc097d..1f6522f 100644
--- a/test cases/frameworks/13 yelp/installed_files.txt
+++ b/test cases/frameworks/13 yelp/installed_files.txt
@@ -10,3 +10,9 @@ usr/share/help/es/meson-symlink/media/test.txt
usr/share/help/es/meson-symlink/index.page
usr/share/help/de/meson-symlink/index.page
usr/share/help/de/meson-symlink/media/test.txt
+usr/share/help/C/meson-linguas/index.page
+usr/share/help/C/meson-linguas/media/test.txt
+usr/share/help/es/meson-linguas/media/test.txt
+usr/share/help/es/meson-linguas/index.page
+usr/share/help/de/meson-linguas/index.page
+usr/share/help/de/meson-linguas/media/test.txt