2015-10-15 19:18:45 +00:00
|
|
|
@echo off
|
|
|
|
|
|
|
|
setlocal
|
|
|
|
|
|
|
|
REM Build 'dotnet' using a version of itself hosted on the DNX
|
|
|
|
REM The output of this is independent of DNX
|
|
|
|
|
|
|
|
REM This trick gets the absolute path from a relative path
|
|
|
|
pushd %~dp0..
|
|
|
|
set REPOROOT=%CD%
|
|
|
|
popd
|
|
|
|
|
2015-10-16 23:55:47 +00:00
|
|
|
set RID=win7-x64
|
2015-10-21 22:21:14 +00:00
|
|
|
set TFM=dnxcore50
|
2015-10-20 16:05:17 +00:00
|
|
|
set DNX_DIR=%REPOROOT%\artifacts\%RID%\dnx
|
2015-10-16 23:55:47 +00:00
|
|
|
set STAGE1_DIR=%REPOROOT%\artifacts\%RID%\stage1
|
|
|
|
set STAGE2_DIR=%REPOROOT%\artifacts\%RID%\stage2
|
2015-10-21 22:21:14 +00:00
|
|
|
set START_PATH=%PATH%
|
2015-10-15 19:18:45 +00:00
|
|
|
|
2015-10-29 18:04:55 +00:00
|
|
|
call %~dp0dnvm2.cmd upgrade -a dotnet_stage0
|
2015-10-15 19:18:45 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
2015-10-29 18:04:55 +00:00
|
|
|
REM Gross! But CMD has no other way to do this :(
|
|
|
|
where dotnet > %temp%\dotnet-cli-build-temp.tmp
|
|
|
|
set /P DOTNET_PATH=<%temp%\dotnet-cli-build-temp.tmp
|
|
|
|
pushd %DOTNET_PATH%\..
|
|
|
|
set STAGE0_DIR=%CD%
|
|
|
|
set DNX_ROOT=%STAGE0_DIR%\dnx
|
|
|
|
popd
|
2015-10-15 19:18:45 +00:00
|
|
|
|
|
|
|
if exist %STAGE1_DIR% rd /s /q %STAGE1_DIR%
|
|
|
|
|
2015-10-29 18:04:55 +00:00
|
|
|
echo Running 'dotnet restore' to restore packages
|
|
|
|
call dotnet restore "%REPOROOT%"
|
2015-10-15 19:18:45 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
2015-10-16 22:41:41 +00:00
|
|
|
echo Building basic dotnet tools using older dotnet SDK version
|
|
|
|
|
2015-10-15 19:18:45 +00:00
|
|
|
echo Building stage1 dotnet.exe ...
|
2015-10-29 18:04:55 +00:00
|
|
|
dotnet publish --framework %TFM% --runtime %RID% --output "%STAGE1_DIR%" "%REPOROOT%\src\Microsoft.DotNet.Cli"
|
2015-10-15 19:18:45 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
|
|
|
echo Building stage1 dotnet-compile.exe ...
|
2015-10-29 18:04:55 +00:00
|
|
|
dotnet publish --framework %TFM% --runtime %RID% --output "%STAGE1_DIR%" "%REPOROOT%\src\Microsoft.DotNet.Tools.Compiler"
|
2015-10-15 19:18:45 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
2015-10-18 08:17:13 +00:00
|
|
|
echo Building stage1 dotnet-compile-csc.exe ...
|
2015-10-29 18:04:55 +00:00
|
|
|
dotnet publish --framework %TFM% --runtime %RID% --output "%STAGE1_DIR%" "%REPOROOT%\src\Microsoft.DotNet.Tools.Compiler.Csc"
|
2015-10-18 08:17:13 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
2015-10-15 19:18:45 +00:00
|
|
|
echo Building stage1 dotnet-publish.exe ...
|
2015-10-29 18:04:55 +00:00
|
|
|
dotnet publish --framework %TFM% --runtime %RID% --output "%STAGE1_DIR%" "%REPOROOT%\src\Microsoft.DotNet.Tools.Publish"
|
2015-10-15 19:18:45 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
2015-10-19 04:07:48 +00:00
|
|
|
echo Building stage1 dotnet-publish.exe ...
|
2015-10-29 18:04:55 +00:00
|
|
|
dotnet publish --framework %TFM% --runtime %RID% --output "%STAGE1_DIR%" "%REPOROOT%\src\Microsoft.DotNet.Tools.Resgen"
|
2015-10-19 04:07:48 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
2015-10-15 19:18:45 +00:00
|
|
|
echo Re-building dotnet tools with the bootstrapped version
|
|
|
|
REM This should move into a proper build script of some kind once we are bootstrapped
|
2015-10-21 22:21:14 +00:00
|
|
|
set PATH=%STAGE1_DIR%;%START_PATH%
|
2015-10-15 19:18:45 +00:00
|
|
|
|
|
|
|
if exist %STAGE2_DIR% rd /s /q %STAGE2_DIR%
|
|
|
|
|
|
|
|
echo Building stage2 dotnet.exe ...
|
2015-10-21 22:21:14 +00:00
|
|
|
dotnet publish --framework %TFM% --runtime %RID% --output "%STAGE2_DIR%" "%REPOROOT%\src\Microsoft.DotNet.Cli"
|
2015-10-15 19:18:45 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
|
|
|
echo Building stage2 dotnet-compile.exe ...
|
2015-10-21 22:21:14 +00:00
|
|
|
dotnet publish --framework %TFM% --runtime %RID% --output "%STAGE2_DIR%" "%REPOROOT%\src\Microsoft.DotNet.Tools.Compiler"
|
2015-10-15 19:18:45 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
2015-10-18 08:17:13 +00:00
|
|
|
echo Building stage2 dotnet-compile-csc.exe ...
|
2015-10-21 22:21:14 +00:00
|
|
|
dotnet publish --framework %TFM% --runtime %RID% --output "%STAGE2_DIR%" "%REPOROOT%\src\Microsoft.DotNet.Tools.Compiler.Csc"
|
2015-10-18 08:17:13 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
2015-10-15 19:18:45 +00:00
|
|
|
echo Building stage2 dotnet-publish.exe ...
|
2015-10-21 22:21:14 +00:00
|
|
|
dotnet publish --framework %TFM% --runtime %RID% --output "%STAGE2_DIR%" "%REPOROOT%\src\Microsoft.DotNet.Tools.Publish"
|
2015-10-15 19:18:45 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
2015-10-19 04:07:48 +00:00
|
|
|
echo Building stage2 dotnet-publish.exe ...
|
2015-10-21 22:21:14 +00:00
|
|
|
dotnet publish --framework %TFM% --runtime %RID% --output "%STAGE2_DIR%" "%REPOROOT%\src\Microsoft.DotNet.Tools.Resgen"
|
2015-10-19 04:07:48 +00:00
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
2015-10-28 23:33:36 +00:00
|
|
|
echo Crossgening Roslyn compiler ...
|
|
|
|
call %~dp0crossgen/crossgen_roslyn.cmd %STAGE2_DIR%
|
2015-10-29 05:42:14 +00:00
|
|
|
if errorlevel 1 goto fail
|
2015-10-28 23:33:36 +00:00
|
|
|
|
2015-10-21 22:21:14 +00:00
|
|
|
REM Copy DNX in to stage2
|
|
|
|
xcopy /s /q %DNX_ROOT% %STAGE2_DIR%\dnx\
|
|
|
|
|
2015-10-29 18:04:55 +00:00
|
|
|
REM Copy the dotnet-restore script
|
2015-10-21 22:21:14 +00:00
|
|
|
copy %~dp0dotnet-restore.cmd %STAGE2_DIR%\dotnet-restore.cmd
|
|
|
|
|
2015-10-29 18:04:55 +00:00
|
|
|
REM Smoke-test the output
|
2015-10-21 22:21:14 +00:00
|
|
|
set PATH=%STAGE2_DIR%;%START_PATH%
|
|
|
|
|
|
|
|
del "%REPOROOT%\test\TestApp\project.lock.json"
|
2015-10-29 18:04:55 +00:00
|
|
|
dotnet restore "%REPOROOT%\test\TestApp" --runtime "%RID%" --quiet
|
2015-10-21 22:21:14 +00:00
|
|
|
dotnet publish "%REPOROOT%\test\TestApp" --framework "%TFM%" --runtime "%RID%" --output "%REPOROOT%\artifacts\%RID%\smoketest"
|
|
|
|
|
|
|
|
"%REPOROOT%/artifacts/%RID%/smoketest/TestApp"
|
|
|
|
if errorlevel 1 goto fail
|
|
|
|
|
|
|
|
REM Check that a compiler error is reported
|
2015-10-29 18:04:55 +00:00
|
|
|
dotnet compile "%REPOROOT%\test\compile\failing\SimpleCompilerError" --framework "%TFM%" >nul
|
2015-10-21 22:21:14 +00:00
|
|
|
if %errorlevel% == 0 goto fail
|
|
|
|
|
2015-10-15 19:18:45 +00:00
|
|
|
echo Bootstrapped dotnet to %STAGE2_DIR%
|
|
|
|
|
|
|
|
goto end
|
|
|
|
|
|
|
|
:fail
|
2015-10-21 22:21:14 +00:00
|
|
|
echo Bootstrapping failed
|
2015-10-15 19:18:45 +00:00
|
|
|
exit /B 1
|
|
|
|
|
2015-10-20 16:05:17 +00:00
|
|
|
:end
|
2015-10-21 22:21:14 +00:00
|
|
|
exit /B 0
|