Browse Source

Windows build improvements

JoshEngebretson 10 years ago
parent
commit
e8c33c5878

+ 1 - 1
Build/CMake/Modules/AtomicWindows.cmake

@@ -5,7 +5,7 @@ include(AtomicDesktop)
 
 #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)
+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 )
     set (D3DCOMPILER_47_DLL ${CMAKE_SOURCE_DIR}/Build/Windows/Binaries/x64/D3DCompiler_47.dll)

+ 43 - 3
Build/Scripts/BuildWindows.js

@@ -30,6 +30,9 @@ namespace('build', function() {
     // Build the AtomicEditor
     cmds.push(atomicRoot + "Build/Scripts/Windows/CompileAtomicEditor.bat");
 
+    // Compile the Editor Scripts
+    cmds.push(atomicRoot + "Build/Windows/node/node.exe " + atomicRoot + "Build/TypeScript/tsc.js -p " + atomicRoot + "Script");
+
     jake.exec(cmds, function() {
 
       // Copy the Editor binaries
@@ -42,15 +45,52 @@ namespace('build', function() {
       fs.copySync(atomicRoot + "Resources/CoreData",
         editorAppFolder + "Resources/CoreData");
 
-      fs.copySync(atomicRoot + "Resources/EditorData",
-        editorAppFolder + "Resources/EditorData");
-
       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, "") + "-Build\\";
+
+    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() {
+
+      console.log("\n\nVisual Studio Solution generated in ", slnRoot);
+
       complete();
 
     }, {

+ 1 - 1
Build/Scripts/HostMac.js

@@ -29,7 +29,7 @@ namespace('build', function() {
       bindCmd + "Script/Packages/ToolCore/ MACOSX",
       bindCmd + "Script/Packages/Editor/ MACOSX",
       bindCmd + "Script/Packages/AtomicNET/ MACOSX",
-      atomicRoot + "Build/Mac/node/node " + atomicRoot + "Build/TypeScript/tsc.js -p " + atomicRoot + "./Script",
+      atomicRoot + "Build/Mac/node/node " + atomicRoot + "Build/TypeScript/tsc.js -p " + atomicRoot + "Script",
       "cmake ../../../ -DATOMIC_DEV_BUILD=1 -G Xcode",
       "xcodebuild -configuration Debug"
     ]

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

@@ -0,0 +1,2 @@
+call "%VS140COMNTOOLS%..\..\VC\bin\amd64\vcvars64.bat"
+cmake ..\\AtomicGameEngine -DATOMIC_DEV_BUILD=1 -G "Visual Studio 14 2015 Win64"

+ 0 - 0
Build_VS2015_Solution.bat


+ 0 - 0
Build_XCode_Workspace.sh


+ 1 - 0
CMake_VS2015.bat

@@ -0,0 +1 @@
+Build\Windows\node\node.exe Build\node_modules\jake\bin\cli.js -f ./Build/Scripts/Bootstrap.js build:genvs2015

+ 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


+ 6 - 3
Script/tsconfig.json

@@ -6,7 +6,7 @@
         "noImplicitAny": false,
         "removeComments": true,
         "noLib": false,
-        "outDir": "../Resources/EditorData/AtomicEditor/EditorScripts",
+        "outDir": "../Artifacts/Build/Resources/EditorData/AtomicEditor/EditorScripts",
         "moduleResolution": "classic",
         "sourceMap": true
     },
@@ -15,6 +15,7 @@
         "./AtomicEditor/**/*.ts"
     ],
     "files": [
+        "./ToolCore/build/BuildSettings.ts",
         "./AtomicEditor/editor/Editor.ts",
         "./AtomicEditor/editor/EditorEvents.ts",
         "./AtomicEditor/editor/EditorLicense.ts",
@@ -25,8 +26,10 @@
         "./AtomicEditor/ui/EditorUI.ts",
         "./AtomicEditor/ui/frames/HierarchyFrame.ts",
         "./AtomicEditor/ui/frames/inspector/ArrayEditWidget.ts",
+        "./AtomicEditor/ui/frames/inspector/AssemblyInspector.ts",
         "./AtomicEditor/ui/frames/inspector/ComponentInspector.ts",
         "./AtomicEditor/ui/frames/inspector/CreateComponentButton.ts",
+        "./AtomicEditor/ui/frames/inspector/CSComponentClassSelector.ts",
         "./AtomicEditor/ui/frames/inspector/DataBinding.ts",
         "./AtomicEditor/ui/frames/inspector/InspectorFrame.ts",
         "./AtomicEditor/ui/frames/inspector/InspectorUtils.ts",
@@ -34,6 +37,7 @@
         "./AtomicEditor/ui/frames/inspector/MaterialInspector.ts",
         "./AtomicEditor/ui/frames/inspector/ModelInspector.ts",
         "./AtomicEditor/ui/frames/inspector/NodeInspector.ts",
+        "./AtomicEditor/ui/frames/inspector/PrefabInspector.ts",
         "./AtomicEditor/ui/frames/inspector/TextureSelector.ts",
         "./AtomicEditor/ui/frames/MainFrame.ts",
         "./AtomicEditor/ui/frames/menus/HierarchyFrameMenu.ts",
@@ -72,7 +76,6 @@
         "./AtomicEditor/ui/playmode/PlayMode.ts",
         "./AtomicEditor/ui/ScriptWidget.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_));
 
-    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
     // this can be toggled temporarily, for example to setup an animation preview
@@ -94,6 +94,8 @@ void AEEditorApp::Setup()
 #ifdef ATOMIC_DEV_BUILD
     engineParameters_["ResourcePrefixPath"] = "";
     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;
 #else
 

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

@@ -542,7 +542,7 @@ bool JSResourceEditor::ParseJavascriptToJSON(const char* source, String& json, b
     json.Clear();
 
     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))
     {
         printf("Error: %s\n", duk_safe_to_string(ctx, -1));
@@ -579,7 +579,7 @@ bool JSResourceEditor::BeautifyJavascript(const char* source, String& output)
     output.Clear();
 
     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))
     {

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

@@ -311,7 +311,7 @@ int JSVM::GetRealLineNumber(const String& fileName, const int lineNumber) {
     mapFile->ReadText(map);
     int top = duk_get_top(ctx_);
     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))
     {
         printf("Error: %s\n", duk_safe_to_string(ctx_, -1));

+ 5 - 11
Source/AtomicTool/CMakeLists.txt

@@ -21,24 +21,18 @@ else()
     target_link_libraries(AtomicTool curl)
 endif()
 
-
-add_custom_command (TARGET AtomicTool POST_BUILD
-COMMAND ${CMAKE_COMMAND}
-ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"$<TARGET_FILE_DIR:AtomicTool>/D3DCompiler_47.dll\")
-
-if (NOT EXISTS ${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool)
- file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool)
-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}
+                   ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool/D3DCompiler_47.dll\"
                    COMMENT "Copying AtomicTool to Build Artifacts" )
 
 add_custom_target ( GenerateScriptBindings
                     WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
-                    COMMENT "${ATOMIC_NODE_JAKE} build:genscripts[${JAVASCRIPT_BINDINGS_PLATFORM}]"
-                    COMMAND ${ATOMIC_NODE_JAKE} build:genscripts[${JAVASCRIPT_BINDINGS_PLATFORM}]
+                    COMMAND ${ATOMIC_NODE_JAKE};build:genscripts[${JAVASCRIPT_BINDINGS_PLATFORM}]
                     DEPENDS AtomicTool )
 
 if (ATOMIC_DOTNET_DEV)

+ 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")
     {
         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;
         ts.Emit(package_, jsbind->GetSourceRootFolder() + "Script/TypeScript/" + package_->GetName() + ".d.ts");