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))