Add a skipmanaged option to build.sh (dotnet/coreclr#19111)
authorOmair Majid <omajid@redhat.com>
Mon, 13 Aug 2018 19:38:37 +0000 (15:38 -0400)
committerJan Vorlicek <janvorli@microsoft.com>
Mon, 13 Aug 2018 19:38:37 +0000 (21:38 +0200)
This option is the opposite of -msbuildonunsupportedplatform, and an
managed version of of -skipnative.

This is useful for bootstrapping on new Linux/x64 distributions, where
dotnet may not work (yet) but coreclr will try and use it anyway,
failing the bootstrap scripts.

See also https://github.com/dotnet/source-build/issues/663 for
additional background information.

Commit migrated from https://github.com/dotnet/coreclr/commit/cba21515787850baaf02fbbd550a5267a8a4f4cf

src/coreclr/build.sh

index 4002f27..bf349a8 100755 (executable)
@@ -26,7 +26,7 @@ export PYTHON
 
 usage()
 {
-    echo "Usage: $0 [BuildArch] [BuildType] [-verbose] [-coverage] [-cross] [-clangx.y] [-ninja] [-configureonly] [-skipconfigure] [-skipnative] [-skipmscorlib] [-skiptests] [-stripsymbols] [-ignorewarnings] [-cmakeargs] [-bindir]"
+    echo "Usage: $0 [BuildArch] [BuildType] [-verbose] [-coverage] [-cross] [-clangx.y] [-ninja] [-configureonly] [-skipconfigure] [-skipnative] [-skipmanaged] [-skipmscorlib] [-skiptests] [-stripsymbols] [-ignorewarnings] [-cmakeargs] [-bindir]"
     echo "BuildArch can be: -x64, -x86, -arm, -armel, -arm64"
     echo "BuildType can be: -debug, -checked, -release"
     echo "-coverage - optional argument to enable code coverage build (currently supported only for Linux and OSX)."
@@ -42,6 +42,7 @@ usage()
     echo "-configureonly - do not perform any builds; just configure the build."
     echo "-skipconfigure - skip build configuration."
     echo "-skipnative - do not build native components."
+    echo "-skipmanaged - do not build managed components."
     echo "-skipmscorlib - do not build mscorlib.dll."
     echo "-skiptests - skip the tests in the 'tests' subdirectory."
     echo "-skipnuget - skip building nuget packages."
@@ -388,6 +389,11 @@ isMSBuildOnNETCoreSupported()
         return
     fi
 
+    if [ $__SkipManaged == 1 ]; then
+        __isMSBuildOnNETCoreSupported=0
+        return
+    fi
+
     if [ "$__HostArch" == "x64" ]; then
         if [ "$__HostOS" == "Linux" ]; then
             __isMSBuildOnNETCoreSupported=1
@@ -631,6 +637,7 @@ __PgoOptimize=1
 __IbcTuning=""
 __ConfigureOnly=0
 __SkipConfigure=0
+__SkipManaged=0
 __SkipRestore=""
 __SkipNuget=0
 __SkipCoreCLR=0
@@ -810,6 +817,10 @@ while :; do
             __DoCrossArchBuild=1
             ;;
 
+        skipmanaged|-skipmanaged)
+            __SkipManaged=1
+            ;;
+
         skipmscorlib|-skipmscorlib)
             __SkipMSCorLib=1
             ;;