From b07e46c59f5f326ffa18c2e43ae8c64961e033ac Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Wed, 17 Jul 2019 11:25:57 +0200 Subject: [PATCH] Add a `platform=list` SCons argument to list platforms This also improves the message display and makes an invalid selection exit with a non-zero status code. --- SConstruct | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/SConstruct b/SConstruct index 7b0c644aea3..92dc4d9da2f 100644 --- a/SConstruct +++ b/SConstruct @@ -422,7 +422,7 @@ if selected_platform in platform_list: if (can_build): config.configure(env) env.module_list.append(x) - + # Get doc classes paths (if present) try: doc_classes = config.get_doc_classes() @@ -522,13 +522,23 @@ if selected_platform in platform_list: env.AppendUnique(CPPDEFINES=[header[1]]) elif selected_platform != "": + if selected_platform == "list": + print("The following platforms are available:\n") + else: + print('Invalid target platform "' + selected_platform + '".') + print("The following platforms were detected:\n") - print("Invalid target platform: " + selected_platform) - print("The following platforms were detected:") for x in platform_list: print("\t" + x) + print("\nPlease run SCons again and select a valid platform: platform=") + if selected_platform == "list": + # Exit early to suppress the rest of the built-in SCons messages + sys.exit(0) + else: + sys.exit(255) + # The following only makes sense when the env is defined, and assumes it is if 'env' in locals(): screen = sys.stdout