[+] partially added cross-file parser
This commit is contained in:
parent
772279b5d5
commit
79f6d3544c
@ -1,5 +1,7 @@
|
|||||||
import dataclasses
|
import dataclasses
|
||||||
import io
|
import io
|
||||||
|
import importlib
|
||||||
|
import configparser
|
||||||
import glob
|
import glob
|
||||||
import os
|
import os
|
||||||
import pathlib
|
import pathlib
|
||||||
@ -542,6 +544,63 @@ class CLI(abc.ABC):
|
|||||||
def third_party_roots(self) -> list[pathlib.Path]:
|
def third_party_roots(self) -> list[pathlib.Path]:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
class meson_toolchains_t:
|
||||||
|
class res_t:
|
||||||
|
@dataclasses.dataclass
|
||||||
|
class toolchain_t:
|
||||||
|
name: str
|
||||||
|
path: Optional[pathlib.Path] = None
|
||||||
|
|
||||||
|
def meson_toolchains(self) -> list[meson_toolchains_t.res_t.toolchain_t]:
|
||||||
|
t1 = pathlib.Path(importlib.import_module('online.fxreader.pr34').__path__[0])
|
||||||
|
toolchains = glob.glob(str(t1 / 'meson' / 'toolchains' / '*'))
|
||||||
|
|
||||||
|
res : list[CLI.meson_toolchains_t.res_t.toolchain_t] = []
|
||||||
|
|
||||||
|
for o in toolchains:
|
||||||
|
entry = self.meson_toolchains_t.res_t.toolchain_t(
|
||||||
|
name=pathlib.Path(o).name,
|
||||||
|
path=pathlib.Path(o),
|
||||||
|
)
|
||||||
|
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read(str(entry.path))
|
||||||
|
|
||||||
|
return res
|
||||||
|
|
||||||
|
|
||||||
|
def _cross_file(
|
||||||
|
self,
|
||||||
|
extra_args: list[str],
|
||||||
|
pyproject_tool: PyProject.Tool,
|
||||||
|
) -> list[str]:
|
||||||
|
if pyproject_tool.meson and pyproject_tool.meson.args and pyproject_tool.meson.args.setup:
|
||||||
|
extra_args = pyproject_tool.meson.args.setup + extra_args
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument(
|
||||||
|
'--cross-file',
|
||||||
|
dest='cross_file',
|
||||||
|
default=None,
|
||||||
|
# type=pathlib.Path,
|
||||||
|
type=pathlib.Path,
|
||||||
|
)
|
||||||
|
|
||||||
|
options, args = pr34_argparse.parse_args(extra_args)
|
||||||
|
|
||||||
|
if not options.cross_file is None:
|
||||||
|
if not options.cross_file.exists() and (
|
||||||
|
not options.cross_file.is_absolute() and \
|
||||||
|
options.cross_file.stem in self.meson_toolchains
|
||||||
|
):
|
||||||
|
options.cross_file = self.meson_toolchains[
|
||||||
|
options.cross_file.stem
|
||||||
|
].path
|
||||||
|
|
||||||
|
extra_args = ['--cross-file', str(options.cross_file)] + args
|
||||||
|
|
||||||
|
return extra_args
|
||||||
|
|
||||||
def meson_setup(
|
def meson_setup(
|
||||||
self,
|
self,
|
||||||
project_name: str,
|
project_name: str,
|
||||||
@ -576,8 +635,10 @@ class CLI(abc.ABC):
|
|||||||
if len(self.third_party_roots) > 0:
|
if len(self.third_party_roots) > 0:
|
||||||
extra_args.extend(['-Dthird_party_roots=%s' % str(o.absolute()) for o in self.third_party_roots])
|
extra_args.extend(['-Dthird_party_roots=%s' % str(o.absolute()) for o in self.third_party_roots])
|
||||||
|
|
||||||
if pyproject_tool.meson and pyproject_tool.meson.args and pyproject_tool.meson.args.setup:
|
self._cross_file(
|
||||||
extra_args = pyproject_tool.meson.args.setup + extra_args
|
extra_args=extra_args,
|
||||||
|
pyproject_tool=pyproject_tool,
|
||||||
|
)
|
||||||
|
|
||||||
cmd = [
|
cmd = [
|
||||||
# shutil_which(
|
# shutil_which(
|
||||||
|
Loading…
Reference in New Issue
Block a user