Browse Source

Build Improvements

JoshEngebretson 9 years ago
parent
commit
94c5bc2f9c

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

@@ -27,7 +27,7 @@ endif()
 
 set (JAVASCRIPT_BINDINGS_PLATFORM_ROOT "${CMAKE_SOURCE_DIR}/Artifacts/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}")
 
-if(NOT EXISTS "${JAVASCRIPT_BINDINGS_PLATFORM_ROOT}")
+if(NOT EXISTS "${JAVASCRIPT_BINDINGS_PLATFORM_ROOT}/Javascript")
 
 execute_process ( COMMAND ${ATOMIC_NODE_JAKE};build:precreateScriptBindings[${JAVASCRIPT_BINDINGS_PLATFORM}]
                   WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" )

+ 4 - 4
Build/Scripts/BuildCommon.js

@@ -81,14 +81,14 @@ namespace('build', function() {
 
     task('genscripts', {
         async: true
-    }, function(platform, checkZero) {
+    }, function(platform, force) {
 
-        if (checkZero === undefined) {
-            checkZero = false;
+        if (force === undefined) {
+            force = true;
         }
 
         var anyZero = false;
-        if (checkZero) {
+        if (!force) {
 
             var filenames = common.getGenScriptFilenames(platform);
             for (var i in filenames) {

+ 1 - 5
Build/Scripts/BuildLinux.js

@@ -21,15 +21,11 @@ namespace('build', function() {
             common.cleanCreateDir(host.getGenScriptRootDir("LINUX"));
         }
 
-        // create the generated script files, so they will be picked up by cmake
-        host.createGenScriptFiles("LINUX");
-
         process.chdir(buildDir);
 
         var cmds = [];
 
         cmds.push("cmake ../../../ -DATOMIC_DEV_BUILD=0 -DCMAKE_BUILD_TYPE=Release");
-        cmds.push("make -j4 GenerateScriptBindings")
         cmds.push("make -j4 AtomicEditor AtomicPlayer")
 
         jake.exec(cmds, function() {
@@ -86,5 +82,5 @@ namespace('build', function() {
         });
 
     });
-    
+
 });

+ 1 - 16
Build/Scripts/BuildMac.js

@@ -21,15 +21,11 @@ task('atomiceditor', {
     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 -parallelizeTargets -jobs 4")
   cmds.push("xcodebuild -target AtomicEditor -target AtomicPlayer -configuration Release -parallelizeTargets -jobs 4")
 
   jake.exec(cmds, function() {
@@ -81,26 +77,15 @@ task('genxcode', {
       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");
+    complete();
 
   }, {
     printStdout: true

+ 1 - 14
Build/Scripts/BuildWindows.js

@@ -21,9 +21,6 @@ namespace('build', function() {
       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 = [];
@@ -80,9 +77,6 @@ namespace('build', function() {
         jake.mkdirP(slnRoot);
     }
 
-    // create the generated script files, so they will be picked up by cmake
-    host.createGenScriptFiles("WINDOWS");
-
     process.chdir(slnRoot);
 
     var cmds = [];
@@ -91,14 +85,7 @@ namespace('build', function() {
 
     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");
+      complete();
 
     }, {
       printStdout: true

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

@@ -1,4 +1,3 @@
 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

+ 1 - 1
Build/Scripts/Windows/GenerateVS2015.bat

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

+ 0 - 4
CMake_Linux.sh

@@ -1,4 +0,0 @@
-#!/usr/bin/env bash
-SOURCE=$(cd ${0%/*}; pwd)
-cmake -E make_directory ../AtomicGameEngine-Linux && cmake -E chdir ../AtomicGameEngine-Linux cmake "$SOURCE"
-echo "makefile written to ../AtomicGameEngine-Linux"

+ 18 - 0
CMake_Makefile.sh

@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+
+PLATFORM=""
+if [ "$(uname)" = "Darwin" ]; then
+    PLATFORM="MacOS"
+elif [ "$(expr substr $(uname -s) 1 5)" = "Linux" ]; then
+    PLATFORM="Linux"
+elif [ "$(expr substr $(uname -s) 1 7)" = "MSYS_NT" ]; then
+    PLATFORM="MSYS"
+else
+    exit "Unknown platform"
+fi
+
+SOURCE=$(cd ${0%/*}; pwd)
+FOLDERNAME=${PWD##*/}
+if [ -d "$SOURCE/Artifacts/Build/Source/Generated/" ]; then rm -Rf "$SOURCE/Artifacts/Build/Source/Generated/"; fi
+cmake -E make_directory ../$FOLDERNAME-Build-$PLATFORM && cmake -E chdir ../$FOLDERNAME-Build-$PLATFORM cmake -DCMAKE_BUILD_TYPE=Debug "$SOURCE"
+echo "makefile written to ../$FOLDERNAME-Build-$PLATFORM"

+ 10 - 2
CMake_VS2015.bat

@@ -5,7 +5,15 @@ ECHO Generating Visual Studio Solution (64 bit)
 @echo:
 @echo:
 call "%VS140COMNTOOLS%..\..\VC\bin\amd64\vcvars64.bat"
-cmake -E make_directory "..\AtomicGameEngine-VS2015" && cmake -E chdir "..\AtomicGameEngine-VS2015" cmake ../AtomicGameEngine -G "Visual Studio 14 2015 Win64"
+:: remove any generated sources
+if exist "%~p0Artifacts\Build\Source\Generated\WINDOWS\" rd /q /s "%~p0Artifacts\Build\Source\Generated\WINDOWS"
+:: get current foldername
+set "cdir=%~dp0"
+:: for loop requires removing trailing backslash from %~dp0 output
+set "cdir=%cdir:~0,-1%"
+for %%i IN ("%cdir%") do set "foldername=%%~nxi"
+:: run cmake
+cmake -E make_directory "..\%foldername%-VS2015" && cmake -E chdir "..\%foldername%-VS2015" cmake %~dp0 -G "Visual Studio 14 2015 Win64"
 @echo:
-ECHO Solution created in ..\AtomicGameEngine-VS2015
+ECHO Solution created in ..\%foldername%-VS2015
 @echo:

+ 1 - 1
Source/AtomicEditor/CMakeLists.txt

@@ -197,7 +197,7 @@ if (TARGET_PROPERTIES)
     set_target_properties (AtomicEditor PROPERTIES ${TARGET_PROPERTIES})
 endif ()
 
-add_dependencies(${CEF_TARGET} AtomicTool)
+add_dependencies(${CEF_TARGET} AtomicToolCheckScripts)
 
 GroupSources("Application")
 GroupSources("EditorMode")

+ 1 - 1
Source/AtomicJS/CMakeLists.txt

@@ -21,4 +21,4 @@ set (SOURCE_FILES ${JAVASCRIPT_SOURCE} ${JAVASCRIPT_BINDINGS_SOURCE})
 
 add_library(AtomicJS ${SOURCE_FILES})
 
-add_dependencies(AtomicJS AtomicTool)
+add_dependencies(AtomicJS AtomicToolCheckScripts)

+ 1 - 1
Source/AtomicPlayerJS/CMakeLists.txt

@@ -10,4 +10,4 @@ add_library(AtomicPlayerJS ${SOURCE_FILES})
 
 target_link_libraries(AtomicPlayerJS AtomicPlayerLib)
 
-add_dependencies(AtomicPlayerJS AtomicTool)
+add_dependencies(AtomicPlayerJS AtomicToolCheckScripts)

+ 9 - 16
Source/AtomicTool/CMakeLists.txt

@@ -10,31 +10,24 @@ target_link_libraries(AtomicTool ToolCore Poco ${ATOMIC_LINK_LIBRARIES})
 
 if (MSVC)
     target_link_libraries(AtomicTool libcurl Iphlpapi Wldap32)
-
-    # pre-Windows 8 can't count on D3DCompiler_47.dll being on system
-    # TODO: Remove this dependency
-    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\")
-
 else()
     target_link_libraries(AtomicTool libcurl)
 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/\" )
+add_custom_target( AtomicToolCheckScripts
+                   WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+                   COMMAND "${CMAKE_COMMAND}" -E make_directory \"${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool\"
+                   COMMAND "${CMAKE_COMMAND}" -E copy_if_different \"$<TARGET_FILE:AtomicTool>\" \"${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool/\"
+                   COMMAND ${ATOMIC_NODE_JAKE};build:genscripts[${JAVASCRIPT_BINDINGS_PLATFORM},false] )
 
-add_custom_command( TARGET AtomicTool POST_BUILD
-                    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
-                    COMMAND ${ATOMIC_NODE_JAKE};build:genscripts[${JAVASCRIPT_BINDINGS_PLATFORM},true])
+add_dependencies (AtomicToolCheckScripts AtomicTool)
 
 if (MSVC)
 
 # Copy the D3D shader compiler
 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\"
                     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" )
@@ -42,5 +35,5 @@ endif(MSVC)
 
 add_custom_target ( GenerateScriptBindings
                     WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
-                    COMMAND ${ATOMIC_NODE_JAKE};build:genscripts[${JAVASCRIPT_BINDINGS_PLATFORM}]
+                    COMMAND ${ATOMIC_NODE_JAKE};build:genscripts[${JAVASCRIPT_BINDINGS_PLATFORM},true]
                     DEPENDS AtomicTool )

+ 1 - 1
Source/AtomicWebView/CMakeLists.txt

@@ -13,4 +13,4 @@ set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE} ${PLATFORM_SOURC
 
 add_library(AtomicWebView ${SOURCE_FILES})
 
-add_dependencies(AtomicWebView AtomicTool)
+add_dependencies(AtomicWebView AtomicToolCheckScripts)

+ 1 - 1
Source/ToolCoreJS/CMakeLists.txt

@@ -10,4 +10,4 @@ add_library(ToolCoreJS ${SOURCE_FILES})
 
 target_link_libraries(ToolCoreJS ToolCore)
 
-add_dependencies(ToolCoreJS AtomicTool)
+add_dependencies(ToolCoreJS AtomicToolCheckScripts)