Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'pep517build/backend.py')
-rw-r--r--pep517build/backend.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/pep517build/backend.py b/pep517build/backend.py
new file mode 100644
index 000000000..1592ccb57
--- /dev/null
+++ b/pep517build/backend.py
@@ -0,0 +1,89 @@
+from __future__ import annotations
+
+from typing import Any
+
+import logging
+import subprocess
+from pathlib import Path
+
+import setuptools.build_meta as _orig
+
+logging.basicConfig(level='INFO', format='%(message)s')
+
+ALLOWED_CONFIG_SETTINGS = {'target'}
+MAN_FILES = [
+ Path('data/gajim.1'),
+ Path('data/gajim-remote.1')
+]
+META_FILES = [
+ (Path('data/org.gajim.Gajim.desktop.in'), '--desktop'),
+ (Path('data/org.gajim.Gajim.appdata.xml.in'), '--xml')
+]
+ICONS = [
+ Path('gajim/data/icons/hicolor/scalable/apps/org.gajim.Gajim.svg'),
+ Path('gajim/data/icons/hicolor/scalable/apps/org.gajim.Gajim-symbolic.svg'),
+]
+
+
+def build_translations() -> None:
+ # Compile translation files and place them into "gajim/data/locale"
+
+ source_dir = Path.cwd()
+ translation_dir = source_dir / 'po'
+ locale_dir = source_dir / 'gajim' / 'data' / 'locale'
+
+ langs = sorted([lang.stem for lang in translation_dir.glob('*.po')])
+
+ for lang in langs:
+ po_file = source_dir / 'po' / f'{lang}.po'
+ mo_file = locale_dir / lang / 'LC_MESSAGES' / 'gajim.mo'
+ mo_file.parent.mkdir(parents=True, exist_ok=True)
+
+ logging.info('Compile %s >> %s', po_file, mo_file)
+
+ subprocess.run(['msgfmt',
+ str(po_file),
+ '-o',
+ str(mo_file)],
+ check=True)
+
+
+def _check_config_settings(config_settings: dict[str, str]) -> None:
+ settings = set(config_settings.keys()) - ALLOWED_CONFIG_SETTINGS
+ if settings:
+ raise ValueError('Unknown config setting %s' % settings)
+
+
+def get_requires_for_build_sdist(*args: Any, **kwargs: Any) -> str:
+ return _orig.get_requires_for_build_sdist(*args, **kwargs)
+
+
+def build_sdist(*args: Any, **kwargs: Any) -> str:
+ return _orig.build_sdist(*args, **kwargs)
+
+
+def get_requires_for_build_wheel(*args: Any, **kwargs: Any) -> str:
+ return _orig.get_requires_for_build_wheel(*args, **kwargs)
+
+
+def prepare_metadata_for_build_wheel(*args: Any, **kwargs: Any) -> str:
+ return _orig.prepare_metadata_for_build_wheel(*args, **kwargs)
+
+
+def build_wheel(wheel_directory: str,
+ config_settings: dict[str, str] | None = None,
+ metadata_directory: str | None = None
+ ) -> str:
+
+ if config_settings is not None:
+ _check_config_settings(config_settings)
+
+ build_translations()
+
+ basename = _orig.build_wheel(
+ wheel_directory,
+ config_settings=config_settings,
+ metadata_directory=metadata_directory,
+ )
+
+ return basename