Преглед на файлове

Add default value of editor propetry "export/android/android_sdk_path" for Windows, Linux, and macOS

Nikita преди 10 месеца
родител
ревизия
c6f4228706
променени са 1 файла, в които са добавени 17 реда и са изтрити 1 реда
  1. 17 1
      platform/android/export/export.cpp

+ 17 - 1
platform/android/export/export.cpp

@@ -37,6 +37,8 @@
 #include "editor/editor_settings.h"
 #include "editor/export/editor_export.h"
 
+String get_default_android_sdk_path();
+
 void register_android_exporter_types() {
 	GDREGISTER_VIRTUAL_CLASS(EditorExportPlatformAndroid);
 }
@@ -52,8 +54,10 @@ void register_android_exporter() {
 #ifndef ANDROID_ENABLED
 	EDITOR_DEF_BASIC("export/android/java_sdk_path", OS::get_singleton()->get_environment("JAVA_HOME"));
 	EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "export/android/java_sdk_path", PROPERTY_HINT_GLOBAL_DIR));
-	EDITOR_DEF_BASIC("export/android/android_sdk_path", OS::get_singleton()->get_environment("ANDROID_HOME"));
+
+	EDITOR_DEF_BASIC("export/android/android_sdk_path", OS::get_singleton()->has_environment("ANDROID_HOME") ? OS::get_singleton()->get_environment("ANDROID_HOME") : get_default_android_sdk_path());
 	EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "export/android/android_sdk_path", PROPERTY_HINT_GLOBAL_DIR));
+
 	EDITOR_DEF("export/android/force_system_user", false);
 
 	EDITOR_DEF("export/android/shutdown_adb_on_exit", true);
@@ -67,3 +71,15 @@ void register_android_exporter() {
 	Ref<EditorExportPlatformAndroid> exporter = Ref<EditorExportPlatformAndroid>(memnew(EditorExportPlatformAndroid));
 	EditorExport::get_singleton()->add_export_platform(exporter);
 }
+
+inline String get_default_android_sdk_path() {
+#ifdef WINDOWS_ENABLED
+	return OS::get_singleton()->get_environment("LOCALAPPDATA").path_join("Android/Sdk");
+#elif LINUXBSD_ENABLED
+	return OS::get_singleton()->get_environment("HOME").path_join("Android/Sdk");
+#elif MACOS_ENABLED
+	return OS::get_singleton()->get_environment("HOME").path_join("Library/Android/sdk");
+#else
+	return String();
+#endif
+}