diff --git a/CMake/generate.py b/CMake/generate.py index 7bd4c5c24546341988655f811a803353c255f28d..4d449b38f956651f163c9775c50de180aeda35d1 100755 --- a/CMake/generate.py +++ b/CMake/generate.py @@ -260,7 +260,7 @@ CATEGORIES = { # ---------------------------------------------------------------------------------------------------------------------- -def main(dry_run, main_file, packages_requested, no_dependencies): +def main(dry_run, main_file, packages_requested, no_dependencies, only_show_dependencies): if packages_requested is None: packages = PROJECTS.values() else: @@ -271,6 +271,10 @@ def main(dry_run, main_file, packages_requested, no_dependencies): print("Warning: Package {} is not a valid project. Skipping".format(p), file=sys.stderr) continue + if only_show_dependencies: + pdeps = map(lambda s: "'{}'".format(s), PROJECTS[p].dependencies) + print("Project '{}' depends on: {}".format(p, Helpers.join(pdeps, ', ')), file=sys.stderr) + if no_dependencies: packages.add(p) else: @@ -282,6 +286,9 @@ def main(dry_run, main_file, packages_requested, no_dependencies): print("The following packages will be generated:", file=sys.stderr) print(", ".join(sorted([p.name for p in packages])), file=sys.stderr) + if only_show_dependencies: + return 0 + packages_cnt = len(packages) + (main_file is True) # Generate packages @@ -309,6 +316,7 @@ if __name__ == '__main__': parser.add_argument('-m', '--main', action='store_true', default=False, help="Generate main CMakeLists.txt") parser.add_argument('-p', '--package', action='append', help='Specify packages to build. For multiple packages, use -p multiple times') parser.add_argument('--no-deps', action='store_true', default=False, help="Don't generate dependencies") + parser.add_argument('--show-deps', action='store_true', default=False, help='Only show dependencies of selected packages') parser.add_argument('-v', '--version', action='store_true', default=False, help="Show current version") args = parser.parse_args() @@ -319,4 +327,4 @@ if __name__ == '__main__': Config.get(CONFIG, 'Versioning', 'patch'))) sys.exit(0) - sys.exit(main(not args.write, args.main, args.package, args.no_deps)) + sys.exit(main(not args.write, args.main, args.package, args.no_deps, args.show_deps))