From 73df16b5cdc44d46a6df9968362b0cdecb6ff7aa Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Mon, 5 Aug 2019 08:36:17 +0200 Subject: [PATCH] azure: enable build and test of debug compiler --- .azure-pipelines/lib.sh | 32 +++++++++++++---- .azure-pipelines/windows-visual-studio.sh | 9 +++-- .azure-pipelines/windows-visual-studio.yml | 40 ++++++++++++++-------- .azure-pipelines/windows.sh | 19 ---------- azure-pipelines.yml | 21 +++++++++++- src/vcbuild/dmd.vcxproj | 2 +- 6 files changed, 79 insertions(+), 44 deletions(-) diff --git a/.azure-pipelines/lib.sh b/.azure-pipelines/lib.sh index d3071efdbd..1dd48ce3aa 100644 --- a/.azure-pipelines/lib.sh +++ b/.azure-pipelines/lib.sh @@ -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 } ################################################################################ diff --git a/.azure-pipelines/windows-visual-studio.sh b/.azure-pipelines/windows-visual-studio.sh index f122c758bf..a3f0e7f93a 100644 --- a/.azure-pipelines/windows-visual-studio.sh +++ b/.azure-pipelines/windows-visual-studio.sh @@ -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 diff --git a/.azure-pipelines/windows-visual-studio.yml b/.azure-pipelines/windows-visual-studio.yml index 75935c007a..ca6a67fd0a 100644 --- a/.azure-pipelines/windows-visual-studio.yml +++ b/.azure-pipelines/windows-visual-studio.yml @@ -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%" diff --git a/.azure-pipelines/windows.sh b/.azure-pipelines/windows.sh index 2d9260c0e7..7e77d8948a 100644 --- a/.azure-pipelines/windows.sh +++ b/.azure-pipelines/windows.sh @@ -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 ################################################################################ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1056f8e423..59a5ed20e3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -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 diff --git a/src/vcbuild/dmd.vcxproj b/src/vcbuild/dmd.vcxproj index d99e63b742..fb99e7ae15 100644 --- a/src/vcbuild/dmd.vcxproj +++ b/src/vcbuild/dmd.vcxproj @@ -221,7 +221,7 @@ - Creating VERSION... + Creating VERSION: $(_rdmdExe) ..\..\config.d $(OutDir) ..\..\VERSION $(_rdmdExe) ..\..\config.d $(OutDir) ..\..\VERSION $(OutDir)VERSION;%(Outputs)