summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Hilbrunner <m.hilbrunner@gmail.com>2019-05-26 19:05:31 +0200
committerMax Hilbrunner <m.hilbrunner@gmail.com>2019-05-26 19:05:40 +0200
commitbe80b0b83c9068cf1576c0a7c909abbdd931c8fc (patch)
tree337ce0e72ffb535a4e96202189959a4b96ba1f51
parentffe067f53dff5b4f5c1fe0947bb697bc380c6ef6 (diff)
Scons: Autodetect platform if not specified
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
-rw-r--r--SConstruct23
1 files changed, 20 insertions, 3 deletions
diff --git a/SConstruct b/SConstruct
index 88bb43fbc7..b6231e26fe 100644
--- a/SConstruct
+++ b/SConstruct
@@ -226,6 +226,23 @@ if env_base['platform'] != "":
elif env_base['p'] != "":
selected_platform = env_base['p']
env_base["platform"] = selected_platform
+else:
+ # Missing `platform` argument, try to detect platform automatically
+ if sys.platform.startswith('linux'):
+ selected_platform = 'linux'
+ elif sys.platform == 'darwin':
+ selected_platform = 'osx'
+ elif sys.platform == 'win32':
+ selected_platform = 'windows'
+ else:
+ print("Could not detect platform automatically. Supported platforms:")
+ for x in platform_list:
+ print("\t" + x)
+ print("\nPlease run SCons again and select a valid platform: platform=<string>")
+
+ if selected_platform != "":
+ print("Automatically detected platform: " + selected_platform)
+ env_base["platform"] = selected_platform
if selected_platform in platform_list:
tmppath = "./platform/" + selected_platform
@@ -492,13 +509,13 @@ if selected_platform in platform_list:
if (conf.CheckCHeader(header[0])):
env.AppendUnique(CPPDEFINES=[header[1]])
-else:
+elif selected_platform != "":
- print("No valid target platform selected.")
+ 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 with the argument: platform=<string>")
+ print("\nPlease run SCons again and select a valid platform: platform=<string>")
# The following only makes sense when the env is defined, and assumes it is
if 'env' in locals():