Browse Source

Merge pull request #388 from AtomicGameEngine/JME-ATOMIC-369

Build and CI Work
JoshEngebretson 10 years ago
parent
commit
a00986d2d3
98 changed files with 2427 additions and 1865 deletions
  1. 0 1
      .gitignore
  2. 0 6
      Attic/NETNative/CMakeLists.txt
  3. 2 0
      Build/CIScripts/Build.js
  4. 43 0
      Build/CIScripts/BuildAndroid.js
  5. 59 0
      Build/CIScripts/BuildCommon.js
  6. 48 0
      Build/CIScripts/BuildIOS.js
  7. 0 0
      Build/CIScripts/BuildLinux.js
  8. 74 0
      Build/CIScripts/BuildMac.js
  9. 50 0
      Build/CIScripts/BuildWeb.js
  10. 53 0
      Build/CIScripts/BuildWindows.js
  11. 194 0
      Build/CIScripts/GenEditorData.js
  12. 86 0
      Build/CIScripts/GenMacEditor.js
  13. 101 0
      Build/CIScripts/GenWindowsEditor.js
  14. 17 0
      Build/CIScripts/Host.js
  15. 53 0
      Build/CIScripts/HostMac.js
  16. 53 0
      Build/CIScripts/HostWindows.js
  17. 53 0
      Build/CIScripts/Mac/EditorApp/Info.plist
  18. 1 0
      Build/CIScripts/Mac/EditorApp/PkgInfo
  19. 0 0
      Build/CIScripts/Mac/EditorApp/Resources/Atomic.icns
  20. 53 0
      Build/CIScripts/Mac/PlayerApp/Info.plist
  21. 1 0
      Build/CIScripts/Mac/PlayerApp/PkgInfo
  22. BIN
      Build/CIScripts/Mac/PlayerApp/Resources/Atomic.icns
  23. 3 0
      Build/CIScripts/Windows/CompileAtomic.bat
  24. 3 0
      Build/CIScripts/Windows/CompileAtomicTool.bat
  25. 1 0
      Build/CIScripts/Windows/CreateInstaller.bat
  26. 136 0
      Build/CIScripts/Windows/Installer/AtomicEditor.nsi
  27. BIN
      Build/CIScripts/Windows/Installer/Windows_Installer_Header.bmp
  28. BIN
      Build/CIScripts/Windows/Installer/Windows_Installer_LeftImage.bmp
  29. BIN
      Build/CMake/Modules/Atomic.icns
  30. 0 0
      Build/CMake/Modules/Atomic.ico
  31. 0 0
      Build/CMake/Modules/Atomic.rc
  32. 0 0
      Build/CMake/Modules/AtomicAndroid.cmake
  33. 0 0
      Build/CMake/Modules/AtomicDesktop.cmake
  34. 0 0
      Build/CMake/Modules/AtomicIOS.cmake
  35. 0 0
      Build/CMake/Modules/AtomicLinux.cmake
  36. 1 0
      Build/CMake/Modules/AtomicMac.cmake
  37. 12 0
      Build/CMake/Modules/AtomicNET.cmake
  38. 0 0
      Build/CMake/Modules/AtomicUtils.cmake
  39. 0 0
      Build/CMake/Modules/AtomicWeb.cmake
  40. 2 0
      Build/CMake/Modules/AtomicWindows.cmake
  41. 0 0
      Build/CMake/Modules/MacOSXBundleInfo.plist.template
  42. 0 0
      Build/CMake/Modules/iOSBundleInfo.plist.template
  43. 0 0
      Build/CMake/Toolchains/android.toolchain.cmake
  44. 0 0
      Build/CMake/Toolchains/emscripten.toolchain.cmake
  45. 0 0
      Build/Docs/Readme.md
  46. 0 0
      Build/Docs/Setup_Notes.txt
  47. 0 0
      Build/Docs/gendocs.sh
  48. 0 0
      Build/Docs/jsdoc.conf
  49. 1 0
      Build/Scripts/Bootstrap.js
  50. 48 0
      Build/Scripts/BuildAndroid.js
  51. 40 0
      Build/Scripts/BuildCommon.js
  52. 107 0
      Build/Scripts/BuildMac.js
  53. 105 0
      Build/Scripts/BuildWindows.js
  54. 12 0
      Build/Scripts/Host.js
  55. 142 0
      Build/Scripts/HostCommon.js
  56. 6 0
      Build/Scripts/HostMac.js
  57. 5 0
      Build/Scripts/HostWindows.js
  58. 3 0
      Build/Scripts/Windows/CompileAndroid.bat
  59. 4 0
      Build/Scripts/Windows/CompileAtomicEditor.bat
  60. 3 0
      Build/Scripts/Windows/GenerateVS2015.bat
  61. 0 1
      BuildAtomic.bat
  62. 0 2
      BuildAtomic.sh
  63. 8 0
      Build_AtomicEditor.bat
  64. 2 0
      Build_AtomicEditor.sh
  65. 0 55
      CMake/Modules/AtomicNET.cmake
  66. 1 1
      CMakeLists.txt
  67. 8 0
      CMake_VS2015.bat
  68. 2 0
      CMake_XCode.sh
  69. 0 602
      Jakefile
  70. 0 0
      Licenses/CONTRIBUTION_LICENSE.md
  71. 0 0
      Licenses/LICENSE_ATOMIC_EDITOR_AND_TOOLS.md
  72. 0 0
      Licenses/LICENSE_ATOMIC_RUNTIME.md
  73. 781 781
      Licenses/LICENSE_THIRDPARTY.md
  74. 0 256
      Rakefile
  75. 0 2
      Resources/EditorData/AtomicEditor/EditorScripts/.gitignore
  76. 0 0
      Resources/EditorData/AtomicEditor/JavaScript/Lib/acorn.js
  77. 0 0
      Resources/EditorData/AtomicEditor/JavaScript/Lib/beautify.js
  78. 0 0
      Resources/EditorData/AtomicEditor/JavaScript/Lib/jsutils.js
  79. 0 0
      Resources/EditorData/AtomicEditor/JavaScript/Lib/source-map.js
  80. 2 1
      Script/Packages/AtomicNET/Package.json
  81. 2 1
      Script/Packages/Editor/Package.json
  82. 2 1
      Script/Packages/ToolCore/Package.json
  83. 6 3
      Script/tsconfig.json
  84. 3 1
      Source/AtomicEditor/Application/AEEditorApp.cpp
  85. 3 48
      Source/AtomicEditor/CMakeLists.txt
  86. 2 2
      Source/AtomicEditor/Editors/JSResourceEditor.cpp
  87. 1 27
      Source/AtomicJS/CMakeLists.txt
  88. 1 1
      Source/AtomicJS/Javascript/JSVM.cpp
  89. 1 16
      Source/AtomicNET/NETJS/CMakeLists.txt
  90. 3 3
      Source/AtomicPlayer/Application/CMakeLists.txt
  91. 1 16
      Source/AtomicPlayerJS/CMakeLists.txt
  92. 1 5
      Source/AtomicTool/AtomicTool.cpp
  93. 18 9
      Source/AtomicTool/CMakeLists.txt
  94. 0 4
      Source/ToolCore/Command/BindCmd.cpp
  95. 0 3
      Source/ToolCore/JSBind/CSharp/CSFunctionWriter.cpp
  96. 2 2
      Source/ToolCore/JSBind/JSBind.cpp
  97. 1 1
      Source/ToolCore/JSBind/JavaScript/JSPackageWriter.cpp
  98. 1 14
      Source/ToolCoreJS/CMakeLists.txt

+ 0 - 1
.gitignore

@@ -11,7 +11,6 @@ Source/Atomic/Javascript/Modules/*
 Data/AtomicPlayer/Resources/CoreData/Shaders/HLSL/Cache
 Data/AtomicPlayer/Resources/CoreData/Shaders/HLSL/Cache
 Resources/CoreData/Shaders/HLSL/Cache
 Resources/CoreData/Shaders/HLSL/Cache
 Artifacts/*
 Artifacts/*
-Build/Source/*
 Docs/out/*
 Docs/out/*
 Docs/node_modules/*
 Docs/node_modules/*
 Data/AtomicEditor/Deployment/Web/AtomicPlayer.js
 Data/AtomicEditor/Deployment/Web/AtomicPlayer.js

+ 0 - 6
Attic/NETNative/CMakeLists.txt

@@ -7,8 +7,6 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}
                     ${CMAKE_SOURCE_DIR}/Source/ThirdParty/Box2D )
                     ${CMAKE_SOURCE_DIR}/Source/ThirdParty/Box2D )
 
 
 
 
-# ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/Atomic/Native)                    
-
 file (GLOB CSHARP_SOURCES *.cpp *.h)
 file (GLOB CSHARP_SOURCES *.cpp *.h)
 
 
 if (NOT MSVC)
 if (NOT MSVC)
@@ -27,7 +25,3 @@ if (APPLE)
 target_link_libraries(AtomicNETNative "-framework AudioUnit -framework Carbon -framework Cocoa -framework CoreAudio -framework ForceFeedback -framework IOKit -framework OpenGL -framework CoreServices -framework Security")
 target_link_libraries(AtomicNETNative "-framework AudioUnit -framework Carbon -framework Cocoa -framework CoreAudio -framework ForceFeedback -framework IOKit -framework OpenGL -framework CoreServices -framework Security")
 
 
 endif()
 endif()
-
-if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
-    add_dependencies(AtomicNETNative AtomicTool)
-endif()

+ 2 - 0
Build/CIScripts/Build.js

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

+ 43 - 0
Build/CIScripts/BuildAndroid.js

@@ -0,0 +1,43 @@
+var fs = require('fs-extra');
+var bcommon = require("./BuildCommon");
+var host = require("./Host");
+
+var buildDir = bcommon.artifactsRoot + "Build/Android/";
+var playerBuildDir = buildDir + "AtomicPlayer/";
+
+namespace('build', function() {
+
+  task('android_player', {
+    async: true
+  }, function() {
+
+    bcommon.cleanCreateDir(playerBuildDir);
+
+    var atomicTool = host.getAtomicToolBinary();
+
+    process.chdir(playerBuildDir);
+
+    var cmds = [
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/Atomic/ ANDROID",
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/AtomicPlayer/ ANDROID"
+    ];
+
+    cmds.push("cmake -G \"Unix Makefiles\" -DCMAKE_TOOLCHAIN_FILE=" + bcommon.atomicRoot + "Build//CMake/Toolchains/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../../../");
+    cmds.push("make -j4");
+
+    jake.exec(cmds, function() {
+
+      var androidPlayerBinary = playerBuildDir + "Source/AtomicPlayer/Application/libAtomicPlayer.so";
+      fs.copySync(androidPlayerBinary, buildDir + "Bin/libAtomicPlayer.so");
+
+      console.log("Built Android Player");
+
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+}); // end of build namespace

+ 59 - 0
Build/CIScripts/BuildCommon.js

@@ -0,0 +1,59 @@
+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');
+
+var artifactsRoot = atomicRoot + "Artifacts/";
+var jenkinsBuild = process.env.ATOMIC_JENKINS_BUILD == 1;
+var buildSHA = process.env.ATOMIC_BUILD_SHA;
+
+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);
+  }
+}
+
+function cloneRepo(repoUrl, destPath) {
+
+}
+
+exports.jenkinsBuild = jenkinsBuild;
+exports.buildSHA = buildSHA;
+exports.atomicRoot = atomicRoot;
+exports.artifactsRoot = artifactsRoot;
+exports.testRemoveDir = testRemoveDir;
+exports.testCreateDir = testCreateDir;
+exports.cloneRepo = cloneRepo;
+exports.cleanCreateDir = cleanCreateDir;

+ 48 - 0
Build/CIScripts/BuildIOS.js

@@ -0,0 +1,48 @@
+var fs = require('fs-extra');
+var bcommon = require("./BuildCommon");
+var host = require("./Host");
+
+var buildDir = bcommon.artifactsRoot + "Build/IOS/";
+
+namespace('build', function() {
+
+  task('ios_player', {
+    async: true
+  }, function() {
+
+    var atomicTool = host.getAtomicToolBinary();
+
+    var playerBuildDir = buildDir + "AtomicPlayer/";
+
+    bcommon.cleanCreateDir(playerBuildDir);
+
+    process.chdir(playerBuildDir);
+
+    var cmds = [
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/Atomic/ IOS",
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/AtomicPlayer/ IOS",
+      "cmake -DIOS=1 -G Xcode ../../../../"
+    ];
+
+    if (bcommon.jenkinsBuild) {
+
+      cmds.push("security -v list-keychains -d system -s /Users/jenkins/Library/Keychains/codesign.keychain");
+      cmds.push("security -v unlock-keychain /Users/jenkins/Library/Keychains/codesign.keychain");
+
+    }
+
+    cmds.push("xcodebuild -configuration Release");
+
+    jake.exec(cmds, function() {
+      var iosPlayerBinary = playerBuildDir + "Source/AtomicPlayer/Application/Release-iphoneos/AtomicPlayer.app/AtomicPlayer";
+      fs.copySync(iosPlayerBinary, buildDir + "Bin/AtomicPlayer");
+      console.log("Built IOS Player");
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+}); // end of build namespace

+ 0 - 0
Bin/.gitkeep → Build/CIScripts/BuildLinux.js


+ 74 - 0
Build/CIScripts/BuildMac.js

@@ -0,0 +1,74 @@
+var fs = require('fs-extra');
+var bcommon = require("./BuildCommon");
+var host = require("./Host");
+
+var buildDir = bcommon.artifactsRoot + "Build/Mac/";
+
+namespace('build', function() {
+
+  task('mac_player', {
+    async: true
+  }, function() {
+
+    var atomicTool = host.getAtomicToolBinary();
+
+    var playerBuildDir = buildDir + "AtomicPlayer/";
+
+    bcommon.cleanCreateDir(playerBuildDir);
+
+    process.chdir(playerBuildDir);
+
+    var cmds = [
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/Atomic/ MACOSX",
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/AtomicPlayer/ MACOSX",
+      "cmake -DATOMIC_DEV_BUILD=0 -G Xcode ../../../../",
+      "xcodebuild -target AtomicPlayer -configuration Release"
+    ];
+
+    jake.exec(cmds, function() {
+      var macPlayerBinary = playerBuildDir + "Source/AtomicPlayer/Application/Release/AtomicPlayer.app/Contents/MacOS/AtomicPlayer";
+      fs.copySync(macPlayerBinary, buildDir + "Bin/AtomicPlayer");
+      console.log("Built Mac Player");
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+  task('mac_editor', {
+    async: true
+  }, function() {
+
+    var atomicTool = host.getAtomicToolBinary();
+
+    var editorBuildDir = buildDir + "AtomicEditor/";
+
+    bcommon.cleanCreateDir(editorBuildDir);
+
+    process.chdir(editorBuildDir);
+
+    var cmds = [
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/Atomic/ MACOSX",
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/AtomicPlayer/ MACOSX",
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/ToolCore/ MACOSX",
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/Editor/ MACOSX",
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/AtomicNET/ MACOSX",
+      "cmake -DATOMIC_DEV_BUILD=0 -G Xcode ../../../../",
+      "xcodebuild -target AtomicEditor -configuration Release"
+    ];
+
+    jake.exec(cmds, function() {
+      var macEditorBinary = editorBuildDir + "Source/AtomicEditor/Release/AtomicEditor.app/Contents/MacOS/AtomicEditor";
+      fs.copySync(macEditorBinary, buildDir + "Bin/AtomicEditor");
+      console.log("Built Mac Editor");
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+}); // end of build namespace

+ 50 - 0
Build/CIScripts/BuildWeb.js

@@ -0,0 +1,50 @@
+var fs = require('fs-extra');
+var bcommon = require("./BuildCommon");
+var host = require("./Host");
+
+var buildDir = bcommon.artifactsRoot + "Build/Web/";
+
+namespace('build', function() {
+
+  task('web_player', {
+    async: true
+  }, function() {
+
+    var atomicTool = host.getAtomicToolBinary();
+
+    var playerBuildDir = buildDir + "AtomicPlayer/";
+
+    bcommon.cleanCreateDir(playerBuildDir);
+
+    process.chdir(playerBuildDir);
+
+    var cmds = [
+
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/Atomic/ WEB",
+      atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/AtomicPlayer/ WEB",
+      "cmake -DEMSCRIPTEN=1 -DATOMIC_BUILD_2D=1 -DCMAKE_TOOLCHAIN_FILE=" + bcommon.atomicRoot + "Build/CMake/Toolchains/emscripten.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../../../",
+      "make -j4",
+      "cd ./Source/AtomicPlayer/Application && mv ./AtomicPlayer ./AtomicPlayer.bc && " +
+      // -s ERROR_ON_UNDEFINED_SYMBOLS=1 (disabled for pthread errors currently on incoming)
+      "emcc -O3 -s USE_PTHREADS=0 -s ASM_JS=1 -s VERBOSE=0 -s USE_SDL=2 -s TOTAL_MEMORY=134217728 -s AGGRESSIVE_VARIABLE_ELIMINATION=1 -s NO_EXIT_RUNTIME=1 ./AtomicPlayer.bc -o  ./AtomicPlayer.html"
+
+    ]
+
+    jake.exec(cmds, function() {
+
+      var webPlayerBinary = playerBuildDir + "Source/AtomicPlayer/Application/AtomicPlayer.js";
+      var webPlayerMemFile = playerBuildDir + "Source/AtomicPlayer/Application/AtomicPlayer.html.mem";
+
+      fs.copySync(webPlayerBinary, buildDir + "Bin/AtomicPlayer.js");
+      fs.copySync(webPlayerMemFile, buildDir + "Bin/AtomicPlayer.html.mem");
+
+      console.log("Built Web Player");
+
+      complete();
+    }, {
+      printStdout: true
+    });
+
+  });
+
+}); // end of build namespace

+ 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/CIScripts/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/CIScripts/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

+ 194 - 0
Build/CIScripts/GenEditorData.js

@@ -0,0 +1,194 @@
+var fs = require('fs-extra');
+var bcommon = require("./BuildCommon");
+var host = require("./Host");
+
+var buildDir = bcommon.artifactsRoot + "Build/EditorData/";
+var jsDocFolder = bcommon.artifactsRoot + "Build/JSDoc/";
+var atomicRoot = bcommon.atomicRoot;
+var atomicTool = host.getAtomicToolBinary();
+
+namespace('build', function() {
+
+  task('genscriptbindings', {
+    async: true
+  }, function() {
+
+    bcommon.cleanCreateDir(buildDir);
+    bcommon.cleanCreateDir(jsDocFolder);
+
+    var bindCmd = atomicTool + " bind \"" + atomicRoot + "\" ";
+
+    var cmds = [
+      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",
+    ];
+
+    jake.exec(cmds, function() {
+
+      console.log("Built Script Bindings");
+
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+  task('gendocs', ["build:genscriptbindings"], {
+    async: true
+  }, function() {
+
+    console.log("Generating Examples & JSDocs");
+
+    fs.copySync(atomicRoot + "Build/Docs/Readme.md", jsDocFolder + "/Readme.md");
+    fs.copySync(atomicRoot + "Build/Docs/jsdoc.conf", jsDocFolder + "/jsdoc.conf");
+
+    cmds = [
+      "git clone https://github.com/AtomicGameEngine/AtomicExamples " + buildDir + "AtomicExamples && rm -rf " + buildDir + "AtomicExamples/.git",
+      "cd " + jsDocFolder + " && npm install git+https://github.com/jsdoc3/jsdoc",
+      "cd " + jsDocFolder + " && git clone https://github.com/AtomicGameEngine/jaguarjs-jsdoc && cd jaguarjs-jsdoc && git checkout atomic_master",
+      "cd " + jsDocFolder + " && ./node_modules/.bin/jsdoc ./Atomic.js -t ./jaguarjs-jsdoc/ -c ./jsdoc.conf Readme.md",
+    ];
+
+    jake.exec(cmds, function() {
+
+      fs.copySync(jsDocFolder + "out", buildDir + "Docs");
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+
+  });
+
+  task('ios_deploy', {
+    async: true
+  }, function() {
+
+    var iosDeploybuildDir = bcommon.artifactsRoot + "Build/IOSDeploy/";
+
+    bcommon.cleanCreateDir(iosDeploybuildDir);
+
+    process.chdir(iosDeploybuildDir);
+
+    jake.exec("git clone https://github.com/AtomicGameEngine/ios-deploy && cd ios-deploy && make ios-deploy",
+      function() {
+
+        complete();
+      }, {
+        printStdout: true
+      });
+
+  });
+
+  task('compileeditorscripts', ["build:genscriptbindings"],{
+    async: true
+  }, function() {
+
+    console.log("Compiling Editor Scripts");
+
+    process.chdir(atomicRoot);
+
+    cmds = [
+      atomicRoot + "Build/Mac/node/node " + atomicRoot + "/Build/TypeScript/tsc.js -p ./Script"
+    ];
+
+    jake.exec(cmds, function() {
+
+      // will be copied when editor resources are copied
+
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+
+  });
+
+  task('geneditordata', ["build:compileeditorscripts", "build:ios_deploy", "build:gendocs"], {
+    async: true
+  }, function() {
+
+    // Mac App
+
+    fs.copySync(atomicRoot + "Build/CIScripts/Mac/EditorApp",
+      buildDir + "MacApps/EditorApp");
+
+    fs.copySync(atomicRoot + "Build/CIScripts/Mac/PlayerApp/",
+      buildDir + "MacApps/PlayerApp/");
+
+    // Editor Binaries
+
+    fs.copySync(bcommon.artifactsRoot + "Build/Mac/Bin/AtomicEditor",
+      buildDir + "EditorBinaries/Mac/AtomicEditor");
+
+    fs.copySync(bcommon.artifactsRoot + "Build/Windows/Bin/AtomicEditor.exe",
+      buildDir + "EditorBinaries/Windows/AtomicEditor.exe");
+
+    fs.copySync(bcommon.artifactsRoot + "Build/Windows/Bin/D3DCompiler_47.dll",
+      buildDir + "EditorBinaries/Windows/D3DCompiler_47.dll");
+
+    // Resources
+
+    fs.copySync(atomicRoot + "Resources/CoreData", buildDir + "Resources/CoreData");
+    fs.copySync(atomicRoot + "Resources/EditorData", buildDir + "Resources/EditorData");
+    fs.copySync(atomicRoot + "Resources/PlayerData", buildDir + "Resources/PlayerData");
+    fs.copySync(atomicRoot + "/Data/AtomicEditor", buildDir + "Resources/ToolData");
+
+    fs.copySync(atomicRoot + "Artifacts/Build/Resources/EditorData/AtomicEditor/EditorScripts",
+      buildDir + "Resources/EditorData/AtomicEditor/EditorScripts");
+
+    // root deployment
+    var deployRoot = buildDir + "Deployment/";
+
+    fs.copySync(atomicRoot + "/Data/AtomicEditor/Deployment/", deployRoot);
+
+    // Android
+    fs.copySync(bcommon.artifactsRoot + "Build/Android/Bin/libAtomicPlayer.so",
+      deployRoot + "Android/libs/armeabi-v7a/libAtomicPlayer.so");
+
+    // Mac
+    fs.copySync(bcommon.artifactsRoot + "Build/Mac/Bin/AtomicPlayer",
+      deployRoot + "MacOS/AtomicPlayer.app/Contents/MacOS/AtomicPlayer");
+
+    // IOS
+    fs.copySync(bcommon.artifactsRoot + "Build/IOSDeploy/ios-deploy/ios-deploy",
+      deployRoot + "IOS/ios-deploy/ios-deploy");
+    fs.copySync(bcommon.artifactsRoot + "Build/IOS/Bin/AtomicPlayer",
+      deployRoot + "IOS/AtomicPlayer.app/AtomicPlayer");
+
+    // Web
+    fs.copySync(bcommon.artifactsRoot + "Build/Web/Bin/AtomicPlayer.js",
+      deployRoot + "Web/AtomicPlayer.js");
+    fs.copySync(bcommon.artifactsRoot + "Build/Web/Bin/AtomicPlayer.html.mem",
+      deployRoot + "Web/AtomicPlayer.html.mem");
+
+    // Windows
+    fs.copySync(bcommon.artifactsRoot + "Build/Windows/Bin/AtomicPlayer.exe",
+      deployRoot + "Windows/x64/AtomicPlayer.exe");
+    fs.copySync(bcommon.artifactsRoot + "Build/Windows/Bin/D3DCompiler_47.dll",
+      deployRoot + "Windows/x64/D3DCompiler_47.dll");
+
+
+    complete();
+
+    process.chdir(buildDir);
+
+    var cmds = ["zip -r -X ./EditorData.zip ./"];
+
+    jake.exec(cmds,
+      function() {
+        complete();
+      }, {
+        printStdout: true
+      });
+
+  });
+
+}); // end of build namespace

+ 86 - 0
Build/CIScripts/GenMacEditor.js

@@ -0,0 +1,86 @@
+var fs = require('fs-extra');
+var bcommon = require("./BuildCommon");
+var host = require("./Host");
+
+var atomicRoot = bcommon.atomicRoot;
+var srcDir = bcommon.artifactsRoot + "Build/EditorData/";
+var dstDir = bcommon.artifactsRoot + "Build/MacEditor/";
+
+namespace('build', function() {
+
+  task('genmaceditorinstaller', ["genmaceditor"], {
+    async: true
+  }, function() {
+
+      bcommon.cleanCreateDir(dstDir + "MacEditorInstaller");
+
+      var editorAppFolder = dstDir + "AtomicEditor.app";
+
+      cmds = [
+      "chmod +x " + editorAppFolder + "/Contents/MacOS/AtomicEditor",
+      "chmod +x " + editorAppFolder + "/Contents/Resources/ToolData/Deployment/MacOS/AtomicPlayer.app/Contents/MacOS/AtomicPlayer",
+      "security unlock-keychain -p \"jenkins\" /Users/jenkins/Library/Keychains/login.keychain",
+      "codesign -s \"THUNDERBEAST GAMES LLC\" -f -v " + editorAppFolder,
+      "cd " + dstDir + " && zip -r -X " + "./MacEditorInstaller/AtomicEditor_MacOSX_" + bcommon.buildSHA + ".zip ./AtomicEditor.app"
+    ];
+
+    jake.exec(cmds, function() {
+
+      console.log("Built Mac Editor");
+
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+
+  });
+
+  task('genmaceditor', {
+    async: true
+  }, function() {
+
+    bcommon.cleanCreateDir(dstDir);
+
+    cmds = ["unzip " + srcDir + "EditorData.zip -d " + srcDir];
+
+    jake.exec(cmds, function() {
+
+      console.log("Generating Mac App Bundle");
+
+      var editorAppFolder = dstDir + "AtomicEditor.app/Contents/";
+
+      fs.copySync(srcDir + "MacApps/EditorApp",
+        editorAppFolder);
+
+      fs.copySync(srcDir + "EditorBinaries/Mac/AtomicEditor",
+        editorAppFolder + "MacOS/AtomicEditor");
+
+      fs.copySync(srcDir + "Resources/CoreData",
+        editorAppFolder + "Resources/CoreData");
+
+      fs.copySync(srcDir + "Resources/EditorData",
+        editorAppFolder + "Resources/EditorData");
+
+      fs.copySync(srcDir + "Resources/PlayerData",
+        editorAppFolder + "Resources/PlayerData");
+
+      fs.copySync(srcDir + "Resources/ToolData",
+        editorAppFolder + "Resources/ToolData");
+
+      fs.copySync(srcDir + "AtomicExamples",
+        editorAppFolder + "Resources/ToolData/AtomicExamples");
+
+      fs.copySync(srcDir + "Docs",
+        editorAppFolder + "Resources/ToolData/Docs/JSDocs");
+
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+}); // end of build namespace

+ 101 - 0
Build/CIScripts/GenWindowsEditor.js

@@ -0,0 +1,101 @@
+var fs = require('fs-extra');
+var bcommon = require("./BuildCommon");
+var host = require("./Host");
+
+var atomicRoot = bcommon.atomicRoot;
+var srcDir = bcommon.artifactsRoot + "Build/EditorData/";
+var dstDir = bcommon.artifactsRoot + "Build/WindowsEditor/";
+
+namespace('build', function() {
+
+  task('genwindowsinstaller', ["build:genwindowseditor"], {
+    async: true
+  }, function() {
+
+    console.log("Creating Windows Installer");
+
+    bcommon.cleanCreateDir(bcommon.artifactsRoot + "Build/WindowsInstaller");
+
+    var installerName = "AtomicEditorSetup_" + bcommon.buildSHA + ".exe";
+    var installerPath = bcommon.artifactsRoot + "Build/WindowsInstaller/" + installerName;
+
+    var nsisDefines = "/DATOMIC_ROOT=" + atomicRoot;
+    nsisDefines += " /DEDITOR_VERSION=1";
+    nsisDefines += " /DINSTALLER_NAME=" + installerName;
+
+    var makeNSISCmd = atomicRoot + "\\Build\\CIScripts\\Windows\\CreateInstaller.bat";
+
+    makeNSISCmd += " " + nsisDefines + " " + atomicRoot + "/Build/CIScripts/Windows/Installer/AtomicEditor.nsi";
+
+    var editorExe = dstDir + "AtomicEditor/AtomicEditor.exe";
+
+    var pfxFile = process.env.ATOMIC_PFX_FILE;
+    var pfxPW = process.env.ATOMIC_PFX_PW;
+
+    var signBaseCmd = "signtool.exe sign /f " + pfxFile;
+    signBaseCmd += " /p " + pfxPW;
+    signBaseCmd += " /t http://timestamp.verisign.com/scripts/timestamp.dll";
+    signBaseCmd += " /v ";
+
+    var signEditorCmd = signBaseCmd + editorExe;
+    var signInstallerCmd = signBaseCmd + installerPath;
+
+    var cmds = [signEditorCmd, makeNSISCmd, signInstallerCmd];
+
+    jake.exec(cmds, function() {
+      complete();
+    }, {
+      printStdout: true
+    });
+
+  });
+
+  task('genwindowseditor', {
+    async: true
+  }, function() {
+
+    bcommon.cleanCreateDir(dstDir);
+
+    process.chdir(srcDir);
+
+    cmds = [ atomicRoot + "Build/Windows/7z/7z.exe x -y EditorData.zip"];
+
+    jake.exec(cmds, function() {
+
+    console.log("Generating Windows Editor");
+
+    var editorAppFolder = dstDir + "AtomicEditor/";
+
+    fs.copySync(srcDir + "EditorBinaries/Windows/AtomicEditor.exe",
+      editorAppFolder + "AtomicEditor.exe");
+
+    fs.copySync(srcDir + "EditorBinaries/Windows/D3DCompiler_47.dll",
+      editorAppFolder + "D3DCompiler_47.dll");
+
+    fs.copySync(srcDir + "Resources/CoreData",
+      editorAppFolder + "Resources/CoreData");
+
+    fs.copySync(srcDir + "Resources/EditorData",
+      editorAppFolder + "Resources/EditorData");
+
+    fs.copySync(srcDir + "Resources/PlayerData",
+      editorAppFolder + "Resources/PlayerData");
+
+    fs.copySync(srcDir + "Resources/ToolData",
+      editorAppFolder + "Resources/ToolData");
+
+    fs.copySync(srcDir + "AtomicExamples",
+      editorAppFolder + "Resources/ToolData/AtomicExamples");
+
+    fs.copySync(srcDir + "Docs",
+      editorAppFolder + "Resources/ToolData/Docs/JSDocs");
+
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+}); // end of build namespace

+ 17 - 0
Build/CIScripts/Host.js

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

+ 53 - 0
Build/CIScripts/HostMac.js

@@ -0,0 +1,53 @@
+var fs = require('fs-extra');
+var bcommon = require("./BuildCommon");
+
+var buildDir = bcommon.artifactsRoot + "Build/Mac/";
+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 Xcode',
+      '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;

+ 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;

+ 53 - 0
Build/CIScripts/Mac/EditorApp/Info.plist

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>BuildMachineOSBuild</key>
+	<string>15B42</string>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>AtomicEditor</string>
+	<key>CFBundleIconFile</key>
+	<string>Atomic.icns</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleLongVersionString</key>
+	<string></string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleSupportedPlatforms</key>
+	<array>
+		<string>MacOSX</string>
+	</array>
+	<key>CFBundleVersion</key>
+	<string></string>
+	<key>CSResourcesFileMapped</key>
+	<true/>
+	<key>DTCompiler</key>
+	<string>com.apple.compilers.llvm.clang.1_0</string>
+	<key>DTPlatformBuild</key>
+	<string>7A1001</string>
+	<key>DTPlatformVersion</key>
+	<string>GM</string>
+	<key>DTSDKBuild</key>
+	<string>15A278</string>
+	<key>DTSDKName</key>
+	<string>macosx10.11</string>
+	<key>DTXcode</key>
+	<string>0701</string>
+	<key>DTXcodeBuild</key>
+	<string>7A1001</string>
+	<key>LSEnvironment</key>
+	<dict>
+		<key>URHO3D_PREFIX_PATH</key>
+		<string>../Resources</string>
+	</dict>
+	<key>LSRequiresCarbon</key>
+	<true/>
+	<key>NSHumanReadableCopyright</key>
+	<string></string>
+</dict>
+</plist>

+ 1 - 0
Build/CIScripts/Mac/EditorApp/PkgInfo

@@ -0,0 +1 @@
+APPL????

+ 0 - 0
CMake/Modules/Atomic.icns → Build/CIScripts/Mac/EditorApp/Resources/Atomic.icns


+ 53 - 0
Build/CIScripts/Mac/PlayerApp/Info.plist

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>BuildMachineOSBuild</key>
+	<string>15B42</string>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>AtomicPlayer</string>
+	<key>CFBundleIconFile</key>
+	<string>Atomic.icns</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleLongVersionString</key>
+	<string></string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleSupportedPlatforms</key>
+	<array>
+		<string>MacOSX</string>
+	</array>
+	<key>CFBundleVersion</key>
+	<string></string>
+	<key>CSResourcesFileMapped</key>
+	<true/>
+	<key>DTCompiler</key>
+	<string>com.apple.compilers.llvm.clang.1_0</string>
+	<key>DTPlatformBuild</key>
+	<string>7A1001</string>
+	<key>DTPlatformVersion</key>
+	<string>GM</string>
+	<key>DTSDKBuild</key>
+	<string>15A278</string>
+	<key>DTSDKName</key>
+	<string>macosx10.11</string>
+	<key>DTXcode</key>
+	<string>0701</string>
+	<key>DTXcodeBuild</key>
+	<string>7A1001</string>
+	<key>LSEnvironment</key>
+	<dict>
+		<key>URHO3D_PREFIX_PATH</key>
+		<string>../Resources</string>
+	</dict>
+	<key>LSRequiresCarbon</key>
+	<true/>
+	<key>NSHumanReadableCopyright</key>
+	<string></string>
+</dict>
+</plist>

+ 1 - 0
Build/CIScripts/Mac/PlayerApp/PkgInfo

@@ -0,0 +1 @@
+APPL????

BIN
Build/CIScripts/Mac/PlayerApp/Resources/Atomic.icns


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

@@ -0,0 +1,3 @@
+call "%VS140COMNTOOLS%..\..\VC\bin\amd64\vcvars64.bat"
+cmake ..\\..\\..\\ -DATOMIC_DEV_BUILD=0 -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/CIScripts/Windows/CreateInstaller.bat

@@ -0,0 +1 @@
+"C:\Program Files (x86)\NSIS\makensis.exe" %1=%2 %3=%4 %5=%6 %7

+ 136 - 0
Build/CIScripts/Windows/Installer/AtomicEditor.nsi

@@ -0,0 +1,136 @@
+;--------------------------------
+;Atomic Editor NSIS Installation Script
+;--------------------------------
+
+!ifndef ATOMIC_ROOT
+!error "ATOMIC_ROOT NOT DEFINED"
+!endif
+
+!ifndef EDITOR_VERSION
+!error "EDITOR_VERSION NOT DEFINED"
+!endif
+
+!ifndef INSTALLER_NAME
+!error "INSTALLER_NAME NOT DEFINED"
+!endif
+
+!define prodname "Atomic Editor"
+!define coname "THUNDERBEAST GAMES LLC"
+!define outfile "${ATOMIC_ROOT}\Artifacts\Build\WindowsInstaller\${INSTALLER_NAME}"
+!define appexe "AtomicEditor.exe"
+!define produrl "http://www.atomicgameengine.com/"
+
+;--------------------------------
+;Include Modern UI
+;--------------------------------
+
+!include "MUI.nsh"
+
+!define MUI_HEADERIMAGE
+!define MUI_HEADERIMAGE_RIGHT
+!define MUI_HEADERIMAGE_BITMAP "Windows_Installer_Header.bmp"
+!define MUI_WELCOMEFINISHPAGE_BITMAP "Windows_Installer_LeftImage.bmp"
+!define MUI_HEADERIMAGE_UNBITMAP "Windows_Installer_Header.bmp"
+!define MUI_HEADER_TRANSPARENT_TEXT
+
+;--------------------------------
+;General
+;--------------------------------
+
+;Name and file
+Name "${prodname}"
+OutFile "${outfile}"
+
+;Default installation folder
+InstallDir "$PROGRAMFILES64\${prodname}"
+
+;Get installation folder from registry if available
+InstallDirRegKey HKLM "Software\${coname}\InstallDir" "${prodname}"
+
+;--------------------------------
+;Interface Settings
+;--------------------------------
+
+!define MUI_ABORTWARNING
+
+;--------------------------------
+;Pages
+;--------------------------------
+
+!insertmacro MUI_PAGE_WELCOME
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+	; These indented statements modify settings for MUI_PAGE_FINISH
+	!define MUI_FINISHPAGE_NOAUTOCLOSE
+	!define MUI_FINISHPAGE_RUN "$INSTDIR\AtomicEditor\${appexe}"
+	!define MUI_FINISHPAGE_RUN_CHECKED
+	!define MUI_FINISHPAGE_RUN_TEXT "Launch the Atomic Editor"
+!insertmacro MUI_PAGE_FINISH
+
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+;--------------------------------
+;Languages
+;--------------------------------
+
+!insertmacro MUI_LANGUAGE "English"
+
+;--------------------------------
+;Installer Sections
+;--------------------------------
+
+Section "${prodname}" SecMain
+
+	SetShellVarContext all
+
+	SetOutPath "$INSTDIR"
+
+  File /r "${ATOMIC_ROOT}\Artifacts\Build\WindowsEditor\*.*"
+
+	;Store installation folder
+	WriteRegStr HKLM "Software\${coname}\InstallDir" "${prodname}" $INSTDIR
+
+	; Create shortcut
+	CreateShortCut "$DESKTOP\${prodname}.lnk" "$INSTDIR\AtomicEditor\${appexe}"
+	CreateShortCut "$SMPROGRAMS\${prodname}.lnk" "$INSTDIR\AtomicEditor\${appexe}"
+
+	; Update Add/Remove Programs
+	DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}"
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}" "DisplayName" "${prodname}"
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}" "UninstallString" "$INSTDIR\Uninstall.exe"
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}" "InstallLocation" "$INSTDIR"
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}" "DisplayIcon" "$INSTDIR\AtomicEditor\${appexe},0"
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}" "Publisher" "${coname}"
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}" "URLInfoAbout" "${produrl}"
+	WriteRegDWord HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}" "NoRepair" 1
+	WriteRegDWord HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}" "NoModify" 1
+
+	;Create uninstaller
+	WriteUninstaller "$INSTDIR\Uninstall.exe"
+
+SectionEnd
+
+;--------------------------------
+;Uninstaller Section
+;--------------------------------
+
+Section "Uninstall"
+
+	SetShellVarContext all
+
+	; Remove short cut
+	Delete "$SMPROGRAMS\${prodname}.lnk"
+
+	; Remove installation folder
+  RMDir /r $INSTDIR
+
+	; Remove from Add/Remove Programs
+	DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${prodname}"
+
+	; Remove installation folder
+	DeleteRegValue HKLM "Software\${coname}\InstallDir" "${prodname}"
+	DeleteRegKey /ifempty HKLM "Software\${coname}\InstallDir"
+	DeleteRegKey /ifempty HKLM "Software\${coname}"
+
+SectionEnd

BIN
Build/CIScripts/Windows/Installer/Windows_Installer_Header.bmp


BIN
Build/CIScripts/Windows/Installer/Windows_Installer_LeftImage.bmp


BIN
Build/CMake/Modules/Atomic.icns


+ 0 - 0
CMake/Modules/Atomic.ico → Build/CMake/Modules/Atomic.ico


+ 0 - 0
CMake/Modules/Atomic.rc → Build/CMake/Modules/Atomic.rc


+ 0 - 0
CMake/Modules/AtomicAndroid.cmake → Build/CMake/Modules/AtomicAndroid.cmake


+ 0 - 0
CMake/Modules/AtomicDesktop.cmake → Build/CMake/Modules/AtomicDesktop.cmake


+ 0 - 0
CMake/Modules/AtomicIOS.cmake → Build/CMake/Modules/AtomicIOS.cmake


+ 0 - 0
CMake/Modules/AtomicLinux.cmake → Build/CMake/Modules/AtomicLinux.cmake


+ 1 - 0
CMake/Modules/AtomicMac.cmake → Build/CMake/Modules/AtomicMac.cmake

@@ -1,5 +1,6 @@
 
 
 set (JAVASCRIPT_BINDINGS_PLATFORM "MACOSX")
 set (JAVASCRIPT_BINDINGS_PLATFORM "MACOSX")
+set (ATOMIC_NODE_JAKE Build/Mac/node/node Build/node_modules/jake/bin/cli.js  -f  Build/Scripts/Bootstrap.js)
 
 
 include (BundleUtilities)
 include (BundleUtilities)
 include(AtomicDesktop)
 include(AtomicDesktop)

+ 12 - 0
Build/CMake/Modules/AtomicNET.cmake

@@ -0,0 +1,12 @@
+
+if (ATOMIC_DOTNET_DEV)
+add_definitions ( -DATOMIC_DOTNET )
+endif ()
+
+set (CSATOMICNATIVEDIR "${CMAKE_SOURCE_DIR}/Artifacts/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/Atomic/Native")
+set (CSATOMICPLAYERNATIVEDIR "${CMAKE_SOURCE_DIR}/Artifacts/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/AtomicPlayer/Native")
+set (CSATOMICNETNATIVEDIR "${CMAKE_SOURCE_DIR}/Artifacts/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/AtomicNET/Native")
+
+file (GLOB CSHARP_BINDINGS_SOURCE ${CSATOMICNATIVEDIR}/*.cpp ${CSATOMICNATIVEDIR}/*.h)
+file (GLOB CSHARPATOMICPLAYER_BINDINGS_SOURCE ${CSATOMICPLAYERNATIVEDIR}/*.cpp ${CSATOMICPLAYERNATIVEDIR}/*.h)
+file (GLOB CSHARPATOMICNET_BINDINGS_SOURCE ${CSATOMICNETNATIVEDIR}/*.cpp ${CSATOMICNETNATIVEDIR}/*.h)

+ 0 - 0
CMake/Modules/AtomicUtils.cmake → Build/CMake/Modules/AtomicUtils.cmake


+ 0 - 0
CMake/Modules/AtomicWeb.cmake → Build/CMake/Modules/AtomicWeb.cmake


+ 2 - 0
CMake/Modules/AtomicWindows.cmake → Build/CMake/Modules/AtomicWindows.cmake

@@ -5,6 +5,8 @@ include(AtomicDesktop)
 
 
 #set (CMAKE_DEBUG_POSTFIX _d)
 #set (CMAKE_DEBUG_POSTFIX _d)
 
 
+set (ATOMIC_NODE_JAKE Build/Windows/node/node.exe Build/node_modules/jake/bin/cli.js  -f  Build\\Scripts\\Bootstrap.js)
+
 if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
 if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
     set (D3DCOMPILER_47_DLL ${CMAKE_SOURCE_DIR}/Build/Windows/Binaries/x64/D3DCompiler_47.dll)
     set (D3DCOMPILER_47_DLL ${CMAKE_SOURCE_DIR}/Build/Windows/Binaries/x64/D3DCompiler_47.dll)
 else()
 else()

+ 0 - 0
CMake/Modules/MacOSXBundleInfo.plist.template → Build/CMake/Modules/MacOSXBundleInfo.plist.template


+ 0 - 0
CMake/Modules/iOSBundleInfo.plist.template → Build/CMake/Modules/iOSBundleInfo.plist.template


+ 0 - 0
CMake/Toolchains/android.toolchain.cmake → Build/CMake/Toolchains/android.toolchain.cmake


+ 0 - 0
CMake/Toolchains/emscripten.toolchain.cmake → Build/CMake/Toolchains/emscripten.toolchain.cmake


+ 0 - 0
Docs/Readme.md → Build/Docs/Readme.md


+ 0 - 0
Docs/Setup_Notes.txt → Build/Docs/Setup_Notes.txt


+ 0 - 0
Docs/gendocs.sh → Build/Docs/gendocs.sh


+ 0 - 0
Docs/jsdoc.conf → Build/Docs/jsdoc.conf


+ 1 - 0
Build/Scripts/Bootstrap.js

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

+ 48 - 0
Build/Scripts/BuildAndroid.js

@@ -0,0 +1,48 @@
+var fs = require('fs-extra');
+var path = require("path");
+var host = require("./Host");
+var atomicRoot = host.atomicRoot;
+
+var buildDir = host.artifactsRoot + "Build/Android/";
+var editorAppFolder = host.artifactsRoot + "AtomicEditor/";
+
+namespace('build', function() {
+
+  task('android_player', ["build:atomiceditor"], {
+    async: true
+  }, function() {
+
+    // Clean build
+    common.cleanCreateDir(buildDir);
+
+    process.chdir(buildDir);
+
+    var cmds = [];
+
+    var scriptModules = host.getScriptModules("ANDROID");
+    var bindCmd = host.atomicTool + " bind \"" + atomicRoot + "\" ";
+
+    // Generate bindings for each script package
+    for (var pkgName in scriptModules) {
+      cmds.push(bindCmd + "Script/Packages/" + pkgName + "/ ANDROID")
+    }
+
+    // Build the Android Player
+    cmds.push(atomicRoot + "Build/Scripts/Windows/CompileAndroid.bat");
+
+    jake.exec(cmds, function() {
+
+      // Install Deployment
+      fs.copySync(buildDir + "Source/AtomicPlayer/Application/libAtomicPlayer.so",
+        editorAppFolder + "Resources/ToolData/Deployment/Android/libs/armeabi-v7a/libAtomicPlayer.so");
+
+      complete();
+
+    }, {
+      printStdout: true,
+      breakOnError : false
+    });
+
+  });
+
+}); // end of build namespace

+ 40 - 0
Build/Scripts/BuildCommon.js

@@ -0,0 +1,40 @@
+var fs = require('fs-extra');
+var os = require('os');
+var path = require("path");
+var host = require("./Host");
+var atomicRoot = host.atomicRoot;
+
+namespace('build', function() {
+
+  task('genscripts', {
+    async: true
+  }, function(platform) {
+
+        process.chdir(atomicRoot);
+
+        var modules = host.getScriptModules(platform);
+        var bindCmd = host.atomicTool + " bind \"" + atomicRoot + "\" ";
+
+        var cmds = [];
+        for (var pkgName in modules) {
+            cmds.push(bindCmd + "Script/Packages/" + pkgName + "/ " + platform);
+        }
+
+        // Compile the Editor Scripts
+        if (os.platform() == "win32")
+          cmds.push(atomicRoot + "Build/Windows/node/node.exe " + atomicRoot + "Build/TypeScript/tsc.js -p " + atomicRoot + "Script");
+        else if (os.platform() == "darwin")
+          cmds.push(atomicRoot + "Build/Mac/node/node " + atomicRoot + "Build/TypeScript/tsc.js -p " + atomicRoot + "Script");
+
+        jake.exec(cmds, function() {
+
+          complete();
+
+        }, {
+          printStdout: true
+        });
+
+  });
+
+
+}); // end of build namespace

+ 107 - 0
Build/Scripts/BuildMac.js

@@ -0,0 +1,107 @@
+var fs = require('fs-extra');
+var path = require("path");
+var host = require("./Host");
+var atomicRoot = host.atomicRoot;
+
+var buildDir = host.artifactsRoot + "Build/Mac/";
+var editorAppFolder = host.artifactsRoot + "/AtomicEditor/AtomicEditor.app/";
+
+namespace('build', function() {
+
+// Builds a standalone Atomic Editor, which can be distributed out of build tree
+task('atomiceditor', {
+  async: true
+}, function() {
+
+  // Clean build
+  var cleanBuild = true;
+  if (cleanBuild) {
+    common.cleanCreateDir(buildDir);
+    common.cleanCreateDir(editorAppFolder);
+    common.cleanCreateDir(host.getGenScriptRootDir("MACOSX"));
+  }
+
+  // create the generated script files, so they will be picked up by cmake
+  host.createGenScriptFiles("MACOSX");
+
+  process.chdir(buildDir);
+
+  var cmds = [];
+
+  cmds.push("cmake ../../../ -DATOMIC_DEV_BUILD=0 -G Xcode");
+  cmds.push("xcodebuild -target GenerateScriptBindings -configuration Release")
+  cmds.push("xcodebuild -target AtomicEditor -target AtomicPlayer -configuration Release")
+
+  jake.exec(cmds, function() {
+
+    fs.copySync(buildDir + "Source/AtomicEditor/Release/AtomicEditor.app", editorAppFolder);
+
+    var resourceDest = editorAppFolder + "/Contents/Resources/"
+
+    // We need some resources to run
+    fs.copySync(atomicRoot + "Resources/CoreData",
+      resourceDest + "CoreData");
+
+    fs.copySync(atomicRoot + "Resources/PlayerData",
+      resourceDest + "PlayerData");
+
+    fs.copySync(atomicRoot + "Data/AtomicEditor",
+      resourceDest + "ToolData");
+
+    fs.copySync(atomicRoot + "Resources/EditorData",
+      resourceDest + "EditorData");
+
+    fs.copySync(atomicRoot + "Artifacts/Build/Resources/EditorData/AtomicEditor/EditorScripts",
+      resourceDest + "EditorData/AtomicEditor/EditorScripts");
+
+
+    console.log("\n\nAtomic Editor build to " + editorAppFolder + "\n\n");
+
+    complete();
+
+  }, {
+    printStdout: true
+  });
+
+});
+
+// Generate a XCode Workspace
+task('genxcode', {
+  async: true
+}, function() {
+
+  var xcodeRoot = path.resolve(atomicRoot, "") + "-XCode";
+
+  if (!fs.existsSync(xcodeRoot)) {
+      jake.mkdirP(xcodeRoot);
+  }
+
+  // create the generated script files, so they will be picked up by cmake
+  host.createGenScriptFiles("MACOSX");
+
+  process.chdir(xcodeRoot);
+
+  var cmds = [];
+
+  cmds.push("cmake ../AtomicGameEngine -DATOMIC_DEV_BUILD=1 -G Xcode");
+  cmds.push("xcodebuild -target GenerateScriptBindings -configuration Debug")
+
+  jake.exec(cmds, function() {
+
+    var task = jake.Task['build:genscripts']
+
+    task.addListener('complete', function () {
+        console.log("\n\nXCode workspace generated in " +  xcodeRoot + "\n\n");
+        complete();
+      });
+
+    task.invoke("MACOSX");
+
+  }, {
+    printStdout: true
+  });
+
+});
+
+
+});// end of build namespace

+ 105 - 0
Build/Scripts/BuildWindows.js

@@ -0,0 +1,105 @@
+var fs = require('fs-extra');
+var path = require("path");
+var host = require("./Host");
+var atomicRoot = host.atomicRoot;
+
+var buildDir = host.artifactsRoot + "Build/Windows/";
+var editorAppFolder = host.artifactsRoot + "AtomicEditor/";
+
+namespace('build', function() {
+
+  // Builds a standalone Atomic Editor, which can be distributed out of build tree
+  task('atomiceditor', {
+    async: true
+  }, function() {
+
+    // Clean build
+    var cleanBuild = true;
+    if (cleanBuild) {
+      common.cleanCreateDir(buildDir);
+      common.cleanCreateDir(editorAppFolder);
+      common.cleanCreateDir(host.getGenScriptRootDir("WINDOWS"));
+    }
+
+    // create the generated script files, so they will be picked up by cmake
+    host.createGenScriptFiles("WINDOWS");
+
+    process.chdir(buildDir);
+
+    var cmds = [];
+
+    // Build the AtomicEditor
+    cmds.push(atomicRoot + "Build/Scripts/Windows/CompileAtomicEditor.bat");
+
+    jake.exec(cmds, function() {
+
+      // Copy the Editor binaries
+      fs.copySync(buildDir + "Source/AtomicEditor/Release/AtomicEditor.exe",
+        host.artifactsRoot + "AtomicEditor/AtomicEditor.exe");
+      fs.copySync(buildDir + "Source/AtomicEditor/Release/D3DCompiler_47.dll",
+        host.artifactsRoot + "AtomicEditor/D3DCompiler_47.dll");
+
+      // We need some resources to run
+      fs.copySync(atomicRoot + "Resources/CoreData",
+        editorAppFolder + "Resources/CoreData");
+
+      fs.copySync(atomicRoot + "Resources/PlayerData",
+        editorAppFolder + "Resources/PlayerData");
+
+      fs.copySync(atomicRoot + "Data/AtomicEditor",
+        editorAppFolder + "Resources/ToolData");
+
+      fs.copySync(atomicRoot + "Resources/EditorData",
+        editorAppFolder + "Resources/EditorData");
+
+      fs.copySync(atomicRoot + "Artifacts/Build/Resources/EditorData/AtomicEditor/EditorScripts",
+        editorAppFolder + "Resources/EditorData/AtomicEditor/EditorScripts");
+
+      console.log("Atomic Editor build to ", editorAppFolder);
+
+      complete();
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+  // Generate a Visual Studio 2015 solution
+  task('genvs2015', {
+    async: true
+  }, function() {
+
+    var slnRoot = path.resolve(atomicRoot, "") + "-VS2015\\";
+
+    if (!fs.existsSync(slnRoot)) {
+        jake.mkdirP(slnRoot);
+    }
+
+    // create the generated script files, so they will be picked up by cmake
+    host.createGenScriptFiles("WINDOWS");
+
+    process.chdir(slnRoot);
+
+    var cmds = [];
+
+    cmds.push(atomicRoot + "Build/Scripts/Windows/GenerateVS2015.bat");
+
+    jake.exec(cmds, function() {
+
+      var task = jake.Task['build:genscripts']
+
+      task.addListener('complete', function () {
+          console.log("\n\nVisual Studio Solution generated in ", slnRoot);
+          complete();
+        });
+
+      task.invoke("WINDOWS");
+
+    }, {
+      printStdout: true
+    });
+
+  });
+
+}); // end of build namespace

+ 12 - 0
Build/Scripts/Host.js

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

+ 142 - 0
Build/Scripts/HostCommon.js

@@ -0,0 +1,142 @@
+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');
+
+/// Returns a list of all script packages, regardless of platform
+function getScriptPackages() {
+
+  var srcpath = atomicRoot + "Script/Packages/";
+
+  return fs.readdirSync(srcpath).filter(function(file) {
+    return fs.statSync(path.join(srcpath, file)).isDirectory() && fs.existsSync(srcpath + "/" + file + "/Package.json");
+  });
+
+}
+
+// return an object with package name keys and module name lists as values
+function getScriptModules(platform) {
+
+  modules = {};
+
+  var packages = getScriptPackages();
+
+  for (var i in packages) {
+
+    var pkg = JSON.parse(fs.readFileSync(atomicRoot + "Script/Packages/" + packages[i] + "/Package.json"));
+
+    if (pkg.platforms && pkg.platforms.indexOf(platform) == -1)
+      continue;
+
+    for (var j in pkg.modules) {
+
+      var moduleName = pkg.modules[j];
+
+      if (pkg.moduleExclude && pkg.moduleExclude[platform])
+        if (pkg.moduleExclude[platform].indexOf(moduleName) != -1)
+          continue;
+
+      if (!modules[pkg.name])
+        modules[pkg.name] = [];
+
+      modules[pkg.name].push(moduleName);
+    }
+
+  }
+
+  return modules;
+
+}
+
+function getGenScriptRootDir(platform) {
+
+  return atomicRoot + "Artifacts/Build/Source/Generated/" + platform + "/";
+
+}
+
+// Get a list of script source filenames for a given platform
+function getGenScriptFilenames(platform) {
+
+  var filenames = [];
+
+  var scriptGenRoot = getGenScriptRootDir(platform);
+
+  var modules = getScriptModules(platform);
+
+  for (var pkgName in modules) {
+
+    var jsPackageFolder = scriptGenRoot + "Javascript/Packages/" + pkgName + "/";
+
+    // the JS package sources
+    filenames.push(jsPackageFolder + "JSPackage" + pkgName + ".cpp");
+
+    for (var i in modules[pkgName]) {
+      filenames.push(jsPackageFolder + "JSModule" + modules[pkgName][i] + ".cpp");
+    }
+
+  }
+
+  return filenames;
+
+}
+
+function createGenScriptFiles(platform) {
+
+  var scriptFiles = getGenScriptFilenames(platform);
+
+  for (var i in scriptFiles) {
+
+    fs.ensureFileSync(scriptFiles[i]);
+
+  }
+
+}
+
+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;
+exports.getScriptPackages = getScriptPackages;
+exports.getScriptModules = getScriptModules;
+exports.getGenScriptFilenames = getGenScriptFilenames;
+exports.createGenScriptFiles = createGenScriptFiles;
+exports.getGenScriptRootDir = getGenScriptRootDir;

+ 6 - 0
Build/Scripts/HostMac.js

@@ -0,0 +1,6 @@
+
+common = require("./HostCommon");
+
+// forward exports
+exports = module.exports = common;
+exports.atomicTool = exports.artifactsRoot + "Build/AtomicTool/AtomicTool";

+ 5 - 0
Build/Scripts/HostWindows.js

@@ -0,0 +1,5 @@
+common = require("./HostCommon");
+
+// forward exports
+exports = module.exports = common;
+exports.atomicTool = exports.artifactsRoot + "Build/AtomicTool/AtomicTool.exe";

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

@@ -0,0 +1,3 @@
+SET PATH=%ANDROID_NDK%\prebuilt\windows\bin\;%PATH%
+cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=../../../Build/CMake/Toolchains/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../../
+%ANDROID_NDK%\prebuilt\windows\bin\make.exe -j4

+ 4 - 0
Build/Scripts/Windows/CompileAtomicEditor.bat

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

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

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

+ 0 - 1
BuildAtomic.bat

@@ -1 +0,0 @@
-Build\Windows\node\node.exe Build\node_modules\jake\bin\cli.js Jakefile package:windows

+ 0 - 2
BuildAtomic.sh

@@ -1,2 +0,0 @@
-#!/bin/sh
-./Build/Mac/node/node ./Build/node_modules/jake/bin/cli.js Jakefile package:macosx

+ 8 - 0
Build_AtomicEditor.bat

@@ -0,0 +1,8 @@
+@ECHO OFF
+@echo:
+@echo:
+ECHO Building Atomic Editor, this process will take a few minutes
+@echo:
+@echo:
+PAUSE
+Build\Windows\node\node.exe Build\node_modules\jake\bin\cli.js -f ./Build/Scripts/Bootstrap.js build:atomiceditor

+ 2 - 0
Build_AtomicEditor.sh

@@ -0,0 +1,2 @@
+#!/bin/sh
+./Build/Mac/node/node ./Build/node_modules/jake/bin/cli.js -f ./Build/Scripts/Bootstrap.js build:atomiceditor

+ 0 - 55
CMake/Modules/AtomicNET.cmake

@@ -1,55 +0,0 @@
-
-if (ATOMIC_DOTNET_DEV)
-add_definitions ( -DATOMIC_DOTNET )
-endif ()
-
-set (CSATOMICNATIVEDIR "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/Atomic/Native")
-set (CSATOMICPLAYERNATIVEDIR "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/AtomicPlayer/Native")
-set (CSATOMICNETNATIVEDIR "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/AtomicNET/Native")
-
-# Create the binding files ahead of time, so they are picked up with glob
-
-set (CSFILES CSModuleAtomic2D.cpp;CSModuleAtomic3D.cpp;CSModuleAudio.cpp;CSModuleContainer.cpp;CSModuleCore.cpp;
-             CSModuleEngine.cpp;CSModuleEnvironment.cpp;CSModuleGraphics.cpp;CSModuleInput.cpp;
-             CSModuleIO.cpp;CSModuleJavascript.cpp;CSModuleMath.cpp;CSModuleNavigation.cpp;
-             CSModuleNetwork.cpp;CSModulePhysics.cpp;CSModuleResource.cpp;CSPackageAtomic.cpp;
-             CSModuleScene.cpp;CSModuleUI.cpp;CSPackageAtomic.h;CSModuleAtomicNET.cpp)
-
-set (CSATOMICPLAYERFILES CSModulePlayer.cpp;CSPackageAtomicPlayer.cpp;CSPackageAtomicPlayer.h)
-
-set (CSATOMICNETFILES CSModuleNETCore.cpp;CSModuleNETScript.cpp;CSPackageAtomicNET.cpp;CSPackageAtomicNET.h)
-
-foreach(CSFILE ${CSFILES})
-
-  set (CSFILEPATH "${CSATOMICNATIVEDIR}/${CSFILE}")
-
-  if (NOT EXISTS ${CSFILEPATH})
-    file(WRITE "${CSFILEPATH}" "// will be created by AtomicTool")
-  endif()
-
-endforeach()
-
-foreach(CSFILE ${CSATOMICPLAYERFILES})
-
-  set (CSFILEPATH "${CSATOMICPLAYERNATIVEDIR}/${CSFILE}")
-
-  if (NOT EXISTS ${CSFILEPATH})
-    file(WRITE "${CSFILEPATH}" "// will be created by AtomicTool")
-  endif()
-
-endforeach()
-
-foreach(CSFILE ${CSATOMICNETFILES})
-
-  set (CSFILEPATH "${CSATOMICNETNATIVEDIR}/${CSFILE}")
-
-  if (NOT EXISTS ${CSFILEPATH})
-    file(WRITE "${CSFILEPATH}" "// will be created by AtomicTool")
-  endif()
-
-endforeach()
-
-
-file (GLOB CSHARP_BINDINGS_SOURCE ${CSATOMICNATIVEDIR}/*.cpp ${CSATOMICNATIVEDIR}/*.h)
-file (GLOB CSHARPATOMICPLAYER_BINDINGS_SOURCE ${CSATOMICPLAYERNATIVEDIR}/*.cpp ${CSATOMICPLAYERNATIVEDIR}/*.h)
-file (GLOB CSHARPATOMICNET_BINDINGS_SOURCE ${CSATOMICNETNATIVEDIR}/*.cpp ${CSATOMICNETNATIVEDIR}/*.h)

+ 1 - 1
CMakeLists.txt

@@ -3,7 +3,7 @@ project (Atomic)
 
 
 cmake_minimum_required (VERSION 2.8)
 cmake_minimum_required (VERSION 2.8)
 
 
-set (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/Modules)
+set (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/Build/CMake/Modules)
 
 
 include(AtomicUtils)
 include(AtomicUtils)
 
 

+ 8 - 0
CMake_VS2015.bat

@@ -0,0 +1,8 @@
+@ECHO OFF
+@echo:
+@echo:
+ECHO Generating Visual Studio Solution, this process will take a few minutes
+@echo:
+@echo:
+PAUSE
+Build\Windows\node\node.exe Build\node_modules\jake\bin\cli.js -f ./Build/Scripts/Bootstrap.js build:genvs2015

+ 2 - 0
CMake_XCode.sh

@@ -0,0 +1,2 @@
+#!/bin/sh
+./Build/Mac/node/node ./Build/node_modules/jake/bin/cli.js -f ./Build/Scripts/Bootstrap.js build:genxcode --trace

+ 0 - 602
Jakefile

@@ -1,602 +0,0 @@
-// patch in our local node_modules
-process.env.NODE_PATH = __dirname + "/Build/node_modules";
-require('module').Module._initPaths();
-
-var fs = require('fs-extra');
-var path = require('path');
-var os = require('os');
-
-var host = os.platform();
-var jakeRoot = __dirname;
-var jenkinsBuild = process.env.ATOMIC_JENKINS_BUILD == 1
-var generateJSDoc = true;
-
-var artifactsFolder = jakeRoot + "/Artifacts";
-
-// cmake
-var cmakeDevBuild = false;
-
-var includeDeployments = jenkinsBuild;
-
-var deployments = {
-  osx: true,
-  android: true,
-  windows: true,
-  ios: true,
-  web: true
-}
-
-// build folder
-var windowsBuildFolder = artifactsFolder + "/Windows_Build";
-var macOSXBuildFolder = artifactsFolder + "/MacOSX_Build";
-var androidBuildFolder = artifactsFolder + "/Android_Build";
-var iosBuildFolder = artifactsFolder + "/IOS_Build";
-var iosDeployBuildFolder = artifactsFolder + "/ios-deploy";
-var webBuildFolder = artifactsFolder + "/Web_Build";
-var linuxBuildFolder = artifactsFolder + "/Linux_Build";
-var jsDocFolder = artifactsFolder + "/JSDoc";
-var atomicNETFolder = artifactsFolder + "/AtomicNET";
-
-// binaries
-
-if (host == "darwin") {
-  var atomicToolBinary = macOSXBuildFolder + "/Source/AtomicTool/Release/AtomicTool"
-  var atomicEditorBinary = macOSXBuildFolder + "/Source/AtomicEditor/Release/AtomicEditor.app/Contents/MacOS/AtomicEditor"
-  var atomicPlayerBinary = macOSXBuildFolder + "/Source/AtomicPlayer/Application/Release/AtomicPlayer.app/Contents/MacOS/AtomicPlayer"
-} else if (host == "win32") {
-  var atomicToolBinary = windowsBuildFolder + "/Source/AtomicTool/Release/AtomicTool.exe"
-  var atomicEditorBinary = windowsBuildFolder + "/Source/AtomicEditor/Release/AtomicEditor.exe"
-  var atomicPlayerBinary = windowsBuildFolder + "/Source/AtomicPlayer/Application/Release/AtomicPlayer.exe"
-}
-
-// source files
-var androidPlayerBinary = androidBuildFolder + "/Source/AtomicPlayer/Application/libAtomicPlayer.so";
-var iosPlayerBinary = iosBuildFolder + "/Source/AtomicPlayer/Application/Release-iphoneos/AtomicPlayer.app/AtomicPlayer"
-var webPlayerBinary = webBuildFolder + "/Source/AtomicPlayer/Application/AtomicPlayer.js"
-var webPlayerMemFile = webBuildFolder + "/Source/AtomicPlayer/Application/AtomicPlayer.html.mem"
-
-var allBuildFolders = [
-  windowsBuildFolder,
-  macOSXBuildFolder,
-  androidBuildFolder,
-  iosBuildFolder,
-  iosDeployBuildFolder,
-  webBuildFolder,
-  linuxBuildFolder,
-  jsDocFolder,
-  atomicNETFolder
-];
-
-// packaging
-var platformBinariesFolder = artifactsFolder + "/Platform_Binaries";
-var windowsPackageFolder = artifactsFolder + "/Windows_Package";
-var macOSXPackageFolder = artifactsFolder + "/MacOSX_Package";
-var distFolder = artifactsFolder + "/Dist";
-
-var allPackageFolders = [
-  windowsPackageFolder,
-  macOSXPackageFolder,
-  platformBinariesFolder,
-  distFolder
-];
-
-function getAtomicDevBuildDefine() {
-
-  return "-DATOMIC_DEV_BUILD=" + (cmakeDevBuild ? "1" : "0");
-
-}
-
-function testRemoveDir(path) {
-
-  if (fs.existsSync(path)) {
-    jake.rmRf(path);
-  }
-
-  if (fs.existsSync(path)) {
-
-    throw "Unable to remove path: " + path;
-
-  }
-}
-
-namespace('clean', function() {
-
-  task('all', {
-    async: true
-  }, function() {
-
-    for (var i in allBuildFolders) {
-      testRemoveDir(allBuildFolders[i]);
-    }
-
-    for (var i in allPackageFolders) {
-      testRemoveDir(allPackageFolders[i]);
-    }
-
-    complete();
-
-  });
-});
-
-namespace('build', function() {
-
-  task('atomictool', {
-    async: true
-  }, function() {
-
-    if (host == "darwin") {
-
-      if (!fs.existsSync(macOSXBuildFolder)) {
-        jake.mkdirP(macOSXBuildFolder);
-      }
-
-      var cmds = [
-        'cmake ../../ -G Xcode ' + getAtomicDevBuildDefine(),
-        'xcodebuild -target AtomicTool -configuration Release'
-      ]
-
-      process.chdir(macOSXBuildFolder);
-
-      jake.exec(cmds, function() {
-
-        fs.copySync(atomicToolBinary, platformBinariesFolder + "/MacOSX/" + path.basename(atomicToolBinary));
-        console.log("Built MacOSX AtomicTool");
-        complete();
-      }, {
-        printStdout: true
-      });
-
-  } else {
-
-    if (!fs.existsSync(windowsBuildFolder)) {
-      jake.mkdirP(windowsBuildFolder);
-    }
-
-    process.chdir(windowsBuildFolder);
-
-    jake.exec(jakeRoot + "/Build/Windows/CompileAtomicTool.bat", function() {
-
-      fs.copySync(atomicToolBinary, platformBinariesFolder + "/Win32/" + path.basename(atomicToolBinary));
-      console.log("Built Windows AtomicTool");
-      complete();
-
-    }, {
-      printStdout: true
-    });
-
-  }
-
-  }); // end build:atomictool
-
-  var deps = [];
-
-  if (includeDeployments) {
-
-    if (host == 'darwin') {
-
-      deps = ['atomictool'];
-
-      if (deployments.ios)
-        deps.push("build:ios");
-
-      if (deployments.android)
-        deps.push("build:android");
-
-      if (deployments.web)
-        deps.push("build:web");
-
-    }
-
-  }
-
-  task('install_deployments', {
-    async: true
-  }, function() {
-
-    console.log("Installing Deployments");
-
-    // deployment root for local dev builds
-    var deployRoot = jakeRoot + "/Data/AtomicEditor/Deployment";
-
-    if (host == "darwin") {
-
-      if (deployments.osx)
-        fs.copySync(platformBinariesFolder + "/MacOSX/AtomicPlayer", deployRoot + "/MacOS/AtomicPlayer.app/Contents/MacOS/AtomicPlayer");
-
-      if (deployments.android)
-        fs.copySync(platformBinariesFolder + "/Android/libAtomicPlayer.so", deployRoot + "/Android/libs/armeabi-v7a/libAtomicPlayer.so");
-
-      if (deployments.ios) {
-        fs.copySync(artifactsFolder + "/ios-deploy/ios-deploy/ios-deploy", deployRoot + "/IOS/ios-deploy/ios-deploy");
-        fs.copySync(platformBinariesFolder + "/IOS/AtomicPlayer", deployRoot + "/IOS/AtomicPlayer.app/AtomicPlayer");
-      }
-
-      if (deployments.web) {
-        fs.copySync(platformBinariesFolder + "/Web/AtomicPlayer.js", deployRoot + "/Web/AtomicPlayer.js");
-        fs.copySync(platformBinariesFolder + "/Web/AtomicPlayer.html.mem", deployRoot + "/Web/AtomicPlayer.html.mem");
-      }
-
-    } else if (host == "win32") {
-
-      if (deployments.windows) {
-        fs.copySync(platformBinariesFolder + "/Win32/AtomicPlayer.exe", deployRoot + "/Windows/x64/AtomicPlayer.exe");
-      }
-
-    }
-
-    complete();
-
-  });
-
-  task('ios_deploy', {
-    async: true
-  }, function() {
-
-    if (!fs.existsSync(iosDeployBuildFolder)) {
-      jake.mkdirP(iosDeployBuildFolder);
-    }
-
-    process.chdir(iosDeployBuildFolder);
-
-    if (!fs.existsSync(iosDeployBuildFolder + "/ios-deploy")) {
-      jake.exec("git clone https://github.com/AtomicGameEngine/ios-deploy && cd ios-deploy && make ios-deploy");
-    }
-
-    complete();
-
-  });
-
-
-  task('macosx', deps, {
-    async: true
-  }, function() {
-
-    if (!fs.existsSync(macOSXBuildFolder)) {
-      jake.mkdirP(macOSXBuildFolder);
-    }
-
-    var cmds = [
-      'cmake ../../ -G Xcode ' + getAtomicDevBuildDefine(),
-      'xcodebuild -configuration Release'
-    ]
-
-    process.chdir(macOSXBuildFolder);
-
-    jake.exec(cmds, function() {
-      fs.copySync(atomicEditorBinary, platformBinariesFolder + "/MacOSX/" + path.basename(atomicEditorBinary));
-      fs.copySync(atomicPlayerBinary, platformBinariesFolder + "/MacOSX/" + path.basename(atomicPlayerBinary));
-
-      if (includeDeployments) {
-        jake.Task['build:install_deployments'].invoke();
-      }
-
-      console.log("Built MacOSX");
-      complete();
-    }, {
-      printStdout: true
-    });
-
-  }); // end build:macosx
-
-  task('windows', {
-    async: true
-  }, function() {
-
-    if (!fs.existsSync(windowsBuildFolder)) {
-      jake.mkdirP(windowsBuildFolder);
-    }
-
-    process.chdir(windowsBuildFolder);
-
-    jake.exec(jakeRoot + "/Build/Windows/Compile.bat", function() {
-
-      fs.copySync(atomicEditorBinary, platformBinariesFolder + "/Win32/" + path.basename(atomicEditorBinary));
-      fs.copySync(atomicPlayerBinary, platformBinariesFolder + "/Win32/" + path.basename(atomicPlayerBinary));
-
-      if (includeDeployments) {
-        jake.Task['build:install_deployments'].invoke();
-      }
-
-      complete();
-
-    }, {
-      printStdout: true
-    });
-
-  });
-
-  task('android', ['atomictool'], {
-    async: true
-  }, function() {
-
-    if (!fs.existsSync(androidBuildFolder)) {
-      jake.mkdirP(androidBuildFolder);
-    }
-
-    process.chdir(androidBuildFolder);
-
-    var cmds = [
-      atomicToolBinary + " bind " + jakeRoot + " Script/Packages/Atomic/ ANDROID",
-      atomicToolBinary + " bind " + jakeRoot + " Script/Packages/AtomicPlayer/ ANDROID"
-    ];
-
-    if (host == "darwin") {
-
-      cmds.push("cmake -G \"Unix Makefiles\" -DCMAKE_TOOLCHAIN_FILE=" + jakeRoot + "/CMake/Toolchains/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../");
-      cmds.push("make -j4");
-
-      jake.exec(cmds, function() {
-        fs.copySync(androidPlayerBinary, platformBinariesFolder + "/Android/" + path.basename(androidPlayerBinary));
-        console.log("Built Android Player");
-        complete();
-      }, {
-        printStdout: true
-      });
-    } else {
-
-      cmds.push(jakeRoot + "/Build/Windows/CompileAndroid.bat");
-
-      jake.exec(cmds, function() {
-
-        fs.copySync(androidPlayerBinary, platformBinariesFolder + "/Android/" + path.basename(androidPlayerBinary));
-
-        // sneak this in here, need to sort deployments for local dev builds
-        var deployRoot = jakeRoot + "/Data/AtomicEditor/Deployment";
-        fs.copySync(androidPlayerBinary, deployRoot + "/Android/libs/armeabi-v7a/libAtomicPlayer.so");
-
-        console.log("Built Android Player");
-        complete();
-
-      }, {
-        printStdout: true
-      });
-
-    }
-
-  });
-
-  task('ios', ['atomictool', 'ios_deploy'], {
-    async: true
-  }, function() {
-
-    if (!fs.existsSync(iosBuildFolder)) {
-      jake.mkdirP(iosBuildFolder);
-    }
-
-    process.chdir(iosBuildFolder);
-
-    var cmds = [
-      atomicToolBinary + " bind " + jakeRoot + " Script/Packages/Atomic/ IOS",
-      atomicToolBinary + " bind " + jakeRoot + " Script/Packages/AtomicPlayer/ IOS",
-      "cmake -DIOS=1 -G Xcode ../../"
-    ]
-
-    if (jenkinsBuild) {
-
-      cmds.push("security -v list-keychains -d system -s /Users/jenkins/Library/Keychains/codesign.keychain");
-      cmds.push("security -v unlock-keychain /Users/jenkins/Library/Keychains/codesign.keychain");
-
-    }
-
-    cmds.push("xcodebuild -configuration Release");
-
-    jake.exec(cmds, function() {
-      fs.copySync(iosPlayerBinary, platformBinariesFolder + "/IOS/" + path.basename(iosPlayerBinary));
-      console.log("Built iOS Player");
-      complete();
-    }, {
-      printStdout: true
-    });
-
-  });
-
-
-  task('web', ['atomictool'], {
-    async: true
-  }, function() {
-
-    if (!fs.existsSync(webBuildFolder)) {
-      jake.mkdirP(webBuildFolder);
-    }
-
-    process.chdir(webBuildFolder);
-
-    var cmds = [
-      atomicToolBinary + " bind " + jakeRoot + " Script/Packages/Atomic/ WEB",
-      atomicToolBinary + " bind " + jakeRoot + " Script/Packages/AtomicPlayer/ WEB",
-      "cmake -DEMSCRIPTEN=1 -DATOMIC_BUILD_2D=1 -DCMAKE_TOOLCHAIN_FILE=" + jakeRoot + "/CMake/Toolchains/emscripten.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../",
-      "make -j4",
-      "cd ./Source/AtomicPlayer/Application && mv ./AtomicPlayer ./AtomicPlayer.bc && " +
-      // -s ERROR_ON_UNDEFINED_SYMBOLS=1 (disabled for pthread errors currently on incoming)
-      "emcc -O3 -s USE_PTHREADS=0 -s ASM_JS=1 -s VERBOSE=0 -s USE_SDL=2 -s TOTAL_MEMORY=134217728 -s AGGRESSIVE_VARIABLE_ELIMINATION=1 -s NO_EXIT_RUNTIME=1 ./AtomicPlayer.bc -o  ./AtomicPlayer.html"
-
-    ]
-
-    jake.exec(cmds, function() {
-      fs.copySync(webPlayerBinary, platformBinariesFolder + "/Web/" + path.basename(webPlayerBinary));
-      fs.copySync(webPlayerMemFile, platformBinariesFolder + "/Web/" + path.basename(webPlayerMemFile));
-      console.log("Built Web Player");
-      complete();
-    }, {
-      printStdout: true
-    });
-
-  });
-
-
-}); // end build namespace
-
-namespace('package', function() {
-
-  task('genjsdocs', {
-    async: true
-  }, function() {
-
-    if (!jenkinsBuild || !generateJSDoc) {
-      complete();
-      return;
-    }
-
-    console.log("Generating JSDocs");
-
-    fs.copySync(jakeRoot + "/Docs/Readme.md", jsDocFolder + "/Readme.md");
-    fs.copySync(jakeRoot + "/Docs/jsdoc.conf", jsDocFolder + "/jsdoc.conf");
-
-    cmds = ["cd " + jsDocFolder + " && npm install git+https://github.com/jsdoc3/jsdoc",
-      "cd " + jsDocFolder + " && git clone https://github.com/AtomicGameEngine/jaguarjs-jsdoc && cd jaguarjs-jsdoc && git checkout atomic_master",
-      "cd " + jsDocFolder + " && ./node_modules/.bin/jsdoc ./Atomic.js -t ./jaguarjs-jsdoc/ -c ./jsdoc.conf Readme.md",
-    ];
-
-    jake.exec(cmds, function() {
-
-      complete();
-
-    }, {
-      printStdout: true
-    });
-
-  });
-
-  task('macosx', ['clean:all', 'build:macosx', 'package:genjsdocs'], function() {
-
-    if (!fs.existsSync(distFolder)) {
-      jake.mkdirP(distFolder);
-    }
-
-    jake.mkdirP(macOSXPackageFolder + "/AtomicEditor.app/Contents/Resources/");
-
-    var editorAppSourceFolder = macOSXBuildFolder + "/Source/AtomicEditor/Release/AtomicEditor.app";
-
-    fs.copySync(editorAppSourceFolder, macOSXPackageFolder + "/AtomicEditor.app");
-
-    // copy resources
-
-    fs.copySync(jakeRoot + "/Resources/CoreData", macOSXPackageFolder + "/AtomicEditor.app/Contents/Resources/CoreData");
-    fs.copySync(jakeRoot + "/Resources/EditorData", macOSXPackageFolder + "/AtomicEditor.app/Contents/Resources/EditorData");
-    fs.copySync(jakeRoot + "/Resources/PlayerData", macOSXPackageFolder + "/AtomicEditor.app/Contents/Resources/PlayerData");
-
-    var toolDataDir = macOSXPackageFolder + "/AtomicEditor.app/Contents/Resources/ToolData/";
-
-    fs.copySync(jakeRoot + "/Data/AtomicEditor/", toolDataDir);
-
-    if (jenkinsBuild) {
-
-      console.log("Exporting AtomicExamples Repo (master) & Generating Dist");
-
-      if (generateJSDoc) {
-
-        fs.copySync(jsDocFolder + "/out", toolDataDir + "Docs/JSDocs");
-
-      }
-
-      cmds = ["git clone https://github.com/AtomicGameEngine/AtomicExamples " + toolDataDir + "AtomicExamples && rm -rf " + toolDataDir + "AtomicExamples/.git",
-        "cd " + macOSXPackageFolder + " && zip -r -X " + distFolder + "/AtomicEditor_MacOSX.zip ./AtomicEditor.app"
-      ];
-
-      jake.exec(cmds, function() {});
-    }
-
-  });
-
-  task('windows', ['clean:all','build:windows'], function() {
-
-    if (!fs.existsSync(distFolder)) {
-      jake.mkdirP(distFolder);
-    }
-
-    console.log("Packaging Windows Editor");
-
-    jake.mkdirP(windowsPackageFolder + "/Resources");
-
-    fs.copySync(windowsBuildFolder + "/Source/AtomicEditor/Release/AtomicEditor.exe", windowsPackageFolder + "/AtomicEditor.exe")
-
-    // 64 bit build for packaging!
-
-    fs.copySync(jakeRoot + "/Build/Windows/Binaries/x64/D3DCompiler_47.dll", windowsPackageFolder + "/D3DCompiler_47.dll")
-
-    // copy resources
-
-    fs.copySync(jakeRoot + "/Resources/CoreData", windowsPackageFolder + "/Resources/CoreData");
-    fs.copySync(jakeRoot + "/Resources/EditorData", windowsPackageFolder + "/Resources/EditorData");
-    fs.copySync(jakeRoot + "/Resources/PlayerData", windowsPackageFolder + "/Resources/PlayerData");
-    fs.copySync(jakeRoot + "/Data/AtomicEditor/", windowsPackageFolder + "/Resources/ToolData");
-
-    // AtomicNET
-    // fs.copySync(jakeRoot + "/Submodules/CoreCLR/Windows/Release", windowsPackageFolder + "/Resources/AtomicNET/Windows/");
-    // fs.copySync(jakeRoot + "/Artifacts/AtomicNET", windowsPackageFolder + "/Resources/AtomicNET/Windows/Atomic");
-
-    fs.copySync(jakeRoot + "/Build/Windows/Binaries/x86/D3DCompiler_47.dll", windowsPackageFolder + "/Resources/ToolData/Deployment/Windows/x86/D3DCompiler_47.dll");
-    fs.copySync(jakeRoot + "/Build/Windows/Binaries/x64/D3DCompiler_47.dll", windowsPackageFolder + "/Resources/ToolData/Deployment/Windows/x64/D3DCompiler_47.dll");
-
-    if (jenkinsBuild) {
-
-      cmds = [jakeRoot + "/Build/Windows/7z/7z.exe a -tzip " + distFolder + "/AtomicEditor_Windows.zip " + windowsPackageFolder]
-
-      jake.exec(cmds, function() {});
-
-    }
-
-  });
-
-  // We have the windows and mac editors builds, now we need to merge them
-  task('merge_editor_data', [], function() {
-
-    var mergeFolder = distFolder + "/EditorMerge";
-
-    if (!fs.existsSync(mergeFolder)) {
-      jake.mkdirP(mergeFolder);
-    }
-
-    if (!fs.existsSync(mergeFolder + "/snapshots")) {
-      jake.mkdirP(mergeFolder + "/snapshots");
-    }
-
-    fs.copySync(distFolder + "/AtomicEditor_MacOSX.zip", mergeFolder + "/AtomicEditor_MacOSX.zip");
-    fs.copySync(windowsPackageFolder + "/Artifacts/Dist/AtomicEditor_Windows.zip", mergeFolder + "/AtomicEditor_Windows.zip");
-
-    process.chdir(mergeFolder);
-
-    cmds = ["unzip ./AtomicEditor_MacOSX.zip && unzip ./AtomicEditor_Windows.zip"]
-
-    jake.exec(cmds, function() {
-
-      var winRoot = mergeFolder + "/Windows_Package/Resources";
-      var macRoot = mergeFolder + "/AtomicEditor.app/Contents/Resources";
-
-      var filenames = [
-        "/ToolData/Deployment/Android/libs/armeabi-v7a/libAtomicPlayer.so",
-        "/ToolData/Deployment/MacOS/AtomicPlayer.app",
-        "/ToolData/Deployment/Web/AtomicPlayer.js",
-        "/ToolData/Deployment/Web/AtomicPlayer.html.mem",
-        "/ToolData/AtomicExamples",
-        "/ToolData/Docs",
-      ];
-
-      // Mac Editor -> Windows Editor
-      for (var i in filenames) {
-          fs.copySync(macRoot + filenames[i], winRoot + filenames[i]);
-      }
-
-      // Windows Editor ->Mac Editor
-      filenames = ["/ToolData/Deployment/Windows/x86/D3DCompiler_47.dll",
-        "/ToolData/Deployment/Windows/x86/AtomicPlayer.exe",
-      ];
-
-      for (var i in filenames) {
-          fs.copySync(winRoot + filenames[i], macRoot + filenames[i]);
-      }
-
-      zipcmds = [
-        "rev=`git rev-parse HEAD` && zip -r -X ./snapshots/AtomicEditor_MacOSX_DevSnapshot_$rev.zip ./AtomicEditor.app",
-        "rev=`git rev-parse HEAD` && zip -r -X ./snapshots/AtomicEditor_Win32_DevSnapshot_$rev.zip ./Windows_Package",
-        "cp ./snapshots/*.zip /Users/jenge/Share/Temp/AtomicEditor_DevSnapshots/"
-      ]
-
-      jake.exec(zipcmds, function() {});
-
-    });
-
-  });
-
-
-});

+ 0 - 0
CONTRIBUTION_LICENSE.md → Licenses/CONTRIBUTION_LICENSE.md


+ 0 - 0
LICENSE_ATOMIC_EDITOR_AND_TOOLS.md → Licenses/LICENSE_ATOMIC_EDITOR_AND_TOOLS.md


+ 0 - 0
LICENSE_ATOMIC_RUNTIME.md → Licenses/LICENSE_ATOMIC_RUNTIME.md


+ 781 - 781
LICENSE_THIRDPARTY.md → Licenses/LICENSE_THIRDPARTY.md

@@ -1,781 +1,781 @@
-
-### Third Party Technology Licenses and Copyrights
-
-This file contains information for third party technology used in the Atomic Game Engine
-
-Please see the The Atomic Game Engine™ Runtime EULA & Atomic Game Engine™ Editor and Tools EULA for additional licensing information.
-
-#### [The Atomic Game Engine™ Runtime EULA (MIT)](https://github.com/AtomicGameEngine/AtomicRuntime/blob/master/LICENSE_ATOMIC_RUNTIME.md)
-
-#### [The Atomic Game Engine™ Editor and Tools EULA](https://github.com/AtomicGameEngine/AtomicGameEngine/blob/master/LICENSE_ATOMIC_EDITOR_AND_TOOLS.md)
-
-### Third Party Licenses
--------------------------------------------------------------------
-
-#### Urho3D license
---------------
-
-Copyright (c) 2008-2014 the Urho3D project. (http://urho3d.github.io)
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-#### Duktape License
----------------
-
-Copyright (c) 2013-2015
-Sami Vaarala, Niki Dobrev, Andreas Öman, László Langó
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-#### TurboBadger license
--------------------
-
-This software is provided 'as-is', without any express or implied warranty. In no
-event will the authors be held liable for any damages arising from the use of this
-software.
-
-Permission is granted to anyone to use this software for any purpose, including
-commercial applications, and to alter it and redistribute it freely, subject to the
-following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not claim
-  that you wrote the original software. If you use this software in a product,
-  an acknowledgment in the product documentation would be appreciated but is not
-  required.
-
-  2. Altered source versions must be plainly marked as such, and must not be
-  misrepresented as being the original software.
-
-  3. This notice may not be removed or altered from any source distribution.
-
-#### SQLite license
---------------
-All of the code and documentation in SQLite has been dedicated to the public domain
-by the authors. All code authors, and representatives of the companies they work for,
-have signed affidavits dedicating their contributions to the public domain and originals
-of those signed affidavits are stored in a firesafe at the main offices of Hwaci.
-Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original
-SQLite code, either in source code form or as a compiled binary, for any purpose,
-commercial or non-commercial, and by any means.
-
-
-#### Open Asset Import Library license
----------------------------------
-
-Open Asset Import Library (Assimp)
-
-
-Copyright (c) 2006-2010, Assimp Development Team
-All rights reserved.
-
-Redistribution and use of this software in source and binary forms,
-with or without modification, are permitted provided that the
-following conditions are met:
-
-* Redistributions of source code must retain the above
-  copyright notice, this list of conditions and the
-  following disclaimer.
-
-* Redistributions in binary form must reproduce the above
-  copyright notice, this list of conditions and the
-  following disclaimer in the documentation and/or other
-  materials provided with the distribution.
-
-* Neither the name of the ASSIMP team, nor the names of its
-  contributors may be used to endorse or promote products
-  derived from this software without specific prior
-  written permission of the ASSIMP Development Team.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-#### Box2D license
--------------
-
-Copyright (c) 2006-2013 Erin Catto http://www.gphysics.com
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
-claim that you wrote the original software. If you use this software
-in a product, an acknowledgment in the product documentation would be
-appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
-misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
-
-#### Bullet license
---------------
-
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the
-use of this software.
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it freely,
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim
-that you wrote the original software. If you use this software in a product,
-an acknowledgment in the product documentation would be appreciated but is not
-required.
-2. Altered source versions must be plainly marked as such, and must not be
-misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
-
-#### Civetweb license
-----------------
-
-Copyright (c) 2004-2012 Sergey Lyubka
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-#### The FreeType Project disclaimer
--------------------------------
-
-Portions of this software are copyright © 2010 The FreeType Project
-(www.freetype.org).  All rights reserved.
-
-
-#### GLEW license
-------------
-
-The OpenGL Extension Wrangler Library
-Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org>
-Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org>
-Copyright (C) 2002, Lev Povalahev
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-* The name of the author may be used to endorse or promote products
-  derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-
-
-#### Mesa 3-D graphics library
-Version:  7.0
-
-Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright (c) 2007 The Khronos Group Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and/or associated documentation files (the
-"Materials"), to deal in the Materials without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Materials, and to
-permit persons to whom the Materials are furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Materials.
-
-THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-
-
-#### kNet license
-------------
-
-Copyright The kNet Project.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-#### libcpuid license
-----------------
-
-Copyright 2008  Veselin Georgiev,
-anrieffNOSPAM @ mgail_DOT.com (convert to gmail)
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-#### LZ4 license
------------
-
-LZ4 - Fast LZ compression algorithm
-Header File
-Copyright (C) 2011-2013, Yann Collet.
-BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-You can contact the author at :
-- LZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html
-- LZ4 source repository : http://code.google.com/p/lz4/
-
-
-#### MojoShader license
-------------------
-
-Copyright (c) 2008-2011 Ryan C. Gordon.
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from
-the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
-claim that you wrote the original software. If you use this software in a
-product, an acknowledgment in the product documentation would be
-appreciated but is not required.
-
-2. Altered source versions must be plainly marked as such, and must not be
-misrepresented as being the original software.
-
-3. This notice may not be removed or altered from any source distribution.
-
-   Ryan C. Gordon <[email protected]>
-
-
-#### Oolong Engine license
----------------------
-
-Oolong Engine for the iPhone / iPod touch
-Copyright (c) 2007-2008 Wolfgang Engel  http://code.google.com/p/oolongengine/
-
-This software is provided 'as-is', without any express or implied warranty
-In no event will the authors be held liable for any damages arising from the
-use of this software. Permission is granted to anyone to use this software for
-any purpose,  including commercial applications, and to alter it and
-redistribute it freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim
-that you wrote the original software. If you use this software in a product, an
-acknowledgment in the product documentation would be appreciated but is not
-required.
-2. Altered source versions must be plainly marked as such, and must not be
-misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
-
-#### pugixml license
----------------
-
-Copyright (c) 2006-2010 Arseny Kapoulkine
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
-#### rapidjson license
----------------
-
-Copyright (C) 2011 Milo Yip
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-#### Recast/Detour license
----------------------
-
-Copyright (c) 2009 Mikko Mononen [email protected]
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
-claim that you wrote the original software. If you use this software
-in a product, an acknowledgment in the product documentation would be
-appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
-misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
-
-#### SDL license
------------
-
-Simple DirectMedia Layer
-Copyright (C) 1997-2012 Sam Lantinga <[email protected]>
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
-   claim that you wrote the original software. If you use this software
-   in a product, an acknowledgment in the product documentation would be
-   appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
-   misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
-
-#### Squish license
---------------
-
-Copyright (c) 2006 Simon Brown                          [email protected]
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-#### StanHull license
-----------------
-
-Copyright (c) 2004 Open Dynamics Framework Group
-      www.physicstools.org
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-
-Redistributions in binary form must reproduce the above copyright notice,
-this list of conditions and the following disclaimer in the documentation
-and/or other materials provided with the distribution.
-
-Neither the name of the Open Dynamics Framework Group nor the names of
-its contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-#### Source-Map license
-----------------
-
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
-  contributors may be used to endorse or promote products derived from this
-  software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-#### WebSocketPP license
-----------------
-
-Main Library:
-
-Copyright (c) 2014, Peter Thorson. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the WebSocket++ Project nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Bundled Libraries:
-
-****** Base 64 Library (base64/base64.hpp) ******
-base64.hpp is a repackaging of the base64.cpp and base64.h files into a
-single header suitable for use as a header only library. This conversion was
-done by Peter Thorson ([email protected]) in 2012. All modifications to
-the code are redistributed under the same license as the original, which is
-listed below.
-
-base64.cpp and base64.h
-
-Copyright (C) 2004-2008 René Nyffenegger
-
-This source code is provided 'as-is', without any express or implied
-warranty. In no event will the author be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this source code must not be misrepresented; you must not
-  claim that you wrote the original source code. If you use this source code
-  in a product, an acknowledgment in the product documentation would be
-  appreciated but is not required.
-
-2. Altered source versions must be plainly marked as such, and must not be
-  misrepresented as being the original source code.
-
-3. This notice may not be removed or altered from any source distribution.
-
-René Nyffenegger [email protected]
-
-****** SHA1 Library (sha1/sha1.hpp) ******
-sha1.hpp is a repackaging of the sha1.cpp and sha1.h files from the shallsha1
-library (http://code.google.com/p/smallsha1/) into a single header suitable for
-use as a header only library. This conversion was done by Peter Thorson
-([email protected]) in 2013. All modifications to the code are redistributed
-under the same license as the original, which is listed below.
-
- Copyright (c) 2011, Micael Hildenborg
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of Micael Hildenborg nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY Micael Hildenborg ''AS IS'' AND ANY
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL Micael Hildenborg BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-****** MD5 Library (common/md5.hpp) ******
-md5.hpp is a reformulation of the md5.h and md5.c code from
-http://www.opensource.apple.com/source/cups/cups-59/cups/md5.c to allow it to
-function as a component of a header only library. This conversion was done by
-Peter Thorson ([email protected]) in 2012 for the WebSocket++ project. The
-changes are released under the same license as the original (listed below)
-
-Copyright (C) 1999, 2002 Aladdin Enterprises.  All rights reserved.
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
-L. Peter Deutsch
[email protected]
-
-****** UTF8 Validation logic (utf8_validation.hpp) ******
-utf8_validation.hpp is adapted from code originally written by Bjoern Hoehrmann
-<[email protected]>. See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for
-details.
-
-The original license:
-
-Copyright (c) 2008-2009 Bjoern Hoehrmann <[email protected]>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-#### ASIO
-----------------
-
-Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-
-Boost Software License - Version 1.0 - August 17th, 2003
-
-Permission is hereby granted, free of charge, to any person or organization
-obtaining a copy of the software and accompanying documentation covered by
-this license (the "Software") to use, reproduce, display, distribute,
-execute, and transmit the Software, and to prepare derivative works of the
-Software, and to permit third-parties to whom the Software is furnished to
-do so, all subject to the following:
-
-The copyright notices in the Software and this entire statement, including
-the above license grant, this restriction and the following disclaimer,
-must be included in all copies of the Software, in whole or in part, and
-all derivative works of the Software, unless such copies or derivative
-works are solely in the form of machine-executable object code generated by
-a source language processor.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
+
+### Third Party Technology Licenses and Copyrights
+
+This file contains information for third party technology used in the Atomic Game Engine
+
+Please see the The Atomic Game Engine™ Runtime EULA & Atomic Game Engine™ Editor and Tools EULA for additional licensing information.
+
+#### [The Atomic Game Engine™ Runtime EULA (MIT)](https://github.com/AtomicGameEngine/AtomicRuntime/blob/master/LICENSE_ATOMIC_RUNTIME.md)
+
+#### [The Atomic Game Engine™ Editor and Tools EULA](https://github.com/AtomicGameEngine/AtomicGameEngine/blob/master/LICENSE_ATOMIC_EDITOR_AND_TOOLS.md)
+
+### Third Party Licenses
+-------------------------------------------------------------------
+
+#### Urho3D license
+--------------
+
+Copyright (c) 2008-2014 the Urho3D project. (http://urho3d.github.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+#### Duktape License
+---------------
+
+Copyright (c) 2013-2015
+Sami Vaarala, Niki Dobrev, Andreas Öman, László Langó
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+#### TurboBadger license
+-------------------
+
+This software is provided 'as-is', without any express or implied warranty. In no
+event will the authors be held liable for any damages arising from the use of this
+software.
+
+Permission is granted to anyone to use this software for any purpose, including
+commercial applications, and to alter it and redistribute it freely, subject to the
+following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not claim
+  that you wrote the original software. If you use this software in a product,
+  an acknowledgment in the product documentation would be appreciated but is not
+  required.
+
+  2. Altered source versions must be plainly marked as such, and must not be
+  misrepresented as being the original software.
+
+  3. This notice may not be removed or altered from any source distribution.
+
+#### SQLite license
+--------------
+All of the code and documentation in SQLite has been dedicated to the public domain
+by the authors. All code authors, and representatives of the companies they work for,
+have signed affidavits dedicating their contributions to the public domain and originals
+of those signed affidavits are stored in a firesafe at the main offices of Hwaci.
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original
+SQLite code, either in source code form or as a compiled binary, for any purpose,
+commercial or non-commercial, and by any means.
+
+
+#### Open Asset Import Library license
+---------------------------------
+
+Open Asset Import Library (Assimp)
+
+
+Copyright (c) 2006-2010, Assimp Development Team
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms,
+with or without modification, are permitted provided that the
+following conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of the ASSIMP team, nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of the ASSIMP Development Team.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#### Box2D license
+-------------
+
+Copyright (c) 2006-2013 Erin Catto http://www.gphysics.com
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+claim that you wrote the original software. If you use this software
+in a product, an acknowledgment in the product documentation would be
+appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+
+#### Bullet license
+--------------
+
+Bullet Continuous Collision Detection and Physics Library
+Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org
+
+This software is provided 'as-is', without any express or implied warranty.
+In no event will the authors be held liable for any damages arising from the
+use of this software.
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it freely,
+subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not claim
+that you wrote the original software. If you use this software in a product,
+an acknowledgment in the product documentation would be appreciated but is not
+required.
+2. Altered source versions must be plainly marked as such, and must not be
+misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+
+#### Civetweb license
+----------------
+
+Copyright (c) 2004-2012 Sergey Lyubka
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+#### The FreeType Project disclaimer
+-------------------------------
+
+Portions of this software are copyright © 2010 The FreeType Project
+(www.freetype.org).  All rights reserved.
+
+
+#### GLEW license
+------------
+
+The OpenGL Extension Wrangler Library
+Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org>
+Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org>
+Copyright (C) 2002, Lev Povalahev
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* The name of the author may be used to endorse or promote products
+  derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#### Mesa 3-D graphics library
+Version:  7.0
+
+Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright (c) 2007 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+
+#### kNet license
+------------
+
+Copyright The kNet Project.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+#### libcpuid license
+----------------
+
+Copyright 2008  Veselin Georgiev,
+anrieffNOSPAM @ mgail_DOT.com (convert to gmail)
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#### LZ4 license
+-----------
+
+LZ4 - Fast LZ compression algorithm
+Header File
+Copyright (C) 2011-2013, Yann Collet.
+BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+You can contact the author at :
+- LZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html
+- LZ4 source repository : http://code.google.com/p/lz4/
+
+
+#### MojoShader license
+------------------
+
+Copyright (c) 2008-2011 Ryan C. Gordon.
+
+This software is provided 'as-is', without any express or implied warranty.
+In no event will the authors be held liable for any damages arising from
+the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+claim that you wrote the original software. If you use this software in a
+product, an acknowledgment in the product documentation would be
+appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not be
+misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source distribution.
+
+   Ryan C. Gordon <[email protected]>
+
+
+#### Oolong Engine license
+---------------------
+
+Oolong Engine for the iPhone / iPod touch
+Copyright (c) 2007-2008 Wolfgang Engel  http://code.google.com/p/oolongengine/
+
+This software is provided 'as-is', without any express or implied warranty
+In no event will the authors be held liable for any damages arising from the
+use of this software. Permission is granted to anyone to use this software for
+any purpose,  including commercial applications, and to alter it and
+redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not claim
+that you wrote the original software. If you use this software in a product, an
+acknowledgment in the product documentation would be appreciated but is not
+required.
+2. Altered source versions must be plainly marked as such, and must not be
+misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+
+#### pugixml license
+---------------
+
+Copyright (c) 2006-2010 Arseny Kapoulkine
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+
+#### rapidjson license
+---------------
+
+Copyright (C) 2011 Milo Yip
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+#### Recast/Detour license
+---------------------
+
+Copyright (c) 2009 Mikko Mononen [email protected]
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+claim that you wrote the original software. If you use this software
+in a product, an acknowledgment in the product documentation would be
+appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+
+#### SDL license
+-----------
+
+Simple DirectMedia Layer
+Copyright (C) 1997-2012 Sam Lantinga <[email protected]>
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+
+#### Squish license
+--------------
+
+Copyright (c) 2006 Simon Brown                          [email protected]
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+#### StanHull license
+----------------
+
+Copyright (c) 2004 Open Dynamics Framework Group
+      www.physicstools.org
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+Neither the name of the Open Dynamics Framework Group nor the names of
+its contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#### Source-Map license
+----------------
+
+Copyright (c) 2009-2011, Mozilla Foundation and contributors
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+* Neither the names of the Mozilla Foundation nor the names of project
+  contributors may be used to endorse or promote products derived from this
+  software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#### WebSocketPP license
+----------------
+
+Main Library:
+
+Copyright (c) 2014, Peter Thorson. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of the WebSocket++ Project nor the
+      names of its contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Bundled Libraries:
+
+****** Base 64 Library (base64/base64.hpp) ******
+base64.hpp is a repackaging of the base64.cpp and base64.h files into a
+single header suitable for use as a header only library. This conversion was
+done by Peter Thorson ([email protected]) in 2012. All modifications to
+the code are redistributed under the same license as the original, which is
+listed below.
+
+base64.cpp and base64.h
+
+Copyright (C) 2004-2008 René Nyffenegger
+
+This source code is provided 'as-is', without any express or implied
+warranty. In no event will the author be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this source code must not be misrepresented; you must not
+  claim that you wrote the original source code. If you use this source code
+  in a product, an acknowledgment in the product documentation would be
+  appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not be
+  misrepresented as being the original source code.
+
+3. This notice may not be removed or altered from any source distribution.
+
+René Nyffenegger [email protected]
+
+****** SHA1 Library (sha1/sha1.hpp) ******
+sha1.hpp is a repackaging of the sha1.cpp and sha1.h files from the shallsha1
+library (http://code.google.com/p/smallsha1/) into a single header suitable for
+use as a header only library. This conversion was done by Peter Thorson
+([email protected]) in 2013. All modifications to the code are redistributed
+under the same license as the original, which is listed below.
+
+ Copyright (c) 2011, Micael Hildenborg
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of Micael Hildenborg nor the
+      names of its contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY Micael Hildenborg ''AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL Micael Hildenborg BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+****** MD5 Library (common/md5.hpp) ******
+md5.hpp is a reformulation of the md5.h and md5.c code from
+http://www.opensource.apple.com/source/cups/cups-59/cups/md5.c to allow it to
+function as a component of a header only library. This conversion was done by
+Peter Thorson ([email protected]) in 2012 for the WebSocket++ project. The
+changes are released under the same license as the original (listed below)
+
+Copyright (C) 1999, 2002 Aladdin Enterprises.  All rights reserved.
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+L. Peter Deutsch
[email protected]
+
+****** UTF8 Validation logic (utf8_validation.hpp) ******
+utf8_validation.hpp is adapted from code originally written by Bjoern Hoehrmann
+<[email protected]>. See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for
+details.
+
+The original license:
+
+Copyright (c) 2008-2009 Bjoern Hoehrmann <[email protected]>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+#### ASIO
+----------------
+
+Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.

+ 0 - 256
Rakefile

@@ -1,256 +0,0 @@
-
-include RbConfig
-
-case CONFIG['host_os']
-when /mswin|windows|mingw32/i
-    $HOST_OS = "windows"
-when /darwin/i
-    $HOST_OS = "darwin"
-else
-    $HOST_OS = "linux"
-end
-
-$RAKE_ROOT = File.dirname(__FILE__)
-
-ARTIFACTS_FOLDER = "#{$RAKE_ROOT}/Artifacts"
-
-$CMAKE_DEV_BUILD = "-DATOMIC_DEV_BUILD=1"
-
-CMAKE_WINDOWS_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Windows_Build"
-CMAKE_MACOSX_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/MacOSX_Build"
-CMAKE_ANDROID_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Android_Build"
-CMAKE_IOS_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/IOS_Build"
-CMAKE_WEB_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Web_Build"
-CMAKE_LINUX_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Linux_Build"
-
-ATOMICTOOL_BIN_MACOSX = "#{CMAKE_MACOSX_BUILD_FOLDER}/Source/AtomicTool/Release/AtomicTool"
-
-PACKAGE_FOLDER_MACOSX = "#{ARTIFACTS_FOLDER}/MacOSX_Package"
-PACKAGE_FOLDER_WINDOWS = "#{ARTIFACTS_FOLDER}/Windows_Package"
-
-namespace :build  do
-
-  task :macosx_atomictool do
-
-    if !Dir.exists?("#{CMAKE_MACOSX_BUILD_FOLDER}")
-      FileUtils.mkdir_p(CMAKE_MACOSX_BUILD_FOLDER)
-    end
-
-    Dir.chdir(CMAKE_MACOSX_BUILD_FOLDER) do
-
-      sh "cmake ../../ -G Xcode -DCMAKE_BUILD_TYPE=Release"
-      sh "xcodebuild -target AtomicTool -configuration Release"
-
-    end
-
-  end
-
-  task :windows do
-
-    # remove existing build folder
-    if Dir.exists?("#{CMAKE_WINDOWS_BUILD_FOLDER}")
-      FileUtils.rm_rf("#{CMAKE_WINDOWS_BUILD_FOLDER}")
-    end
-
-    # create build folder
-    if !Dir.exists?("#{CMAKE_WINDOWS_BUILD_FOLDER}")
-      FileUtils.mkdir_p(CMAKE_WINDOWS_BUILD_FOLDER)
-    end
-
-    Dir.chdir(CMAKE_WINDOWS_BUILD_FOLDER) do
-      # ensure VS commandline tools are on the path
-      VSCOMNTOOLS = ENV['VS140COMNTOOLS']
-
-      sh "\"#{VSCOMNTOOLS}vsvars32.bat\""
-
-      sh "cmake ../../ #{$CMAKE_DEV_BUILD} -G \"Visual Studio 14 2015\""
-
-      # specify 32 bit
-      sh "msbuild /m Atomic.sln /p:Configuration=Release /p:Platform=Win32"
-
-    end
-
-  end
-
-  task :macosx do
-
-    if !Dir.exists?("#{CMAKE_MACOSX_BUILD_FOLDER}")
-      FileUtils.mkdir_p(CMAKE_MACOSX_BUILD_FOLDER)
-    end
-
-    Dir.chdir(CMAKE_MACOSX_BUILD_FOLDER) do
-
-      sh "cmake ../../ -G Xcode #{$CMAKE_DEV_BUILD}"
-      sh "xcodebuild -configuration Release"
-
-    end
-
-    # build the Atomic Editor
-    #Dir.chdir("#{$RAKE_ROOT}/Script/AtomicEditor") do
-      #sh "tsc"
-    #end
-
-
-  end
-
-  task :linux do
-
-    if !Dir.exists?("#{CMAKE_LINUX_BUILD_FOLDER}")
-      FileUtils.mkdir_p(CMAKE_LINUX_BUILD_FOLDER)
-    end
-
-    Dir.chdir(CMAKE_LINUX_BUILD_FOLDER) do
-
-      sh "cmake ../../ -DLINUX=1 -G \"Unix Makefiles\""
-      sh "make -j2"
-
-    end
-
-  end
-
-
-  #IOS, dependent on macosx for JSBind
-  task :ios =>  "build:macosx_atomictool" do
-
-      if !Dir.exists?("#{CMAKE_IOS_BUILD_FOLDER}")
-        FileUtils.mkdir_p(CMAKE_IOS_BUILD_FOLDER)
-      end
-
-      Dir.chdir(CMAKE_IOS_BUILD_FOLDER) do
-        sh "#{ATOMICTOOL_BIN_MACOSX} bind #{$RAKE_ROOT} Script/Packages/Atomic/ IOS"
-        sh "#{ATOMICTOOL_BIN_MACOSX} bind #{$RAKE_ROOT} Script/Packages/AtomicPlayer/ IOS"
-        sh "cmake -DIOS=1 -DCMAKE_BUILD_TYPE=Release -G Xcode ../../"
-        # the -s option adds $KEYCHAIN to the search scope, while the -d option adds $KEYCHAIN to the system domain; both are needed
-        sh "security -v list-keychains -d system -s /Users/jenkins/Library/Keychains/codesign.keychain"
-        sh "security -v unlock-keychain /Users/jenkins/Library/Keychains/codesign.keychain"
-        sh "xcodebuild -configuration Release"
-      end
-
-  end
-
-  task :android =>  "build:macosx_atomictool" do
-
-      if !Dir.exists?("#{CMAKE_ANDROID_BUILD_FOLDER}")
-        FileUtils.mkdir_p(CMAKE_ANDROID_BUILD_FOLDER)
-      end
-
-      Dir.chdir(CMAKE_ANDROID_BUILD_FOLDER) do
-
-        sh "#{ATOMICTOOL_BIN_MACOSX} bind #{$RAKE_ROOT} Script/Packages/Atomic/ ANDROID"
-        sh "#{ATOMICTOOL_BIN_MACOSX} bind #{$RAKE_ROOT} Script/Packages/AtomicPlayer/ ANDROID"
-        sh "cmake -DCMAKE_TOOLCHAIN_FILE=#{$RAKE_ROOT}/CMake/Toolchains/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../"
-        sh "make -j4"
-      end
-
-  end
-
-  task :web => "build:macosx_atomictool" do
-
-      if !Dir.exists?("#{CMAKE_WEB_BUILD_FOLDER}")
-        FileUtils.mkdir_p(CMAKE_WEB_BUILD_FOLDER)
-      end
-
-      Dir.chdir(CMAKE_WEB_BUILD_FOLDER) do
-        sh "#{ATOMICTOOL_BIN_MACOSX} bind #{$RAKE_ROOT} Script/Packages/Atomic/ WEB"
-        sh "#{ATOMICTOOL_BIN_MACOSX} bind #{$RAKE_ROOT} Script/Packages/AtomicPlayer/ WEB"
-        sh "cmake -DEMSCRIPTEN=1 -DATOMIC_BUILD_2D=1 -DCMAKE_TOOLCHAIN_FILE=#{$RAKE_ROOT}/CMake/Toolchains/emscripten.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../"
-        sh "make -j4"
-      end
-
-      # -s ERROR_ON_UNDEFINED_SYMBOLS=1 (disabled for pthread errors currently on incoming)
-      Dir.chdir("#{CMAKE_WEB_BUILD_FOLDER}/Source/AtomicPlayer/Application") do
-        sh "mv AtomicPlayer AtomicPlayer.bc"
-        sh "emcc -O3 -s USE_PTHREADS=0 -s ASM_JS=1 -s VERBOSE=0 -s USE_SDL=2 -s TOTAL_MEMORY=134217728 -s AGGRESSIVE_VARIABLE_ELIMINATION=1 -s NO_EXIT_RUNTIME=1 ./AtomicPlayer.bc -o  ./AtomicPlayer.html"
-      end
-
-  end
-
-end
-
-namespace :clean do
-
-  task :macosx do
-
-    folders = ["#{CMAKE_MACOSX_BUILD_FOLDER}", "#{PACKAGE_FOLDER_MACOSX}"]
-
-    for index in 0 ... folders.size
-
-        if Dir.exists?(folders[index])
-            sh "rm -rf #{folders[index]}"
-        end
-
-        if Dir.exists?(folders[index])
-            abort("Unable to clean #{folders[index]}")
-        end
-
-    end
-
-  end
-
-
-  task :windows do
-
-    folders = ["#{CMAKE_WINDOWS_BUILD_FOLDER}", "#{PACKAGE_FOLDER_WINDOWS}"]
-
-    for index in 0 ... folders.size
-
-        if Dir.exists?(folders[index])
-          FileUtils.rmtree("#{folders[index]}")
-        end
-
-        if Dir.exists?(folders[index])
-            abort("Unable to clean #{folders[index]}")
-        end
-
-    end
-
-  end
-
-
-end
-
-
-namespace :package  do
-
-  $CMAKE_DEV_BUILD = "-DATOMIC_DEV_BUILD=0"
-
-  task :macosx =>  ["clean:macosx", "build:macosx"] do
-
-    FileUtils.mkdir_p("#{PACKAGE_FOLDER_MACOSX}")
-
-    MAC_EDITOR_APP_FOLDER_SRC = "#{CMAKE_MACOSX_BUILD_FOLDER}/Source/AtomicEditor/Release/AtomicEditor.app"
-
-    sh "cp -r #{MAC_EDITOR_APP_FOLDER_SRC} #{PACKAGE_FOLDER_MACOSX}"
-
-    # copy resources
-
-    sh "cp -r #{$RAKE_ROOT}/Resources/CoreData #{PACKAGE_FOLDER_MACOSX}/AtomicEditor.app/Contents/Resources/"
-    sh "cp -r #{$RAKE_ROOT}/Resources/EditorData #{PACKAGE_FOLDER_MACOSX}/AtomicEditor.app/Contents/Resources/"
-    sh "cp -r #{$RAKE_ROOT}/Resources/PlayerData #{PACKAGE_FOLDER_MACOSX}/AtomicEditor.app/Contents/Resources/"
-    sh "cp -r #{$RAKE_ROOT}/Script #{PACKAGE_FOLDER_MACOSX}/AtomicEditor.app/Contents/Resources/"
-    sh "cp -r #{$RAKE_ROOT}/Data/AtomicEditor/ProjectTemplates #{PACKAGE_FOLDER_MACOSX}/AtomicEditor.app/Contents/Resources/"
-
-  end
-
-  task :windows => ["clean:windows", "build:windows"] do
-
-    FileUtils.mkdir_p("#{PACKAGE_FOLDER_WINDOWS}/Resources")
-
-    FileUtils.cp("#{CMAKE_WINDOWS_BUILD_FOLDER}/Source/AtomicEditor/Release/AtomicEditor.exe", "#{PACKAGE_FOLDER_WINDOWS}/AtomicEditor.exe" )
-
-    #32 bit build for packaging!
-
-    FileUtils.cp("#{$RAKE_ROOT}/Build/Windows/Binaries/x86/D3DCompiler_47.dll", "#{PACKAGE_FOLDER_WINDOWS}/D3DCompiler_47.dll" )
-
-    # copy resources
-
-    FileUtils.cp_r("#{$RAKE_ROOT}/Resources/CoreData",  "#{PACKAGE_FOLDER_WINDOWS}/Resources");
-    FileUtils.cp_r("#{$RAKE_ROOT}/Resources/EditorData", "#{PACKAGE_FOLDER_WINDOWS}/Resources");
-    FileUtils.cp_r("#{$RAKE_ROOT}/Resources/PlayerData", "#{PACKAGE_FOLDER_WINDOWS}/Resources");
-    FileUtils.cp_r("#{$RAKE_ROOT}/Script", "#{PACKAGE_FOLDER_WINDOWS}/Resources");
-    FileUtils.cp_r("#{$RAKE_ROOT}/Data/AtomicEditor/ProjectTemplates", "#{PACKAGE_FOLDER_WINDOWS}/Resources");
-
-  end
-
-
-end

+ 0 - 2
Resources/EditorData/AtomicEditor/EditorScripts/.gitignore

@@ -1,2 +0,0 @@
-ToolCore/*
-AtomicEditor/*

+ 0 - 0
Resources/EditorData/AtomicEditor/EditorScripts/Lib/acorn.js → Resources/EditorData/AtomicEditor/JavaScript/Lib/acorn.js


+ 0 - 0
Resources/EditorData/AtomicEditor/EditorScripts/Lib/beautify.js → Resources/EditorData/AtomicEditor/JavaScript/Lib/beautify.js


+ 0 - 0
Resources/EditorData/AtomicEditor/EditorScripts/Lib/jsutils.js → Resources/EditorData/AtomicEditor/JavaScript/Lib/jsutils.js


+ 0 - 0
Resources/EditorData/AtomicEditor/EditorScripts/Lib/source-map.js → Resources/EditorData/AtomicEditor/JavaScript/Lib/source-map.js


+ 2 - 1
Script/Packages/AtomicNET/Package.json

@@ -3,5 +3,6 @@
   "name" : "AtomicNET",
   "name" : "AtomicNET",
   "namespace" : "Atomic",
   "namespace" : "Atomic",
   "dependencies" : ["Script/Packages/Atomic"],
   "dependencies" : ["Script/Packages/Atomic"],
-  "modules" : ["NETCore", "NETScript"]
+  "modules" : ["NETCore", "NETScript"],
+  "platforms" : ["WINDOWS", "MACOSX"]
 }
 }

+ 2 - 1
Script/Packages/Editor/Package.json

@@ -3,5 +3,6 @@
   "name" : "Editor",
   "name" : "Editor",
   "namespace" : "AtomicEditor",
   "namespace" : "AtomicEditor",
   "dependencies" : ["Script/Packages/Atomic"],
   "dependencies" : ["Script/Packages/Atomic"],
-  "modules" : ["Editor"]
+  "modules" : ["Editor"],
+  "platforms" : ["WINDOWS", "MACOSX", "LINUX"]
 }
 }

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

@@ -3,5 +3,6 @@
   "name" : "ToolCore",
   "name" : "ToolCore",
   "namespace" : "ToolCore",
   "namespace" : "ToolCore",
   "dependencies" : ["Script/Packages/Atomic"],
   "dependencies" : ["Script/Packages/Atomic"],
-  "modules" : ["ToolCore"]
+  "modules" : ["ToolCore"],
+  "platforms" : ["WINDOWS", "MACOSX", "LINUX"]
 }
 }

+ 6 - 3
Script/tsconfig.json

@@ -6,7 +6,7 @@
         "noImplicitAny": false,
         "noImplicitAny": false,
         "removeComments": true,
         "removeComments": true,
         "noLib": false,
         "noLib": false,
-        "outDir": "../Resources/EditorData/AtomicEditor/EditorScripts",
+        "outDir": "../Artifacts/Build/Resources/EditorData/AtomicEditor/EditorScripts",
         "moduleResolution": "classic",
         "moduleResolution": "classic",
         "sourceMap": true
         "sourceMap": true
     },
     },
@@ -15,6 +15,7 @@
         "./AtomicEditor/**/*.ts"
         "./AtomicEditor/**/*.ts"
     ],
     ],
     "files": [
     "files": [
+        "./ToolCore/build/BuildSettings.ts",
         "./AtomicEditor/editor/Editor.ts",
         "./AtomicEditor/editor/Editor.ts",
         "./AtomicEditor/editor/EditorEvents.ts",
         "./AtomicEditor/editor/EditorEvents.ts",
         "./AtomicEditor/editor/EditorLicense.ts",
         "./AtomicEditor/editor/EditorLicense.ts",
@@ -25,8 +26,10 @@
         "./AtomicEditor/ui/EditorUI.ts",
         "./AtomicEditor/ui/EditorUI.ts",
         "./AtomicEditor/ui/frames/HierarchyFrame.ts",
         "./AtomicEditor/ui/frames/HierarchyFrame.ts",
         "./AtomicEditor/ui/frames/inspector/ArrayEditWidget.ts",
         "./AtomicEditor/ui/frames/inspector/ArrayEditWidget.ts",
+        "./AtomicEditor/ui/frames/inspector/AssemblyInspector.ts",
         "./AtomicEditor/ui/frames/inspector/ComponentInspector.ts",
         "./AtomicEditor/ui/frames/inspector/ComponentInspector.ts",
         "./AtomicEditor/ui/frames/inspector/CreateComponentButton.ts",
         "./AtomicEditor/ui/frames/inspector/CreateComponentButton.ts",
+        "./AtomicEditor/ui/frames/inspector/CSComponentClassSelector.ts",
         "./AtomicEditor/ui/frames/inspector/DataBinding.ts",
         "./AtomicEditor/ui/frames/inspector/DataBinding.ts",
         "./AtomicEditor/ui/frames/inspector/InspectorFrame.ts",
         "./AtomicEditor/ui/frames/inspector/InspectorFrame.ts",
         "./AtomicEditor/ui/frames/inspector/InspectorUtils.ts",
         "./AtomicEditor/ui/frames/inspector/InspectorUtils.ts",
@@ -34,6 +37,7 @@
         "./AtomicEditor/ui/frames/inspector/MaterialInspector.ts",
         "./AtomicEditor/ui/frames/inspector/MaterialInspector.ts",
         "./AtomicEditor/ui/frames/inspector/ModelInspector.ts",
         "./AtomicEditor/ui/frames/inspector/ModelInspector.ts",
         "./AtomicEditor/ui/frames/inspector/NodeInspector.ts",
         "./AtomicEditor/ui/frames/inspector/NodeInspector.ts",
+        "./AtomicEditor/ui/frames/inspector/PrefabInspector.ts",
         "./AtomicEditor/ui/frames/inspector/TextureSelector.ts",
         "./AtomicEditor/ui/frames/inspector/TextureSelector.ts",
         "./AtomicEditor/ui/frames/MainFrame.ts",
         "./AtomicEditor/ui/frames/MainFrame.ts",
         "./AtomicEditor/ui/frames/menus/HierarchyFrameMenu.ts",
         "./AtomicEditor/ui/frames/menus/HierarchyFrameMenu.ts",
@@ -72,7 +76,6 @@
         "./AtomicEditor/ui/playmode/PlayMode.ts",
         "./AtomicEditor/ui/playmode/PlayMode.ts",
         "./AtomicEditor/ui/ScriptWidget.ts",
         "./AtomicEditor/ui/ScriptWidget.ts",
         "./AtomicEditor/ui/Shortcuts.ts",
         "./AtomicEditor/ui/Shortcuts.ts",
-        "./AtomicEditor/ui/UIEvents.ts",
-        "./ToolCore/build/BuildSettings.ts"
+        "./AtomicEditor/ui/UIEvents.ts"
     ]
     ]
 }
 }

+ 3 - 1
Source/AtomicEditor/Application/AEEditorApp.cpp

@@ -44,7 +44,7 @@ void AEEditorApp::Start()
 
 
     context_->RegisterSubsystem(new EditorMode(context_));
     context_->RegisterSubsystem(new EditorMode(context_));
 
 
-    vm_->SetModuleSearchPaths("AtomicEditor/EditorScripts;AtomicEditor/EditorScripts/AtomicEditor");
+    vm_->SetModuleSearchPaths("AtomicEditor/JavaScript;AtomicEditor/EditorScripts;AtomicEditor/EditorScripts/AtomicEditor");
 
 
     // Do not create bone structure by default when in the editor
     // Do not create bone structure by default when in the editor
     // this can be toggled temporarily, for example to setup an animation preview
     // this can be toggled temporarily, for example to setup an animation preview
@@ -94,6 +94,8 @@ void AEEditorApp::Setup()
 #ifdef ATOMIC_DEV_BUILD
 #ifdef ATOMIC_DEV_BUILD
     engineParameters_["ResourcePrefixPath"] = "";
     engineParameters_["ResourcePrefixPath"] = "";
     String resourcePaths = env->GetCoreDataDir() + ";" +  env->GetEditorDataDir();
     String resourcePaths = env->GetCoreDataDir() + ";" +  env->GetEditorDataDir();
+    // for dev builds, add the compile editor scripts from artifacts
+    resourcePaths += ";" + env->GetRootSourceDir() + "Artifacts/Build/Resources/EditorData/";
     engineParameters_["ResourcePaths"] = resourcePaths;
     engineParameters_["ResourcePaths"] = resourcePaths;
 #else
 #else
 
 

+ 3 - 48
Source/AtomicEditor/CMakeLists.txt

@@ -7,20 +7,7 @@ include_directories ( ${CMAKE_SOURCE_DIR}/Source/ThirdParty
 
 
 file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
 file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
 
 
-# Create the JSBind files ahead of time, so they are picked up with glob
-set (JSFILES JSPackageEditor.cpp;JSModuleEditor.cpp)
-
-foreach(JSFILE ${JSFILES})
-
-  set (JSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Editor/${JSFILE}")
-
-  if (NOT EXISTS ${JSFILEPATH})
-    file(WRITE "${JSFILEPATH}" "// will be created by JSBind")
-  endif()
-
-endforeach()
-
-file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Editor/*.cpp)
+file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Artifacts/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Editor/*.cpp)
 
 
 set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE})
 set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE})
 
 
@@ -35,7 +22,7 @@ if (APPLE)
 
 
     #ICNS
     #ICNS
     set(MACOSX_BUNDLE_ICON_FILE Atomic.icns)
     set(MACOSX_BUNDLE_ICON_FILE Atomic.icns)
-    set(ATOMIC_EDITOR_ICON ${CMAKE_SOURCE_DIR}/CMake/Modules/Atomic.icns)
+    set(ATOMIC_EDITOR_ICON ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/Atomic.icns)
     set_source_files_properties(${ATOMIC_EDITOR_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
     set_source_files_properties(${ATOMIC_EDITOR_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
 
 
 elseif(LINUX)
 elseif(LINUX)
@@ -48,7 +35,7 @@ else()
     #set (EXE_TYPE WIN32)
     #set (EXE_TYPE WIN32)
     add_definitions(-DATOMIC_WIN32_CONSOLE)
     add_definitions(-DATOMIC_WIN32_CONSOLE)
 
 
-    set (SOURCE_FILES ${SOURCE_FILES} ${CMAKE_SOURCE_DIR}/CMake/Modules/Atomic.rc)
+    set (SOURCE_FILES ${SOURCE_FILES} ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/Atomic.rc)
 endif(APPLE)
 endif(APPLE)
 
 
 add_executable(AtomicEditor ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
 add_executable(AtomicEditor ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
@@ -60,42 +47,12 @@ if (APPLE)
 
 
     target_link_libraries(AtomicEditor NETCore NETScript curl)
     target_link_libraries(AtomicEditor NETCore NETScript curl)
 
 
-    # compile the editor scripts
-    add_custom_command (TARGET AtomicEditor POST_BUILD
-    COMMAND "${CMAKE_SOURCE_DIR}/Build/Mac/node/node" "${CMAKE_SOURCE_DIR}/Build/TypeScript/tsc.js" "-p" "./Script"
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
-
 elseif(LINUX)
 elseif(LINUX)
     target_link_libraries(AtomicEditor NETCore NETScript curl nativefiledialog ${GTK3_LIBRARIES})
     target_link_libraries(AtomicEditor NETCore NETScript curl nativefiledialog ${GTK3_LIBRARIES})
 
 
-    # check for nodejs install
-    # look for either 'node' or 'nodejs' ( debian uses both names )
-    set(NODEJS_CMD node)
-    find_program( SYS_NODE ${NODEJS_CMD}  PATHS /usr/bin/ /bin ENV PATH)
-
-    if(NOT SYS_NODE)
-        set(NODEJS_CMD nodejs)
-        find_program( SYS_NODE ${NODEJS_CMD}  PATHS /usr/bin/ /bin ENV PATH)
-    endif()
-
-    if( NOT SYS_NODE)
-        message(SEND_WARNING " WARNING: Could not find Nodejs, editor's TypeScript will not be compiled!")
-    endif()
-
-    if(SYS_NODE)
-        # compile the editor scripts
-        add_custom_command (TARGET AtomicEditor POST_BUILD
-        COMMAND  ${NODEJS_CMD} "${CMAKE_SOURCE_DIR}/Build/TypeScript/tsc.js" "-p" "./Script"
-        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
-    endif()
 else()
 else()
     target_link_libraries(AtomicEditor NETCore NETScript libcurl Iphlpapi Wldap32)
     target_link_libraries(AtomicEditor NETCore NETScript libcurl Iphlpapi Wldap32)
 
 
-    # compile the editor scripts
-    add_custom_command (TARGET AtomicEditor POST_BUILD
-    COMMAND "${CMAKE_SOURCE_DIR}/Build/Windows/node/node.exe" "${CMAKE_SOURCE_DIR}/Build/TypeScript/tsc.js" "-p" "./Script"
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
-
     # pre-Windows 8 can't count on D3DCompiler_47.dll being on system
     # pre-Windows 8 can't count on D3DCompiler_47.dll being on system
     add_custom_command (TARGET AtomicEditor POST_BUILD
     add_custom_command (TARGET AtomicEditor POST_BUILD
     COMMAND ${CMAKE_COMMAND}
     COMMAND ${CMAKE_COMMAND}
@@ -107,8 +64,6 @@ if (TARGET_PROPERTIES)
     set_target_properties (AtomicEditor PROPERTIES ${TARGET_PROPERTIES})
     set_target_properties (AtomicEditor PROPERTIES ${TARGET_PROPERTIES})
 endif ()
 endif ()
 
 
-add_dependencies(AtomicEditor AtomicTool)
-
 GroupSources("Application")
 GroupSources("Application")
 GroupSources("EditorMode")
 GroupSources("EditorMode")
 GroupSources("Editors")
 GroupSources("Editors")

+ 2 - 2
Source/AtomicEditor/Editors/JSResourceEditor.cpp

@@ -542,7 +542,7 @@ bool JSResourceEditor::ParseJavascriptToJSON(const char* source, String& json, b
     json.Clear();
     json.Clear();
 
 
     duk_get_global_string(ctx, "require");
     duk_get_global_string(ctx, "require");
-    duk_push_string(ctx, "AtomicEditor/EditorScripts/Lib/jsutils");
+    duk_push_string(ctx, "AtomicEditor/JavaScript/Lib/jsutils");
     if (duk_pcall(ctx, 1))
     if (duk_pcall(ctx, 1))
     {
     {
         printf("Error: %s\n", duk_safe_to_string(ctx, -1));
         printf("Error: %s\n", duk_safe_to_string(ctx, -1));
@@ -579,7 +579,7 @@ bool JSResourceEditor::BeautifyJavascript(const char* source, String& output)
     output.Clear();
     output.Clear();
 
 
     duk_get_global_string(ctx, "require");
     duk_get_global_string(ctx, "require");
-    duk_push_string(ctx, "AtomicEditor/EditorScripts/Lib/jsutils");
+    duk_push_string(ctx, "AtomicEditor/JavaScript/Lib/jsutils");
 
 
     if (duk_pcall(ctx, 1))
     if (duk_pcall(ctx, 1))
     {
     {

+ 1 - 27
Source/AtomicJS/CMakeLists.txt

@@ -15,34 +15,8 @@ if (NOT MSVC)
     add_definitions (-DUNIX)
     add_definitions (-DUNIX)
 endif()
 endif()
 
 
-# Create the JSBind files ahead of time, so they are picked up with glob
-set (JSFILES JSModuleAtomic2D.cpp;JSModuleAtomic3D.cpp;JSModuleAudio.cpp;JSModuleContainer.cpp;JSModuleCore.cpp;
-             JSModuleEngine.cpp;JSModuleEnvironment.cpp;JSModuleGraphics.cpp;JSModuleInput.cpp;
-             JSModuleIO.cpp;JSModuleJavascript.cpp;JSModuleMath.cpp;JSModuleNavigation.cpp;
-             JSModuleNetwork.cpp;JSModulePhysics.cpp;JSModuleResource.cpp;JSPackageAtomic.cpp;
-             JSModuleScene.cpp;JSModuleUI.cpp;JSModuleWeb.cpp;JSModuleScript.cpp)
-
-foreach(JSFILE ${JSFILES})
-
-  set (JSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Atomic/${JSFILE}")
-
-  if (NOT EXISTS ${JSFILEPATH})
-    file(WRITE "${JSFILEPATH}" "// will be created by JSBind")
-  endif()
-
-endforeach()
-
-
-file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Atomic/*.cpp)
+file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Artifacts/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Atomic/*.cpp)
 
 
 set (SOURCE_FILES ${JAVASCRIPT_SOURCE} ${JAVASCRIPT_BINDINGS_SOURCE})
 set (SOURCE_FILES ${JAVASCRIPT_SOURCE} ${JAVASCRIPT_BINDINGS_SOURCE})
 
 
 add_library(AtomicJS ${SOURCE_FILES})
 add_library(AtomicJS ${SOURCE_FILES})
-
-if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
-    add_dependencies(AtomicJS AtomicTool)
-endif()
-
-add_custom_command (TARGET AtomicJS POST_BUILD
-COMMAND ${CMAKE_COMMAND}
-ARGS -E copy_if_different \"${CMAKE_SOURCE_DIR}/Script/JSPlugin/AtomicPlugin.h\" \"${CMAKE_SOURCE_DIR}/Bin/NativePluginSDK/AtomicPlugin.h\")

+ 1 - 1
Source/AtomicJS/Javascript/JSVM.cpp

@@ -311,7 +311,7 @@ int JSVM::GetRealLineNumber(const String& fileName, const int lineNumber) {
     mapFile->ReadText(map);
     mapFile->ReadText(map);
     int top = duk_get_top(ctx_);
     int top = duk_get_top(ctx_);
     duk_get_global_string(ctx_, "require");
     duk_get_global_string(ctx_, "require");
-    duk_push_string(ctx_, "AtomicEditor/EditorScripts/Lib/jsutils");
+    duk_push_string(ctx_, "AtomicEditor/JavaScript/Lib/jsutils");
     if (duk_pcall(ctx_, 1))
     if (duk_pcall(ctx_, 1))
     {
     {
         printf("Error: %s\n", duk_safe_to_string(ctx_, -1));
         printf("Error: %s\n", duk_safe_to_string(ctx_, -1));

+ 1 - 16
Source/AtomicNET/NETJS/CMakeLists.txt

@@ -2,25 +2,10 @@ include_directories (${CMAKE_SOURCE_DIR}/Source/ThirdParty)
 
 
 file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
 file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
 
 
-# Create the JSBind files ahead of time, so they are picked up with glob
-set (JSFILES JSPackageAtomicNET.cpp;JSModuleNETCore.cpp;JSModuleNETScript.cpp)
-
-foreach(JSFILE ${JSFILES})
-
-  set (JSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/AtomicNET/${JSFILE}")
-
-  if (NOT EXISTS ${JSFILEPATH})
-    file(WRITE "${JSFILEPATH}" "// will be created by JSBind")
-  endif()
-
-endforeach()
-
-file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/AtomicNET/*.cpp)
+file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Artifacts/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/AtomicNET/*.cpp)
 
 
 set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE} )
 set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE} )
 
 
 add_library(AtomicNETJS ${SOURCE_FILES})
 add_library(AtomicNETJS ${SOURCE_FILES})
 
 
 #target_link_libraries(AtomicPlayerJS AtomicPlayerLib)
 #target_link_libraries(AtomicPlayerJS AtomicPlayerLib)
-
-add_dependencies(AtomicNETJS AtomicTool)

+ 3 - 3
Source/AtomicPlayer/Application/CMakeLists.txt

@@ -13,12 +13,12 @@ set (SOURCE_FILES ${SOURCE_FILES} ${CSHARP_BINDINGS_SOURCE} ${CSHARPATOMICPLAYER
 
 
 if (MSVC)
 if (MSVC)
     set (EXE_TYPE WIN32)
     set (EXE_TYPE WIN32)
-    set (SOURCE_FILES ${SOURCE_FILES} ${CMAKE_SOURCE_DIR}/CMake/Modules/Atomic.rc)
+    set (SOURCE_FILES ${SOURCE_FILES} ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/Atomic.rc)
 elseif(APPLE)
 elseif(APPLE)
     #ICNS
     #ICNS
     set(MACOSX_BUNDLE_ICON_FILE Atomic.icns)
     set(MACOSX_BUNDLE_ICON_FILE Atomic.icns)
 if (NOT IOS)
 if (NOT IOS)
-    set(ATOMIC_EDITOR_ICON ${CMAKE_SOURCE_DIR}/CMake/Modules/Atomic.icns)
+    set(ATOMIC_EDITOR_ICON ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/Atomic.icns)
 endif()
 endif()
     set_source_files_properties(${ATOMIC_EDITOR_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
     set_source_files_properties(${ATOMIC_EDITOR_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
     set (EXE_TYPE MACOSX_BUNDLE)
     set (EXE_TYPE MACOSX_BUNDLE)
@@ -63,7 +63,7 @@ else()
       XCODE_ATTRIBUTE_COMBINE_HIDPI_IMAGES NO
       XCODE_ATTRIBUTE_COMBINE_HIDPI_IMAGES NO
     )
     )
 
 
-    set (TARGET_PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/CMake/Modules/iOSBundleInfo.plist.template)
+    set (TARGET_PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/iOSBundleInfo.plist.template)
 
 
 endif()
 endif()
 endif(APPLE)
 endif(APPLE)

+ 1 - 16
Source/AtomicPlayerJS/CMakeLists.txt

@@ -2,25 +2,10 @@ include_directories (${CMAKE_SOURCE_DIR}/Source/ThirdParty)
 
 
 file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
 file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
 
 
-# Create the JSBind files ahead of time, so they are picked up with glob
-set (JSFILES JSPackageAtomicPlayer.cpp;JSModulePlayer.cpp)
-
-foreach(JSFILE ${JSFILES})
-
-  set (JSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/AtomicPlayer/${JSFILE}")
-
-  if (NOT EXISTS ${JSFILEPATH})
-    file(WRITE "${JSFILEPATH}" "// will be created by JSBind")
-  endif()
-
-endforeach()
-
-file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/AtomicPlayer/*.cpp)
+file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Artifacts/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/AtomicPlayer/*.cpp)
 
 
 set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE} )
 set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE} )
 
 
 add_library(AtomicPlayerJS ${SOURCE_FILES})
 add_library(AtomicPlayerJS ${SOURCE_FILES})
 
 
 target_link_libraries(AtomicPlayerJS AtomicPlayerLib)
 target_link_libraries(AtomicPlayerJS AtomicPlayerLib)
-
-add_dependencies(AtomicPlayerJS AtomicTool)

+ 1 - 5
Source/AtomicTool/AtomicTool.cpp

@@ -77,7 +77,7 @@ void AtomicTool::Setup()
     engineParameters_["Headless"] = true;
     engineParameters_["Headless"] = true;
     engineParameters_["LogLevel"] = LOG_INFO;
     engineParameters_["LogLevel"] = LOG_INFO;
 
 
-    // no default resources (will be initialized later)
+    // no default resources, AtomicTool may be run outside of source tree
     engineParameters_["ResourcePaths"] = "";
     engineParameters_["ResourcePaths"] = "";
 }
 }
 
 
@@ -220,10 +220,6 @@ void AtomicTool::Start()
 
 
 //#endif
 //#endif
 
 
-    ResourceCache* cache = GetSubsystem<ResourceCache>();
-    cache->AddResourceDir(env->GetCoreDataDir());
-    cache->AddResourceDir(env->GetPlayerDataDir());
-
     tsystem->SetCLI();
     tsystem->SetCLI();
     tsystem->SetDataPath(cliDataPath_);
     tsystem->SetDataPath(cliDataPath_);
 
 

+ 18 - 9
Source/AtomicTool/CMakeLists.txt

@@ -8,8 +8,6 @@ add_executable(AtomicTool ${ATOMIC_TOOL_SOURCES})
 
 
 target_link_libraries(AtomicTool ToolCore NETCore NETScript Poco ${ATOMIC_LINK_LIBRARIES})
 target_link_libraries(AtomicTool ToolCore NETCore NETScript Poco ${ATOMIC_LINK_LIBRARIES})
 
 
-# add_dependencies(AtomicTool AtomicEditor)
-
 if (MSVC)
 if (MSVC)
     target_link_libraries(AtomicTool libcurl Iphlpapi Wldap32)
     target_link_libraries(AtomicTool libcurl Iphlpapi Wldap32)
 
 
@@ -23,15 +21,26 @@ else()
     target_link_libraries(AtomicTool curl)
     target_link_libraries(AtomicTool curl)
 endif()
 endif()
 
 
+add_custom_command( TARGET AtomicTool POST_BUILD
+                   COMMAND ${CMAKE_COMMAND}
+                   ARGS -E make_directory ${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool
+                   COMMAND ${CMAKE_COMMAND}
+                   ARGS -E copy_if_different $<TARGET_FILE:AtomicTool> \"${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool/\"
+                   COMMAND ${CMAKE_COMMAND} )
 
 
-add_custom_command(TARGET AtomicTool POST_BUILD
-                   COMMAND $<TARGET_FILE:AtomicTool> bind "\"${CMAKE_SOURCE_DIR}\"" "Script/Packages/Atomic/" "${JAVASCRIPT_BINDINGS_PLATFORM}"
-                   COMMAND $<TARGET_FILE:AtomicTool> bind "\"${CMAKE_SOURCE_DIR}\"" "Script/Packages/AtomicPlayer/" "${JAVASCRIPT_BINDINGS_PLATFORM}"
-                   COMMAND $<TARGET_FILE:AtomicTool> bind "\"${CMAKE_SOURCE_DIR}\"" "Script/Packages/ToolCore/" "${JAVASCRIPT_BINDINGS_PLATFORM}"
-                   COMMAND $<TARGET_FILE:AtomicTool> bind "\"${CMAKE_SOURCE_DIR}\"" "Script/Packages/Editor/" "${JAVASCRIPT_BINDINGS_PLATFORM}"
-                   COMMAND $<TARGET_FILE:AtomicTool> bind "\"${CMAKE_SOURCE_DIR}\"" "Script/Packages/AtomicNET/" "${JAVASCRIPT_BINDINGS_PLATFORM}"
-                   COMMENT "Generating Script Bindings")
+if (MSVC)
+
+# Copy the D3D shader compiler
+add_custom_command( TARGET AtomicTool POST_BUILD
+                    ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool/D3DCompiler_47.dll\"
+                    COMMENT "Copying AtomicTool to Build Artifacts" )
+
+endif(MSVC)
 
 
+add_custom_target ( GenerateScriptBindings
+                    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+                    COMMAND ${ATOMIC_NODE_JAKE};build:genscripts[${JAVASCRIPT_BINDINGS_PLATFORM}]
+                    DEPENDS AtomicTool )
 
 
 if (ATOMIC_DOTNET_DEV)
 if (ATOMIC_DOTNET_DEV)
 
 

+ 0 - 4
Source/ToolCore/Command/BindCmd.cpp

@@ -68,10 +68,6 @@ bool BindCmd::Parse(const Vector<String>& arguments, unsigned startIndex, String
 
 
 void BindCmd::Run()
 void BindCmd::Run()
 {
 {
-    ToolEnvironment* env = GetSubsystem<ToolEnvironment>();
-
-    sourceRootFolder_ = env->GetRootSourceDir();
-
     SharedPtr<JSBind> jsbind(new JSBind(context_));
     SharedPtr<JSBind> jsbind(new JSBind(context_));
 
 
     context_->RegisterSubsystem(jsbind);
     context_->RegisterSubsystem(jsbind);

+ 0 - 3
Source/ToolCore/JSBind/CSharp/CSFunctionWriter.cpp

@@ -811,9 +811,6 @@ String CSFunctionWriter::MapDefaultParameter(JSBFunctionType* parameter)
         return "default(Quaternion)";
         return "default(Quaternion)";
     }
     }
 
 
-
-    LOGINFOF("HEY! %s", init.CString());
-
     return String::EMPTY;
     return String::EMPTY;
 }
 }
 
 

+ 2 - 2
Source/ToolCore/JSBind/JSBind.cpp

@@ -42,7 +42,7 @@ bool JSBind::LoadPackage(const String& sourceRootFolder, const String& packageFo
 bool JSBind::GenerateCSharpBindings()
 bool JSBind::GenerateCSharpBindings()
 {
 {
 
 
-    String modulesFolder = "Build/Source/Generated/" + platform_ + "/CSharp/Packages/";
+    String modulesFolder = "Artifacts/Build/Source/Generated/" + platform_ + "/CSharp/Packages/";
     modulesFolder += package_->GetName() + "/";
     modulesFolder += package_->GetName() + "/";
 
 
     String nativeOutputFolder = sourceRootFolder_ + "/" + modulesFolder + "Native/";
     String nativeOutputFolder = sourceRootFolder_ + "/" + modulesFolder + "Native/";
@@ -75,7 +75,7 @@ bool JSBind::GenerateCSharpBindings()
 
 
 bool JSBind::GenerateJavaScriptBindings()
 bool JSBind::GenerateJavaScriptBindings()
 {
 {
-    String modulesFolder = "Build/Source/Generated/" + platform_ + "/Javascript/Packages/";
+    String modulesFolder = "Artifacts/Build/Source/Generated/" + platform_ + "/Javascript/Packages/";
     modulesFolder += package_->GetName() + "/";
     modulesFolder += package_->GetName() + "/";
 
 
     String outputFolder = sourceRootFolder_ + "/" + modulesFolder;
     String outputFolder = sourceRootFolder_ + "/" + modulesFolder;

+ 1 - 1
Source/ToolCore/JSBind/JavaScript/JSPackageWriter.cpp

@@ -200,7 +200,7 @@ void JSPackageWriter::PostProcess()
     if (jsbind->GetPlatform() == "MACOSX" || jsbind->GetPlatform() == "WINDOWS" || jsbind->GetPlatform() == "LINUX")
     if (jsbind->GetPlatform() == "MACOSX" || jsbind->GetPlatform() == "WINDOWS" || jsbind->GetPlatform() == "LINUX")
     {
     {
         JSBDoc jdoc;
         JSBDoc jdoc;
-        jdoc.Emit(package_, jsbind->GetSourceRootFolder() + "Artifacts/JSDoc/" + package_->GetName() + ".js");
+        jdoc.Emit(package_, jsbind->GetSourceRootFolder() + "Artifacts/Build/JSDoc/" + package_->GetName() + ".js");
 
 
         JSBTypeScript ts;
         JSBTypeScript ts;
         ts.Emit(package_, jsbind->GetSourceRootFolder() + "Script/TypeScript/" + package_->GetName() + ".d.ts");
         ts.Emit(package_, jsbind->GetSourceRootFolder() + "Script/TypeScript/" + package_->GetName() + ".d.ts");

+ 1 - 14
Source/ToolCoreJS/CMakeLists.txt

@@ -2,20 +2,7 @@ include_directories (${CMAKE_SOURCE_DIR}/Source/ThirdParty ${CMAKE_SOURCE_DIR}/S
 
 
 file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
 file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
 
 
-# Create the JSBind files ahead of time, so they are picked up with glob
-set (JSFILES JSPackageToolCore.cpp;JSModuleToolCore.cpp)
-
-foreach(JSFILE ${JSFILES})
-
-  set (JSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/ToolCore/${JSFILE}")
-
-  if (NOT EXISTS ${JSFILEPATH})
-    file(WRITE "${JSFILEPATH}" "// will be created by JSBind")
-  endif()
-
-endforeach()
-
-file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/ToolCore/*.cpp)
+file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Artifacts/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/ToolCore/*.cpp)
 
 
 set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE} )
 set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE} )