From d7c4fa46ac3565a11787e5d12b3d190f54108ff9 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Mon, 11 Nov 2019 19:31:31 +0100 Subject: [PATCH] pro2cmake: Allow skipping subdirs projects via command line Pass either --skip-subdirs-project to pro2cmake or --skip-subdirs-projects to run_pro2cmake. Change-Id: Ic444858f6fc6deb3c893782c0770993aa39d5579 Reviewed-by: Qt CMake Build Bot Reviewed-by: Leander Beernaert Reviewed-by: Alexandru Croitor --- util/cmake/pro2cmake.py | 20 ++++++++++++++++++++ util/cmake/run_pro2cmake.py | 8 ++++++++ 2 files changed, 28 insertions(+) diff --git a/util/cmake/pro2cmake.py b/util/cmake/pro2cmake.py index b95b469e371..536bbdc656a 100755 --- a/util/cmake/pro2cmake.py +++ b/util/cmake/pro2cmake.py @@ -155,6 +155,13 @@ def _parse_commandline(): help="Don't use condition simplifier cache (conversion speed may decrease).", ) + parser.add_argument( + "--skip-subdirs-project", + dest="skip_subdirs_project", + action="store_true", + help="Skip converting project if it ends up being a TEMPLATE=subdirs project.", + ) + parser.add_argument( "-i", "--ignore-skip-marker", @@ -3485,6 +3492,15 @@ def should_convert_project(project_file_path: str = "", ignore_skip_marker: bool return True +def should_convert_project_after_parsing( + file_scope: Scope, skip_subdirs_project: bool = False +) -> bool: + template = file_scope.TEMPLATE + if template == "subdirs" and skip_subdirs_project: + return False + return True + + def main() -> None: # Be sure of proper Python version assert sys.version_info >= (3, 7) @@ -3535,6 +3551,10 @@ def main() -> None: file_scope.dump() print("\n#### End of full .pro/.pri file structure.\n") + if not should_convert_project_after_parsing(file_scope, args.skip_subdirs_project): + print(f'Skipping conversion of project: "{project_file_absolute_path}"') + continue + generate_new_cmakelists(file_scope, is_example=args.is_example, debug=args.debug) copy_generated_file = True diff --git a/util/cmake/run_pro2cmake.py b/util/cmake/run_pro2cmake.py index 7c38a8aef98..eaece147d2f 100755 --- a/util/cmake/run_pro2cmake.py +++ b/util/cmake/run_pro2cmake.py @@ -59,6 +59,12 @@ def parse_command_line(): action="store_true", help="Run pro2cmake only on the main modules in qtbase.", ) + parser.add_argument( + "--skip-subdirs-projects", + dest="skip_subdirs_projects", + action="store_true", + help="Don't run pro2cmake on TEMPLATE=subdirs projects.", + ) parser.add_argument( "--is-example", dest="is_example", @@ -162,6 +168,8 @@ def run(all_files: typing.List[str], pro2cmake: str, args: argparse.Namespace) - pro2cmake_args.append(pro2cmake) if args.is_example: pro2cmake_args.append("--is-example") + if args.skip_subdirs_projects: + pro2cmake_args.append("--skip-subdirs-project") pro2cmake_args.append(os.path.basename(filename)) result = subprocess.run( pro2cmake_args,