Browse Source

Building generated engine C# projects with xbuild

Josh Engebretson 10 years ago
parent
commit
4001c162bb

+ 33 - 1
Script/AtomicNET/AtomicNETProjects.json

@@ -4,6 +4,21 @@
     "outputPath" : "$ATOMIC_ROOT$/Artifacts/AtomicNET/Build/"
   },
   "projects" : [
+    {
+      "name": "AtomicNETBootstrap",
+      "projectGuid": "9821AC3A-E926-4FBB-90EC-BD4EBCD43FBE",
+      "outputType" : "Library",
+      "rootNamespace" : "Atomic.Bootstrap",
+      "assemblyName" : "AtomicNETBootstrap",
+      "assemblyOutputPath" : "$ATOMIC_ROOT$/Artifacts/AtomicNET/TPA/",
+      "references" : [
+        "System.Console", "System.Runtime" , "System.IO",  "System.IO.FileSystem",
+        "System.Collections", "System.Collections.Concurrent", "System.Linq"
+      ],
+      "sources" : [
+        "$ATOMIC_ROOT$/Script/AtomicNET/AtomicNET/AtomicNETBootstrap/"
+      ]
+    },
     {
       "name": "AtomicNETEngine",
       "projectGuid": "9821AC3B-E926-4FBB-90EC-BC4EBCD43FBC",
@@ -13,7 +28,7 @@
       "assemblyOutputPath" : "$ATOMIC_ROOT$/Artifacts/AtomicNET/",
       "references" : [
         "System.Console", "System.Runtime" , "System.IO",  "System.IO.FileSystem",
-        "System.Linq", "System.Linq.Expressions" 
+        "System.Linq"
       ],
       "sources" : [
         "$ATOMIC_ROOT$/Script/AtomicNET/AtomicNET/AtomicNETEngine/",
@@ -21,6 +36,23 @@
         "$ATOMIC_ROOT$/Build/Source/Generated/$SCRIPT_PLATFORM$/CSharp/Packages/AtomicNET/Managed/",
         "$ATOMIC_ROOT$/Build/Source/Generated/$SCRIPT_PLATFORM$/CSharp/Packages/AtomicPlayer/Managed/"
       ]
+    },
+    {
+      "name": "AtomicNETTools",
+      "projectGuid": "9821DC3B-E926-5EBC-90FD-BC4EBCD43FBC",
+      "outputType" : "Library",
+      "rootNamespace" : "AtomicTools",
+      "assemblyName" : "AtomicNETTools",
+      "assemblyOutputPath" : "$ATOMIC_ROOT$/Artifacts/AtomicNET/",
+      "references" : [
+        "System.Console", "System.Runtime" , "System.IO",  "System.IO.FileSystem",
+        "System.Reflection.Metadata", "System.Reflection.Primitives", "System.Collections.Immutable",
+        "System.Linq",
+        "$ATOMIC_ROOT$/Artifacts/AtomicNET/AtomicNETEngine"
+      ],
+      "sources" : [
+        "$ATOMIC_ROOT$/Script/AtomicNET/AtomicNET/AtomicNETTools/"
+      ]
     }
   ]
 }

+ 10 - 2
Source/AtomicTool/CMakeLists.txt

@@ -36,6 +36,10 @@ if (NOT EXISTS ${CMAKE_SOURCE_DIR}/Artifacts/AtomicNET/TPA)
  file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/Artifacts/AtomicNET/TPA)
 endif()
 
+if (NOT EXISTS ${CMAKE_SOURCE_DIR}/Artifacts/AtomicNET/Build)
+ file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/Artifacts/AtomicNET/Build)
+endif()
+
 if (MSVC)
 
 add_custom_command(TARGET AtomicTool POST_BUILD
@@ -45,9 +49,13 @@ add_custom_command(TARGET AtomicTool POST_BUILD
 elseif(APPLE)
 
 if (NOT IOS)
+
+
+
 add_custom_command(TARGET AtomicTool POST_BUILD
-                   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/Script/AtomicNET/AtomicNET/
-                   COMMAND  ${CMAKE_SOURCE_DIR}/Script/AtomicNET/AtomicNET/build.sh
+                   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/Artifacts/AtomicNET/Build/
+                   COMMAND $<TARGET_FILE:AtomicTool> net-projectgen "\"${CMAKE_SOURCE_DIR}/Script/AtomicNET/AtomicNETProjects.json\"" MACOSX
+                   COMMAND /usr/local/bin/xbuild
                    COMMENT "Compiling AtomicNET Assemblies")
 endif()
 

+ 13 - 0
Source/ToolCore/NETTools/NETProjectGen.cpp

@@ -121,6 +121,12 @@ void NETCSProject::CreateReleasePropertyGroup(XMLElement &projectRoot)
     pgroup.CreateChild("ConsolePause").SetValue("false");
     pgroup.CreateChild("AllowUnsafeBlocks").SetValue("true");
     pgroup.CreateChild("NoStdLib").SetValue("true");
+    pgroup.CreateChild("NoConfig").SetValue("true");
+    pgroup.CreateChild("NoCompilerStandardLib").SetValue("true");
+
+    ToolEnvironment* tenv = GetSubsystem<ToolEnvironment>();
+    const String& coreCLRAbsPath = tenv->GetNETCoreCLRAbsPath();
+    pgroup.CreateChild("AssemblySearchPaths").SetValue(coreCLRAbsPath);
 }
 
 void NETCSProject::CreateDebugPropertyGroup(XMLElement &projectRoot)
@@ -138,6 +144,13 @@ void NETCSProject::CreateDebugPropertyGroup(XMLElement &projectRoot)
     pgroup.CreateChild("ConsolePause").SetValue("false");
     pgroup.CreateChild("AllowUnsafeBlocks").SetValue("true");
     pgroup.CreateChild("NoStdLib").SetValue("true");
+    pgroup.CreateChild("NoConfig").SetValue("true");
+    pgroup.CreateChild("NoCompilerStandardLib").SetValue("true");
+
+    ToolEnvironment* tenv = GetSubsystem<ToolEnvironment>();
+    const String& coreCLRAbsPath = tenv->GetNETCoreCLRAbsPath();
+    pgroup.CreateChild("AssemblySearchPaths").SetValue(coreCLRAbsPath);
+
 }
 
 void NETCSProject::CreateMainPropertyGroup(XMLElement& projectRoot)