summaryrefslogtreecommitdiff
path: root/editor/editor_paths.cpp
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2023-02-16 13:43:32 +0200
committerYuri Sizov <yuris@humnom.net>2023-03-27 16:34:57 +0200
commit24c4b5e8adb1084047ce695b90d34915cd497db0 (patch)
treea5b8095e301832f36a73d8a9335a551f8e64839e /editor/editor_paths.cpp
parent3cae980c178905ac5be51c168698af7b355c4e9c (diff)
[macOS] Re-add support for the _sc_ inside app bundle. Update docs.
(cherry picked from commit 174e0837e0826179a2e51e581aa895cb5cc90885)
Diffstat (limited to 'editor/editor_paths.cpp')
-rw-r--r--editor/editor_paths.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/editor/editor_paths.cpp b/editor/editor_paths.cpp
index 389c16fd66..d5ba841801 100644
--- a/editor/editor_paths.cpp
+++ b/editor/editor_paths.cpp
@@ -117,14 +117,20 @@ EditorPaths::EditorPaths() {
// Self-contained mode if a `._sc_` or `_sc_` file is present in executable dir.
String exe_path = OS::get_singleton()->get_executable_path().get_base_dir();
+ Ref<DirAccess> d = DirAccess::create_for_path(exe_path);
+ if (d->file_exists(exe_path + "/._sc_")) {
+ self_contained = true;
+ self_contained_file = exe_path + "/._sc_";
+ } else if (d->file_exists(exe_path + "/_sc_")) {
+ self_contained = true;
+ self_contained_file = exe_path + "/_sc_";
+ }
// On macOS, look outside .app bundle, since .app bundle is read-only.
+ // Note: This will not work if Gatekeeper path randomization is active.
if (OS::get_singleton()->has_feature("macos") && exe_path.ends_with("MacOS") && exe_path.path_join("..").simplify_path().ends_with("Contents")) {
exe_path = exe_path.path_join("../../..").simplify_path();
- }
- {
- Ref<DirAccess> d = DirAccess::create_for_path(exe_path);
-
+ d = DirAccess::create_for_path(exe_path);
if (d->file_exists(exe_path + "/._sc_")) {
self_contained = true;
self_contained_file = exe_path + "/._sc_";