Browse Source

Fix missing directories when exporting from cmd

kobewi 2 years ago
parent
commit
ff42cb0d1e
3 changed files with 8 additions and 1 deletions
  1. 5 0
      core/config/project_settings.cpp
  2. 2 0
      core/config/project_settings.h
  3. 1 1
      editor/editor_paths.cpp

+ 5 - 0
core/config/project_settings.cpp

@@ -656,6 +656,7 @@ Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bo
 
 	Compression::gzip_level = GLOBAL_GET("compression/formats/gzip/compression_level");
 
+	project_loaded = err == OK;
 	return err;
 }
 
@@ -1106,6 +1107,10 @@ bool ProjectSettings::is_using_datapack() const {
 	return using_datapack;
 }
 
+bool ProjectSettings::is_project_loaded() const {
+	return project_loaded;
+}
+
 bool ProjectSettings::_property_can_revert(const StringName &p_name) const {
 	if (!props.has(p_name)) {
 		return false;

+ 2 - 0
core/config/project_settings.h

@@ -95,6 +95,7 @@ protected:
 	String resource_path;
 	HashMap<StringName, PropertyInfo> custom_prop_info;
 	bool using_datapack = false;
+	bool project_loaded = false;
 	List<String> input_presets;
 
 	HashSet<String> custom_features;
@@ -190,6 +191,7 @@ public:
 	Variant get_setting_with_override(const StringName &p_name) const;
 
 	bool is_using_datapack() const;
+	bool is_project_loaded() const;
 
 	bool has_custom_feature(const String &p_feature) const;
 

+ 1 - 1
editor/editor_paths.cpp

@@ -218,7 +218,7 @@ EditorPaths::EditorPaths() {
 
 	// Validate or create project-specific editor data dir,
 	// including shader cache subdir.
-	if (Engine::get_singleton()->is_project_manager_hint() || Main::is_cmdline_tool()) {
+	if (Engine::get_singleton()->is_project_manager_hint() || (Main::is_cmdline_tool() && !ProjectSettings::get_singleton()->is_project_loaded())) {
 		// Nothing to create, use shared editor data dir for shader cache.
 		Engine::get_singleton()->set_shader_cache_path(data_dir);
 	} else {