azure: enable build and test of debug compiler

This commit is contained in:
Rainer Schuetze 2019-08-05 08:36:17 +02:00
parent 91af080df2
commit 73df16b5cd
6 changed files with 79 additions and 44 deletions

View file

@ -28,13 +28,31 @@ download() {
curl -fsSL -A "$CURL_USER_AGENT" --connect-timeout 5 --speed-time 30 --speed-limit 1024 --retry 5 --retry-delay 5 "$url" -o "$path"
}
install_grep() {
local tools_dir="${DMD_DIR}/tools"
mkdir -p "$tools_dir"
cd "$tools_dir"
download "http://downloads.dlang.org/other/grep-3.1.zip" "grep-3.1.zip"
unzip "grep-3.1.zip" # contains grep.exe
export PATH="${tools_dir}:$PATH"
################################################################################
# Download dmd
################################################################################
install_host_dmd() {
if [ ! -f dmd2/README.TXT ]; then
download "http://downloads.dlang.org/releases/2.x/${HOST_DMD_VERSION}/dmd.${HOST_DMD_VERSION}.windows.7z" dmd2.7z
7z x dmd2.7z > /dev/null
fi
export PATH="$PWD/dmd2/windows/bin/:$PATH"
export HOST_DC="$PWD/dmd2/windows/bin/dmd.exe"
export DM_MAKE="$PWD/dmd2/windows/bin/make.exe"
dmd --version
}
################################################################################
# Download dmc
################################################################################
install_host_dmc() {
if [ ! -f dm/README.TXT ]; then
download "http://downloads.dlang.org/other/dm857c.zip" dmc.zip
7z x dmc.zip > /dev/null
fi
dm/bin/dmc | head -n 1 || true
}
################################################################################

View file

@ -53,8 +53,13 @@ dm_make() {
cp "$DMC" "$DM_MAKE" "dm/path"
}
echo "[STEP]: Downloading LDC"
ldc
if [ "$D_COMPILER" == "dmd" ]; then
echo "[STEP]: Downloading DMD"
install_host_dmd
elif [ "$D_COMPILER" == "ldc" ]; then
echo "[STEP]: Downloading LDC"
ldc
fi
echo "[STEP]: Downloading VisualD"
visuald

View file

@ -14,9 +14,16 @@ steps:
@echo on
call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" %ARCH%
@echo on
set VISUALD_INSTALLER=VisualD-%VISUALD_VER%.exe
set DMD_DIR=%cd%
set DMD=%DMD_DIR%\generated\Windows\Release\Win32\dmd.exe
if "%CONFIGURATION%" == "" set CONFIGURATION=Release
set PLATFORM=Win32
set MODEL=32mscoff
if "%ARCH%"=="x64" set PLATFORM=x64
if "%ARCH%"=="x64" set MODEL=64
set DMD=%DMD_DIR%\generated\Windows\%CONFIGURATION%\%PLATFORM%\dmd.exe
set VISUALD_INSTALLER=VisualD-%VISUALD_VER%.exe
set DMD_TESTSUITE_MAKE_ARGS=-j3
set DM_MAKE=%DMD_DIR%\dm\path\make.exe
set LDC_DIR=%DMD_DIR%\ldc2-%LDC_VERSION%-windows-multilib
@ -47,35 +54,40 @@ steps:
.\%VISUALD_INSTALLER% /S
REM configure DMD path
REM reg add "HKLM\SOFTWARE\DMD" /v InstallationFolder /t REG_SZ /d "%DMD_DIR%\dmd2" /reg:32 /f
if "%D_COMPILER%" == "dmd" reg add "HKLM\SOFTWARE\DMD" /v InstallationFolder /t REG_SZ /d "%DMD_DIR%" /reg:32 /f
REM configure LDC path
reg add "HKLM\SOFTWARE\LDC" /v InstallationFolder /t REG_SZ /d "%LDC_DIR%" /reg:32 /f
if "%D_COMPILER%" == "ldc" reg add "HKLM\SOFTWARE\LDC" /v InstallationFolder /t REG_SZ /d "%LDC_DIR%" /reg:32 /f
REM build via VS projects with LDC
cd src
set LDC_ARGS=%LDC_ARGS% /p:DCompiler=LDC
msbuild /target:dmd /p:Configuration=Release /p:Platform=Win32 %LDC_ARGS% vcbuild\dmd.sln || exit /B 1
if "%D_COMPILER%" == "ldc" set LDC_ARGS=%LDC_ARGS% /p:DCompiler=LDC
msbuild /target:dmd /p:Configuration=%CONFIGURATION% /p:Platform=%PLATFORM% %LDC_ARGS% vcbuild\dmd.sln || exit /B 1
%DMD% --version
grep --version
REM Check: run druntime unittests
cd "%DMD_DIR%\..\druntime"
"%DM_MAKE%" -f win64.mak MODEL=32mscoff "DMD=%DMD%" "VCDIR=%VCINSTALLDIR%." "CC=%MSVC_CC%" "MAKE=%DM_MAKE%" target || exit /B 2
"%DM_MAKE%" -f win64.mak MODEL=%MODEL% "DMD=%DMD%" "VCDIR=%VCINSTALLDIR%." "CC=%MSVC_CC%" "MAKE=%DM_MAKE%" target || exit /B 2
echo "[DRUNTIME] running tests..."
"%DM_MAKE%" -f win64.mak MODEL=32mscoff "DMD=%DMD%" "VCDIR=%VCINSTALLDIR%." "CC=%MSVC_CC%" "MAKE=%DM_MAKE%" unittest32mscoff || exit /B 3
"%DM_MAKE%" -f win64.mak MODEL=32mscoff "DMD=%DMD%" "VCDIR=%VCINSTALLDIR%." "CC=%MSVC_CC%" "MAKE=%DM_MAKE%" test_all || exit /B 4
"%DM_MAKE%" -f win64.mak MODEL=%MODEL% "DMD=%DMD%" "VCDIR=%VCINSTALLDIR%." "CC=%MSVC_CC%" "MAKE=%DM_MAKE%" unittest || exit /B 3
"%DM_MAKE%" -f win64.mak MODEL=%MODEL% "DMD=%DMD%" "VCDIR=%VCINSTALLDIR%." "CC=%MSVC_CC%" "MAKE=%DM_MAKE%" test_all || exit /B 4
REM Check: build phobos
cd "%DMD_DIR%\..\phobos"
"%DM_MAKE%" -f win64.mak MODEL=32mscoff "DMD=%DMD%" "VCDIR=%VCINSTALLDIR%." "CC=%MSVC_CC%" "AR=%MSVC_AR%" "MAKE=%DM_MAKE%" || exit /B 5
"%DM_MAKE%" -f win64.mak MODEL=%MODEL% "DMD=%DMD%" "VCDIR=%VCINSTALLDIR%." "CC=%MSVC_CC%" "AR=%MSVC_AR%" "MAKE=%DM_MAKE%" || exit /B 5
REM Build DMD VERSION + string imports (not built by VisualD)
copy "%DMD_DIR%\VERSION" "%DMD_DIR%\generated\Windows\Release\Win32\VERSION"
REM Run DMD testsuite
cd "%DMD_DIR%\test"
cp %DMD_DIR%\..\phobos\phobos32mscoff.lib .
"%GNU_MAKE%" -j%NUMBER_OF_PROCESSORS% all MODEL=32mscoff ARGS="-O -inline -g" OS=windows DMD="%DMD%" "CC=%MSVC_CC%" DMD_MODEL=win32 || exit /B 6
cp %DMD_DIR%\..\phobos\phobos%MODEL%.lib .
"%GNU_MAKE%" -j%NUMBER_OF_PROCESSORS% all MODEL=%MODEL% ARGS="-O -inline -g" OS=windows DMD="%DMD%" "CC=%MSVC_CC%" DMD_MODEL=%PLATFORM% BUILD=%CONFIGURATION% || exit /B 6
cd "%DMD_DIR%\..\phobos"
REM Check: build phobos unittests
cp %LDC_DIR%\lib32\libcurl.dll .
"%DM_MAKE%" -f win64.mak unittest MODEL=32mscoff "DMD=%DMD%" "VCDIR=%VCINSTALLDIR%." "CC=%MSVC_CC%" "MAKE=%DM_MAKE%"
if "%D_COMPILER%" == "ldc" cp %LDC_DIR%\lib32\libcurl.dll .
if "%D_COMPILER%_%MODEL%" == "dmd_64" cp %DMD_DIR%\bin64\libcurl.dll .
if "%D_COMPILER%_%MODEL%" == "dmd_32mscoff" cp %DMD_DIR%\bin\libcurl.dll .
"%DM_MAKE%" -f win64.mak unittest MODEL=%MODEL% "DMD=%DMD%" "VCDIR=%VCINSTALLDIR%." "CC=%MSVC_CC%" "MAKE=%DM_MAKE%"

View file

@ -8,25 +8,6 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
GNU_MAKE="$(which make)"
install_host_dmd() {
if [ ! -f dmd2/README.TXT ]; then
download "http://downloads.dlang.org/releases/2.x/${HOST_DMD_VERSION}/dmd.${HOST_DMD_VERSION}.windows.7z" dmd2.7z
7z x dmd2.7z > /dev/null
fi
export PATH="$PWD/dmd2/windows/bin/:$PATH"
export HOST_DC="$PWD/dmd2/windows/bin/dmd.exe"
export DM_MAKE="$PWD/dmd2/windows/bin/make.exe"
dmd --version
}
install_host_dmc() {
if [ ! -f dm/README.TXT ]; then
download "http://downloads.dlang.org/other/dm857c.zip" dmc.zip
7z x dmc.zip > /dev/null
fi
dm/bin/dmc | head -n 1 || true
}
################################################################################
# Setup required tools
################################################################################

View file

@ -40,7 +40,7 @@ jobs:
VSINSTALLDIR: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\
strategy:
matrix:
visuald-ldc:
win32-ldc:
OS: Win_32
MODEL: 32
ARCH: x86
@ -49,3 +49,22 @@ jobs:
LDC_VERSION: 1.14.0
steps:
- template: .azure-pipelines/windows-visual-studio.yml
- job: Windows_VisualD_Debug
timeoutInMinutes: 120
pool:
vmImage: 'vs2017-win2016'
variables:
VSINSTALLDIR: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\
HOST_DMD_VERSION: 2.086.1
strategy:
matrix:
x64-debug-dmd:
OS: Win_64
MODEL: 64
ARCH: x64
CONFIGURATION: Debug
D_COMPILER: dmd
VISUALD_VER: v0.49.0
steps:
- template: .azure-pipelines/windows-visual-studio.yml

View file

@ -221,7 +221,7 @@
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\VERSION">
<Message>Creating VERSION...</Message>
<Message>Creating VERSION: $(_rdmdExe) ..\..\config.d $(OutDir) ..\..\VERSION</Message>
<Command>$(_rdmdExe) ..\..\config.d $(OutDir) ..\..\VERSION</Command>
<Outputs>$(OutDir)VERSION;%(Outputs)</Outputs>
</CustomBuild>