JoshEngebretson 10 жил өмнө
parent
commit
b0f4559125

+ 0 - 0
Build/Scripts/Build.js → Build/CIScripts/Build.js


+ 0 - 0
Build/Scripts/BuildAndroid.js → Build/CIScripts/BuildAndroid.js


+ 1 - 1
Build/Scripts/BuildCommon.js → Build/CIScripts/BuildCommon.js

@@ -9,7 +9,7 @@ process.env.NODE_PATH = atomicRoot + "Build/node_modules/";
 require('module').Module._initPaths();
 var fs = require('fs-extra');
 
-var artifactsRoot = atomicRoot + "/Artifacts/";
+var artifactsRoot = atomicRoot + "Artifacts/";
 var jenkinsBuild = process.env.ATOMIC_JENKINS_BUILD == 1;
 var buildSHA = process.env.ATOMIC_BUILD_SHA;
 

+ 0 - 0
Build/Scripts/BuildIOS.js → Build/CIScripts/BuildIOS.js


+ 0 - 0
Build/Scripts/BuildLinux.js → Build/CIScripts/BuildLinux.js


+ 0 - 0
Build/Scripts/BuildMac.js → Build/CIScripts/BuildMac.js


+ 0 - 0
Build/Scripts/BuildWeb.js → Build/CIScripts/BuildWeb.js


+ 53 - 0
Build/CIScripts/BuildWindows.js

@@ -0,0 +1,53 @@
+var fs = require('fs-extra');
+var bcommon = require("./BuildCommon");
+var host = require("./Host");
+
+var atomicRoot = bcommon.atomicRoot;
+var buildDir = bcommon.artifactsRoot + "Build/Windows/";
+var atomicToolBinary = buildDir + "Source/AtomicTool/Release/AtomicTool.exe";
+
+namespace('build', function() {
+
+  task('atomic', {
+    async: true
+  }, function() {
+
+    //bcommon.cleanCreateDir(buildDir);
+    //bcommon.cleanCreateDir(atomicRoot + "Build/Source/Generated");
+
+    process.chdir(buildDir);
+
+    var bindCmd = atomicToolBinary + " bind \"" + atomicRoot + "\" ";
+
+    var cmds = [
+      atomicRoot + "/Build/Scripts/Windows/CompileAtomicTool.bat",
+      bindCmd + "Script/Packages/Atomic/ WINDOWS",
+      bindCmd + "Script/Packages/AtomicPlayer/ WINDOWS",
+      bindCmd + "Script/Packages/ToolCore/ WINDOWS",
+      bindCmd + "Script/Packages/Editor/ WINDOWS",
+      bindCmd + "Script/Packages/AtomicNET/ WINDOWS",
+      atomicRoot + "/Build/Scripts/Windows/CompileAtomic.bat",
+    ]
+
+    jake.exec(cmds, function() {
+
+      var winEditorBinary = buildDir + "Source/AtomicEditor/Release/AtomicEditor.exe";
+      var winEditorD3DBinary = buildDir + "Source/AtomicEditor/Release/D3DCompiler_47.dll";
+      var winPlayerBinary = buildDir + "Source/AtomicPlayer/Application/Release/AtomicPlayer.exe";
+      var winPlayerD3DBinary = buildDir + "Source/AtomicPlayer/Application/Release/D3DCompiler_47.dll";
+
+      fs.copySync(winEditorBinary, buildDir + "Bin/AtomicEditor.exe");
+      fs.copySync(winEditorD3DBinary, buildDir + "Bin/D3DCompiler_47.dll");
+      fs.copySync(winPlayerBinary, buildDir + "Bin/AtomicPlayer.exe");
+
+      console.log("Built Windows AtomicEditor & Player");
+
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+}); // end of build namespace

+ 12 - 0
Build/CIScripts/Host.js

@@ -0,0 +1,12 @@
+var os = require('os');
+
+if (os.platform() == "darwin") {
+  module.exports = require("./HostMac");
+  require("./BuildMac");
+  require("./BuildIOS");
+  require("./BuildWeb");
+  require("./BuildAndroid");
+} else if (os.platform() == "win32") {
+  module.exports = require("./HostWindows");
+  require("./BuildWindows");
+}

+ 0 - 0
Build/Scripts/HostMac.js → Build/CIScripts/HostMac.js


+ 53 - 0
Build/CIScripts/HostWindows.js

@@ -0,0 +1,53 @@
+var fs = require('fs-extra');
+var bcommon = require("./BuildCommon");
+
+var buildDir = bcommon.artifactsRoot + "Build/Windows/";
+var atomicToolBinary = buildDir + "Bin/AtomicTool";
+
+function clean() {
+
+  bcommon.testRemoveDir(buildDir);
+
+}
+
+function getAtomicToolBinary() {
+
+  return atomicToolBinary;
+
+}
+
+namespace('build', function() {
+
+  task('atomictool', {
+    async: true
+  }, function() {
+
+    var toolBuildDir = buildDir + "AtomicTool/";
+
+    bcommon.cleanCreateDir(toolBuildDir);
+
+    process.chdir(toolBuildDir);
+
+    var cmds = [
+      'cmake ../../../../ -DATOMICTOOL_NOGEN=1 -G "Visual Studio "',
+      'xcodebuild -target AtomicTool -configuration Release'
+    ]
+
+    jake.exec(cmds, function() {
+
+      var srcToolBinary = toolBuildDir + "Source/AtomicTool/Release/AtomicTool"
+      fs.copySync(srcToolBinary, atomicToolBinary);
+      console.log("Built MacOSX AtomicTool");
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+}); // end of build namespace
+
+
+exports.clean = clean;
+exports.getAtomicToolBinary = getAtomicToolBinary;

+ 3 - 0
Build/CIScripts/Windows/CompileAtomic.bat

@@ -0,0 +1,3 @@
+call "%VS140COMNTOOLS%..\..\VC\bin\amd64\vcvars64.bat"
+cmake ..\\..\\..\\ -DATOMIC_DEV_BUILD=1 -G "Visual Studio 14 2015 Win64"
+msbuild /m Atomic.sln /p:Configuration=Release /p:Platform=x64

+ 3 - 0
Build/CIScripts/Windows/CompileAtomicTool.bat

@@ -0,0 +1,3 @@
+call "%VS140COMNTOOLS%..\..\VC\bin\amd64\vcvars64.bat"
+cmake ..\\..\\..\\ -DATOMIC_DEV_BUILD=1 -G "Visual Studio 14 2015 Win64"
+msbuild /m Atomic.sln /t:AtomicTool /p:Configuration=Release /p:Platform=x64

+ 1 - 0
Build/Scripts/Bootstrap.js

@@ -0,0 +1 @@
+var host = require('./Host');

+ 0 - 0
Build/Scripts/BuildWindows.js


+ 2 - 6
Build/Scripts/Host.js

@@ -1,9 +1,5 @@
 var os = require('os');
 
-if (os.platform() == "darwin") {
-  module.exports = require("./HostMac");
-  require("./BuildMac");
-  require("./BuildIOS");
-  require("./BuildWeb");
-  require("./BuildAndroid");
+if (os.platform() == "win32") {
+  module.exports = require("./HostWindows");
 }

+ 48 - 0
Build/Scripts/HostCommon.js

@@ -0,0 +1,48 @@
+var os = require('os');
+var path = require('path');
+
+// get the root folder
+var atomicRoot = path.resolve(__dirname, "../..") + "/";
+
+// patch in our local node_modules
+process.env.NODE_PATH = atomicRoot + "Build/node_modules/";
+require('module').Module._initPaths();
+var fs = require('fs-extra');
+
+function cleanCreateDir(directory) {
+
+  testRemoveDir(directory);
+  testCreateDir(directory);
+
+}
+
+function testCreateDir(directory) {
+
+  if (fs.existsSync(directory)) {
+    fail("Path already exists: " + directory);
+  }
+
+  jake.mkdirP(directory);
+
+  if (!fs.existsSync(directory)) {
+    fail("Unable to create path: " + directory);
+  }
+}
+
+
+function testRemoveDir(path) {
+
+  if (fs.existsSync(path)) {
+    jake.rmRf(path);
+  }
+
+  if (fs.existsSync(path)) {
+    fail("Unable to remove path: " + path);
+  }
+}
+
+exports.atomicRoot = atomicRoot;
+exports.artifactsRoot = atomicRoot + "Artifacts/";
+exports.cleanCreateDir = cleanCreateDir;
+exports.testCreateDir = testCreateDir;
+exports.testRemoveDir = testRemoveDir;

+ 44 - 0
Build/Scripts/HostWindows.js

@@ -0,0 +1,44 @@
+common = require("./HostCommon");
+
+// forward exports
+var atomicRoot = exports.atomicRoot = common.atomicRoot;
+var artifactsRoot = exports.artifactsRoot = common.artifactsRoot;
+exports.cleanCreateDir = common.cleanCreateDir;
+
+var buildDir = common.artifactsRoot + "Build/Windows/";
+
+var atomicToolBinary = buildDir + "Source/AtomicTool/Release/AtomicTool.exe";
+
+namespace('build', function() {
+
+  task('atomic', {
+    async: true
+  }, function() {
+
+    common.cleanCreateDir(buildDir);
+
+    process.chdir(buildDir);
+
+    var bindCmd = atomicToolBinary + " bind \"" + atomicRoot + "\" ";
+
+    var cmds = [
+      atomicRoot + "/Build/Scripts/Windows/CompileAtomicTool.bat",
+      bindCmd + "Script/Packages/Atomic/ WINDOWS",
+      bindCmd + "Script/Packages/AtomicPlayer/ WINDOWS",
+      bindCmd + "Script/Packages/ToolCore/ WINDOWS",
+      bindCmd + "Script/Packages/Editor/ WINDOWS",
+      bindCmd + "Script/Packages/AtomicNET/ WINDOWS",
+      atomicRoot + "/Build/Scripts/Windows/CompileAtomic.bat",
+    ]
+
+    jake.exec(cmds, function() {
+
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+}); // end of build namespace

+ 3 - 0
Build/Scripts/Windows/CompileAtomic.bat

@@ -0,0 +1,3 @@
+call "%VS140COMNTOOLS%..\..\VC\bin\amd64\vcvars64.bat"
+cmake ..\\..\\..\\ -DATOMIC_DEV_BUILD=1 -G "Visual Studio 14 2015 Win64"
+msbuild /m Atomic.sln /p:Configuration=Release /p:Platform=x64

+ 3 - 0
Build/Scripts/Windows/CompileAtomicTool.bat

@@ -0,0 +1,3 @@
+call "%VS140COMNTOOLS%..\..\VC\bin\amd64\vcvars64.bat"
+cmake ..\\..\\..\\ -DATOMIC_DEV_BUILD=1 -G "Visual Studio 14 2015 Win64"
+msbuild /m Atomic.sln /t:AtomicTool /p:Configuration=Release /p:Platform=x64