Browse Source

Windows deployment

JoshEngebretson 10 years ago
parent
commit
cd2516f1fc

+ 14 - 11
Script/AtomicEditor/ui/modal/build/BuildSettingsWindow.ts

@@ -76,17 +76,20 @@ class BuildSettingsWindow extends ModalWindow {
 
             if (ev.target.id == "build") {
 
-              var buildSystem = ToolCore.buildSystem;
-              var toolSystem = ToolCore.toolSystem;
-
-              buildSystem.buildPath = "/Users/josh/Desktop/MyBuilds/";
-
-              var project = toolSystem.project;
-              var platform = toolSystem.currentPlatform;
-
-              var buildBase = platform.newBuild(project);
-              buildSystem.queueBuild(buildBase);
-              buildSystem.startNextBuild();
+                var buildSystem = ToolCore.buildSystem;
+                var toolSystem = ToolCore.toolSystem;
+
+                if (Atomic.platform == "Windows")
+                    buildSystem.buildPath = "C:/Users/Josh/Desktop/MyBuilds/";
+                else
+                    buildSystem.buildPath = "/Users/josh/Desktop/MyBuilds/";
+                    
+                var project = toolSystem.project;
+                var platform = toolSystem.currentPlatform;
+
+                var buildBase = platform.newBuild(project);
+                buildSystem.queueBuild(buildBase);
+                buildSystem.startNextBuild();
 
             }
 

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

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

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

@@ -27,6 +27,13 @@ endif()
 
 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 (NOT IOS)

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

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

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

@@ -5,6 +5,7 @@
 #include <Atomic/IO/FileSystem.h>
 
 #include "../ToolSystem.h"
+#include "../ToolEnvironment.h"
 #include "../Project/Project.h"
 #include "BuildWindows.h"
 #include "BuildSystem.h"
@@ -25,13 +26,20 @@ BuildWindows::~BuildWindows()
 void BuildWindows::Initialize()
 {
     ToolSystem* tsystem = GetSubsystem<ToolSystem>();
+
     Project* project = tsystem->GetProject();
 
-    String dataPath = tsystem->GetDataPath();
+    Vector<String> defaultResourcePaths;
+    GetDefaultResourcePaths(defaultResourcePaths);
     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);
 
     BuildResourceEntries();
@@ -40,7 +48,7 @@ void BuildWindows::Initialize()
 
 void BuildWindows::Build(const String& buildPath)
 {
-    ToolSystem* tsystem = GetSubsystem<ToolSystem>();
+    ToolEnvironment* tenv = GetSubsystem<ToolEnvironment>();
 
     buildPath_ = AddTrailingSlash(buildPath) + GetBuildSubfolder();
 
@@ -49,12 +57,13 @@ void BuildWindows::Build(const String& buildPath)
     BuildSystem* buildSystem = GetSubsystem<BuildSystem>();
 
     FileSystem* fileSystem = GetSubsystem<FileSystem>();
+
     if (fileSystem->DirExists(buildPath_))
         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_ + "/AtomicPlayer_Resources");
@@ -62,8 +71,8 @@ void BuildWindows::Build(const String& buildPath)
     String resourcePackagePath = buildPath_ + "/AtomicPlayer_Resources/AtomicResources.pak";
     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_);
 

+ 2 - 2
Source/ToolCore/ToolEnvironment.cpp

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