diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-12-05 10:09:31 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-12-06 08:35:36 +0100 |
commit | 67292776a6cba219f5145db00b16e30015b4a33c (patch) | |
tree | 418a77bd7b6820dd3d9c0fbb9b31a0add3520149 /build_scripts/utils.py | |
parent | 340e9bfb2f98a8824400434086c8c8475c28cede (diff) |
build system: Further introduce Pathlib
Make it possible to pass a Path or a str to copyfile()/copydir() for
both arguments or one of them. Turn the variables destination_dir,
destination_qt_dir and destination_qt_lib_dir introduced by
b32a791ea2c66ae9ef2896ea445d4752e4773f96 into Paths.
Task-number: PYSIDE-2080
Change-Id: I13b27179746019b9cbe575d783a67a025dac1ee5
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'build_scripts/utils.py')
-rw-r--r-- | build_scripts/utils.py | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/build_scripts/utils.py b/build_scripts/utils.py index b79c2294f..8cd947b32 100644 --- a/build_scripts/utils.py +++ b/build_scripts/utils.py @@ -251,12 +251,12 @@ def platform_cmake_options(as_tuple_list=False): def copyfile(src, dst, force=True, _vars=None, force_copy_symlink=False, make_writable_by_owner=False): - if _vars is not None: - src = Path(str(src).format(**_vars)) - dst = Path(str(dst).format(**_vars)) - else: - src = Path(src) - dst = Path(dst) + if isinstance(src, str): + src = Path(src.format(**_vars)) if _vars else Path(src) + if isinstance(dst, str): + dst = Path(dst.format(**_vars)) if _vars else Path(dst) + assert(isinstance(src, Path)) + assert(isinstance(dst, Path)) if not src.exists() and not force: log.info(f"**Skipping copy file\n {src} to\n {dst}\n Source does not exist") @@ -327,9 +327,14 @@ def makefile(dst, content=None, _vars=None): def copydir(src, dst, _filter=None, ignore=None, force=True, recursive=True, _vars=None, dir_filter_function=None, file_filter_function=None, force_copy_symlinks=False): + if isinstance(src, str): + src = Path(src.format(**_vars)) if _vars else Path(src) + if isinstance(dst, str): + dst = Path(dst.format(**_vars)) if _vars else Path(dst) + assert(isinstance(src, Path)) + assert(isinstance(dst, Path)) + if _vars is not None: - src = Path(str(src).format(**_vars)) - dst = Path(str(dst).format(**_vars)) if _filter is not None: _filter = [i.format(**_vars) for i in _filter] if ignore is not None: @@ -1404,6 +1409,6 @@ def copy_qt_metatypes(destination_qt_dir, _vars): qt_meta_types_dir = "{qt_metatypes_dir}".format(**_vars) qt_prefix_dir = "{qt_prefix_dir}".format(**_vars) rel_meta_data_dir = os.fspath(Path(qt_meta_types_dir).relative_to(qt_prefix_dir)) - copydir(qt_meta_types_dir, f"{destination_qt_dir}/{rel_meta_data_dir}", + copydir(qt_meta_types_dir, destination_qt_dir / rel_meta_data_dir, _filter=["*.json"], recursive=False, _vars=_vars, force_copy_symlinks=True) |