Browse Source

Merge pull request #1295 from AtomicGameEngine/JME-ATOMIC-1276

Engine config fixes for deployed applications
JoshEngebretson 9 years ago
parent
commit
af72eb71ec

+ 20 - 6
Source/AtomicApp/AppBase.cpp

@@ -61,7 +61,7 @@ namespace Atomic
 
 
             arguments_ = GetArguments();
             arguments_ = GetArguments();
         }
         }
-
+        
     }
     }
 
 
     AppBase::~AppBase()
     AppBase::~AppBase()
@@ -149,6 +149,16 @@ namespace Atomic
     {
     {
         FileSystem* fileSystem = GetSubsystem<FileSystem>();
         FileSystem* fileSystem = GetSubsystem<FileSystem>();
 
 
+        // if we haven't defined any search paths, insert default
+        if (!engineConfigSearchPaths_.Size())
+        {
+#ifdef ATOMIC_PLATFORM_OSX
+        AddEngineConfigSearchPath(fileSystem->GetProgramDir() + "../Resources/Settings/");
+#else
+        AddEngineConfigSearchPath(fileSystem->GetProgramDir() + "Settings/");
+#endif
+        }
+
         for (unsigned i = 0; i < engineConfigSearchPaths_.Size(); i++)
         for (unsigned i = 0; i < engineConfigSearchPaths_.Size(); i++)
         {
         {
             const String& path = engineConfigSearchPaths_[i];
             const String& path = engineConfigSearchPaths_[i];
@@ -158,12 +168,16 @@ namespace Atomic
 
 
             String filename = AddTrailingSlash(path) + "Engine.json";
             String filename = AddTrailingSlash(path) + "Engine.json";
 
 
-            if (!fileSystem->FileExists(filename))
-                return;
-
-            if (EngineConfig::LoadFromFile(context_, filename))
+            // take the 1st Engine.json found in the paths
+            if (fileSystem->FileExists(filename))
             {
             {
-                EngineConfig::ApplyConfig(engineParameters_);
+
+                if (EngineConfig::LoadFromFile(context_, filename))
+                {
+                    EngineConfig::ApplyConfig(engineParameters_);
+                }
+
+                return;
             }
             }
         }
         }
 
 

+ 5 - 0
Source/AtomicNET/NETNative/NETAtomicPlayer.cpp

@@ -119,7 +119,12 @@ namespace Atomic
     void NETAtomicPlayer::ReadEngineConfig()
     void NETAtomicPlayer::ReadEngineConfig()
     {
     {
         FileSystem* fileSystem = GetSubsystem<FileSystem>();
         FileSystem* fileSystem = GetSubsystem<FileSystem>();
+
+#ifdef ATOMIC_PLATFORM_OSX
+        String filename = fileSystem->GetProgramDir() + "../Resources/Settings/Engine.json";
+#else
         String filename = fileSystem->GetProgramDir() + "Settings/Engine.json";
         String filename = fileSystem->GetProgramDir() + "Settings/Engine.json";
+#endif
 
 
         if (!fileSystem->FileExists(filename))
         if (!fileSystem->FileExists(filename))
             return;
             return;

+ 5 - 0
Source/AtomicPlayer/Application/AtomicPlayer.cpp

@@ -227,7 +227,12 @@ void AtomicPlayerApp::HandleJSError(StringHash eventType, VariantMap& eventData)
 void AtomicPlayerApp::ReadEngineConfig()
 void AtomicPlayerApp::ReadEngineConfig()
 {
 {
     FileSystem* fileSystem = GetSubsystem<FileSystem>();
     FileSystem* fileSystem = GetSubsystem<FileSystem>();
+
+#ifdef ATOMIC_PLATFORM_OSX
+    String filename = fileSystem->GetProgramDir() + "../Resources/Settings/Engine.json";
+#else
     String filename = fileSystem->GetProgramDir() + "Settings/Engine.json";
     String filename = fileSystem->GetProgramDir() + "Settings/Engine.json";
+#endif
 
 
     if (!fileSystem->FileExists(filename))
     if (!fileSystem->FileExists(filename))
         return;
         return;

+ 12 - 0
Source/ToolCore/Build/BuildMac.cpp

@@ -125,6 +125,8 @@ void BuildMac::Build(const String& buildPath)
         return;
         return;
     if (!BuildCreateDirectory(buildPath_ + "/Contents/Resources"))
     if (!BuildCreateDirectory(buildPath_ + "/Contents/Resources"))
         return;
         return;
+    if (!BuildCreateDirectory(buildPath_ + "/Contents/Resources/Settings"))
+        return;
 
 
     String resourcePackagePath = buildPath_ + "/Contents/Resources/AtomicResources" + PAK_EXTENSION;
     String resourcePackagePath = buildPath_ + "/Contents/Resources/AtomicResources" + PAK_EXTENSION;
     GenerateResourcePackage(resourcePackagePath);
     GenerateResourcePackage(resourcePackagePath);
@@ -138,6 +140,16 @@ void BuildMac::Build(const String& buildPath)
     if (!BuildCopyFile(appSrcPath + "/Contents/MacOS/AtomicPlayer", buildPath_ + "/Contents/MacOS/AtomicPlayer"))
     if (!BuildCopyFile(appSrcPath + "/Contents/MacOS/AtomicPlayer", buildPath_ + "/Contents/MacOS/AtomicPlayer"))
         return;
         return;
 
 
+    String engineJSON(GetSettingsDirectory() + "/Engine.json");
+    
+    if (fileSystem->FileExists(engineJSON))
+    {
+
+        if (!BuildCopyFile(engineJSON, buildPath_ + "/Contents/Resources/Settings/Engine.json"))
+            return;
+
+    }
+
 #ifdef ATOMIC_PLATFORM_OSX
 #ifdef ATOMIC_PLATFORM_OSX
     Vector<String> args;
     Vector<String> args;
     args.Push("+x");
     args.Push("+x");