diff --git a/colcon_meson/build.py b/colcon_meson/build.py index 28edf65..6506b74 100644 --- a/colcon_meson/build.py +++ b/colcon_meson/build.py @@ -6,6 +6,7 @@ import os from pathlib import Path import shutil +import sys from typing import List # colcon @@ -15,11 +16,21 @@ from colcon_core.task import run from colcon_core.task import TaskExtensionPoint # meson -from mesonbuild import coredata from mesonbuild.build import OptionKey from mesonbuild.mesonmain import CommandLineParser +if sys.version_info >= (3, 8): + from importlib.metadata import version +else: + from importlib_metadata import version + +if tuple(map(int, version("meson").split(".")[:3])) >= (1, 10, 0): + from mesonbuild import cmdline as meson_cmd +else: + from mesonbuild import coredata as meson_cmd + + logger = colcon_logger.getChild(__name__) @@ -145,7 +156,7 @@ def meson_parse_cmdline(self, cmdline: List[str]) -> Namespace: Namespace: parse args """ args = self.parser_setup.parse_args(cmdline) - coredata.parse_cmd_line_options(args) + meson_cmd.parse_cmd_line_options(args) return args def meson_format_cmdline(self, cmdline: List[str]): @@ -169,7 +180,7 @@ def meson_format_cmdline_file(self, builddir: str): dict: converted key-value pairs """ args = self.meson_parse_cmdline([]) - coredata.read_cmd_line_file(builddir, args) + meson_cmd.read_cmd_line_file(builddir, args) return format_args(args) async def build(self, *, additional_hooks=None, skip_hook_creation=False, diff --git a/setup.cfg b/setup.cfg index 79af9f9..fe34e33 100644 --- a/setup.cfg +++ b/setup.cfg @@ -18,6 +18,7 @@ python_requires = >=3.6 install_requires = colcon-core >= 0.10.0 colcon-library-path + importlib-metadata; python_version < "3.8" meson >= 0.60.0 packages = find: diff --git a/stdeb.cfg b/stdeb.cfg index 21762f3..972b30a 100644 --- a/stdeb.cfg +++ b/stdeb.cfg @@ -1,6 +1,6 @@ [colcon-meson] No-Python2: -Depends3: python3-colcon-core (>= 0.10.0), python3-colcon-library-path, meson (>= 0.60.0) +Depends3: python3-colcon-core (>= 0.10.0), python3-colcon-library-path, python3 (>= 3.8) | python3-importlib-metadata, meson (>= 0.60.0) Suite: jammy noble bookworm trixie X-Python3-Version: >= 3.6 Upstream-Version-Suffix: +upstream diff --git a/test/spell_check.words b/test/spell_check.words index 0e4085a..d1bae14 100644 --- a/test/spell_check.words +++ b/test/spell_check.words @@ -16,6 +16,7 @@ configfile coredata defcfg holderify +importlib initialise interpreterbase iterdir diff --git a/test/test_spell_check.py b/test/test_spell_check.py index 078fd63..cd8b570 100644 --- a/test/test_spell_check.py +++ b/test/test_spell_check.py @@ -10,7 +10,6 @@ @pytest.fixture(scope='module') def known_words(): - global spell_check_words_path return spell_check_words_path.read_text().splitlines()