Josh Engebretson 10 years ago
parent
commit
59c51e275b

+ 1 - 0
Script/AtomicEditor/ui/modal/build/BuildSettingsWindow.ts

@@ -89,6 +89,7 @@ class BuildSettingsWindow extends ModalWindow {
                 this.hide();
                 this.hide();
                 EditorUI.getModelOps().showBuild();
                 EditorUI.getModelOps().showBuild();
                 return true;
                 return true;
+                
             }
             }
 
 
             if (ev.target.id == "set_current_platform") {
             if (ev.target.id == "set_current_platform") {

+ 1 - 1
Script/Packages/ToolCore/ToolCore.json

@@ -7,7 +7,7 @@
 							 "Asset", "AssetDatabase", "AssetImporter", "AudioImporter", "ModelImporter", "MaterialImporter", "AnimationImportInfo",
 							 "Asset", "AssetDatabase", "AssetImporter", "AudioImporter", "ModelImporter", "MaterialImporter", "AnimationImportInfo",
 							 "PrefabImporter", "JavascriptImporter", "TextureImporter", "SpriterImporter", "PEXImporter", "LicenseSystem",
 							 "PrefabImporter", "JavascriptImporter", "TextureImporter", "SpriterImporter", "PEXImporter", "LicenseSystem",
 						 	 "ProjectUserPrefs", "ProjectBuildSettings",
 						 	 "ProjectUserPrefs", "ProjectBuildSettings",
-						 	 "BuildBase", "BuildSystem", "BuildMac", "BuildWeb"],
+						 	 "BuildBase", "BuildSystem", "BuildMac", "BuildWeb", "BuildWindows"],
 	"typescript_decl" : {
 	"typescript_decl" : {
 
 
 		"AssetDatabase" : [
 		"AssetDatabase" : [

+ 7 - 0
Source/AtomicPlayer/Application/CMakeLists.txt

@@ -27,6 +27,13 @@ endif()
 
 
 target_link_libraries(AtomicPlayer AtomicJS AtomicPlayerLib AtomicPlayerJS ${ATOMIC_LINK_LIBRARIES})
 target_link_libraries(AtomicPlayer AtomicJS AtomicPlayerLib AtomicPlayerJS ${ATOMIC_LINK_LIBRARIES})
 
 
+if (MSVC)
+  # pre-Windows 8 can't count on D3DCompiler_47.dll being on system
+  add_custom_command (TARGET AtomicPlayer POST_BUILD
+  COMMAND ${CMAKE_COMMAND}
+  ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"$<TARGET_FILE_DIR:AtomicPlayer>/D3DCompiler_47.dll\")
+endif()
+
 if (APPLE)
 if (APPLE)
 
 
 if (NOT IOS)
 if (NOT IOS)

+ 2 - 0
Source/ToolCore/Build/BuildSystem.h

@@ -26,6 +26,8 @@ public:
 
 
     void SetBuildPath(const String& path) { buildPath_ = path; }
     void SetBuildPath(const String& path) { buildPath_ = path; }
 
 
+    const String& GetBuildPath() const { return buildPath_; }
+
     void QueueBuild(BuildBase* buildBase);
     void QueueBuild(BuildBase* buildBase);
 
 
     bool StartNextBuild();
     bool StartNextBuild();

+ 18 - 9
Source/ToolCore/Build/BuildWindows.cpp

@@ -5,6 +5,7 @@
 #include <Atomic/IO/FileSystem.h>
 #include <Atomic/IO/FileSystem.h>
 
 
 #include "../ToolSystem.h"
 #include "../ToolSystem.h"
+#include "../ToolEnvironment.h"
 #include "../Project/Project.h"
 #include "../Project/Project.h"
 #include "BuildWindows.h"
 #include "BuildWindows.h"
 #include "BuildSystem.h"
 #include "BuildSystem.h"
@@ -25,13 +26,20 @@ BuildWindows::~BuildWindows()
 void BuildWindows::Initialize()
 void BuildWindows::Initialize()
 {
 {
     ToolSystem* tsystem = GetSubsystem<ToolSystem>();
     ToolSystem* tsystem = GetSubsystem<ToolSystem>();
+
     Project* project = tsystem->GetProject();
     Project* project = tsystem->GetProject();
 
 
-    String dataPath = tsystem->GetDataPath();
+    Vector<String> defaultResourcePaths;
+    GetDefaultResourcePaths(defaultResourcePaths);
     String projectResources = project->GetResourcePath();
     String projectResources = project->GetResourcePath();
-    String coreDataFolder = dataPath + "CoreData/";
 
 
-    AddResourceDir(coreDataFolder);
+    for (unsigned i = 0; i < defaultResourcePaths.Size(); i++)
+    {
+        AddResourceDir(defaultResourcePaths[i]);
+    }
+
+    // TODO: smart filtering of cache
+    AddResourceDir(project->GetProjectPath() + "Cache/");
     AddResourceDir(projectResources);
     AddResourceDir(projectResources);
 
 
     BuildResourceEntries();
     BuildResourceEntries();
@@ -40,7 +48,7 @@ void BuildWindows::Initialize()
 
 
 void BuildWindows::Build(const String& buildPath)
 void BuildWindows::Build(const String& buildPath)
 {
 {
-    ToolSystem* tsystem = GetSubsystem<ToolSystem>();
+    ToolEnvironment* tenv = GetSubsystem<ToolEnvironment>();
 
 
     buildPath_ = AddTrailingSlash(buildPath) + GetBuildSubfolder();
     buildPath_ = AddTrailingSlash(buildPath) + GetBuildSubfolder();
 
 
@@ -49,12 +57,13 @@ void BuildWindows::Build(const String& buildPath)
     BuildSystem* buildSystem = GetSubsystem<BuildSystem>();
     BuildSystem* buildSystem = GetSubsystem<BuildSystem>();
 
 
     FileSystem* fileSystem = GetSubsystem<FileSystem>();
     FileSystem* fileSystem = GetSubsystem<FileSystem>();
+
     if (fileSystem->DirExists(buildPath_))
     if (fileSystem->DirExists(buildPath_))
         fileSystem->RemoveDir(buildPath_, true);
         fileSystem->RemoveDir(buildPath_, true);
 
 
-    String buildSourceDir = tsystem->GetDataPath();
-
-    buildSourceDir += "Deployment/Win64";
+    String rootSourceDir = tenv->GetRootSourceDir();
+    String playerBinary = tenv->GetPlayerBinary();
+    String d3d9dll = GetPath(playerBinary) + "/D3DCompiler_47.dll";
 
 
     fileSystem->CreateDir(buildPath_);
     fileSystem->CreateDir(buildPath_);
     fileSystem->CreateDir(buildPath_ + "/AtomicPlayer_Resources");
     fileSystem->CreateDir(buildPath_ + "/AtomicPlayer_Resources");
@@ -62,8 +71,8 @@ void BuildWindows::Build(const String& buildPath)
     String resourcePackagePath = buildPath_ + "/AtomicPlayer_Resources/AtomicResources.pak";
     String resourcePackagePath = buildPath_ + "/AtomicPlayer_Resources/AtomicResources.pak";
     GenerateResourcePackage(resourcePackagePath);
     GenerateResourcePackage(resourcePackagePath);
 
 
-    fileSystem->Copy(buildSourceDir + "/AtomicPlayer.exe", buildPath_ + "/AtomicPlayer.exe");
-    fileSystem->Copy(buildSourceDir + "/D3DCompiler_47.dll", buildPath_ + "/D3DCompiler_47.dll");
+    fileSystem->Copy(playerBinary, buildPath_ + "/AtomicPlayer.exe");
+    fileSystem->Copy(d3d9dll, buildPath_ + "/D3DCompiler_47.dll");
 
 
     buildSystem->BuildComplete(PLATFORMID_WINDOWS, buildPath_);
     buildSystem->BuildComplete(PLATFORMID_WINDOWS, buildPath_);
 
 

+ 2 - 2
Source/ToolCore/ToolEnvironment.cpp

@@ -131,10 +131,10 @@ void ToolEnvironment::SetRootBuildDir(const String& buildDir, bool setBinaryPath
 #ifdef ATOMIC_PLATFORM_WINDOWS
 #ifdef ATOMIC_PLATFORM_WINDOWS
 
 
 #ifdef _DEBUG
 #ifdef _DEBUG
-        playerBinary_ = rootBuildDir_ + "Source/AtomicPlayer/Debug/AtomicPlayer.exe";
+        playerBinary_ = rootBuildDir_ + "Source/AtomicPlayer/Application/Debug/AtomicPlayer.exe";
         editorBinary_ = rootBuildDir_ + "Source/AtomicEditor/Debug/AtomicEditor.exe";
         editorBinary_ = rootBuildDir_ + "Source/AtomicEditor/Debug/AtomicEditor.exe";
 #else
 #else
-        playerBinary_ = rootBuildDir_ + "Source/AtomicPlayer/Release/AtomicPlayer.exe";
+        playerBinary_ = rootBuildDir_ + "Source/AtomicPlayer/Application/Release/AtomicPlayer.exe";
         editorBinary_ = rootBuildDir_ + "Source/AtomicEditor/Release/AtomicEditor.exe";
         editorBinary_ = rootBuildDir_ + "Source/AtomicEditor/Release/AtomicEditor.exe";
 #endif
 #endif