Experimental Physics and Industrial Control System
Subject: |
[Merge] ~freddie-akeroyd/epics-base:appveyor_debug_builds into epics-base:7.0 |
From: |
Freddie Akeroyd via Core-talk <[email protected]> |
To: |
[email protected] |
Date: |
Sun, 29 Sep 2019 20:55:33 -0000 |
Freddie Akeroyd has proposed merging ~freddie-akeroyd/epics-base:appveyor_debug_builds into epics-base:7.0.
Requested reviews:
EPICS Core Developers (epics-core)
For more details, see:
https://code.launchpad.net/~freddie-akeroyd/epics-base/+git/epics-base/+merge/373382
Enable VS 2019 and debug builds on Appveyor
* Add VS2019 build target
* Install Strawberry perl when building VS2019 (this image is missing perl)
* Build debug configuration with MSVC (previously just mingw and cygwin)
* allow static-debug on MSVC by setting -static and modifying CONFIG_SITE
LP: #1845887
--
Your team EPICS Core Developers is requested to review the proposed merge of ~freddie-akeroyd/epics-base:appveyor_debug_builds into epics-base:7.0.
diff --git a/.appveyor.yml b/.appveyor.yml
index 3d0b49f..b3ae1fa 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -46,6 +46,8 @@ environment:
- TOOLCHAIN: 14.0
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
TOOLCHAIN: 2017
+ - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
+ TOOLCHAIN: 2019
- TOOLCHAIN: cygwin
- TOOLCHAIN: mingw
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
@@ -83,6 +85,20 @@ build_script:
test_script:
- cmd: .ci/appveyor-make.bat runtests
+
+#---------------------------------#
+# debugging #
+#---------------------------------#
+
+## if you want to connect by remote desktop to a failed build, uncomment these lines
+## note that you will need to connect within the usual build timeout limit (60 minutes)
+## so you may want to adjust the build matrix above to just build the one of interest
+
+#on_failure:
+# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
+# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
+
+
#---------------------------------#
# notifications #
#---------------------------------#
diff --git a/.ci/appveyor-make.bat b/.ci/appveyor-make.bat
index 9cd8fe6..d74c875 100644
--- a/.ci/appveyor-make.bat
+++ b/.ci/appveyor-make.bat
@@ -1,6 +1,6 @@
:: Universal build script for AppVeyor (https://ci.appveyor.com/)
:: Environment:
-:: TOOLCHAIN - toolchain version [10.0/11.0/12.0/14.0/2017/cygwin/mingw]
+:: TOOLCHAIN - toolchain version [10.0/11.0/12.0/14.0/2017/2019/cygwin/mingw]
:: CONFIGURATION - determines EPICS build [dynamic/static]
:: PLATFORM - architecture [x86/x64]
::
@@ -8,8 +8,16 @@
Setlocal EnableDelayedExpansion
+:: we do not currently have a combined static and debug EPICS_HOST_ARCH target
+:: So a combined debug and static target will appear to be just static
+:: but debug will have been specified in CONFIG_SITE by appveyor-prepare.bat
set "ST="
-if /i "%CONFIGURATION%"=="static" set ST=-static
+echo.%CONFIGURATION% | findstr /C:"debug">nul && (
+ set "ST=-debug"
+)
+echo.%CONFIGURATION% | findstr /C:"static">nul && (
+ set "ST=-static"
+)
set OS=64BIT
if "%PLATFORM%"=="x86" set OS=32BIT
@@ -56,6 +64,11 @@ if "%TOOLCHAIN%"=="mingw" (
goto Finish
)
+if "%TOOLCHAIN%"=="2019" (
+ echo [INFO] Setting strawberry perl path
+ set "PATH=c:\strawberry\perl\site\bin;C:\strawberry\perl\bin;%PATH%"
+)
+
set "VSINSTALL=C:\Program Files (x86)\Microsoft Visual Studio %TOOLCHAIN%"
if not exist "%VSINSTALL%\" set "VSINSTALL=C:\Program Files (x86)\Microsoft Visual Studio\%TOOLCHAIN%\Community"
if not exist "%VSINSTALL%\" goto MSMissing
@@ -66,7 +79,7 @@ echo [INFO] APPVEYOR_BUILD_WORKER_IMAGE=%APPVEYOR_BUILD_WORKER_IMAGE%
if "%OS%"=="64BIT" (
set EPICS_HOST_ARCH=windows-x64%ST%
- :: VS 2017
+ :: VS 2017/2019
if exist "%VSINSTALL%\VC\Auxiliary\Build\vcvars64.bat" (
call "%VSINSTALL%\VC\Auxiliary\Build\vcvars64.bat"
where cl
@@ -91,7 +104,7 @@ if "%OS%"=="64BIT" (
)
) else (
set EPICS_HOST_ARCH=win32-x86%ST%
- :: VS 2017
+ :: VS 2017/2019
if exist "%VSINSTALL%\VC\Auxiliary\Build\vcvars32.bat" (
call "%VSINSTALL%\VC\Auxiliary\Build\vcvars32.bat"
where cl
diff --git a/.ci/appveyor-prepare.bat b/.ci/appveyor-prepare.bat
index 9f105ee..95a6a07 100644
--- a/.ci/appveyor-prepare.bat
+++ b/.ci/appveyor-prepare.bat
@@ -16,20 +16,26 @@ if "%PLATFORM%"=="x86" set OS=32BIT
echo [INFO] Platform: %OS%
+:: with MSVC either static or debug can be handled as part
+:: of EPICS_HOST_ARCH but not both. So we set the appropriate
+:: options in CONFIG_SITE. For mingw and cygwin they are missing
+:: some static and debug targets so set things here too
+echo.%CONFIGURATION% | findstr /C:"static">nul && (
+ echo SHARED_LIBRARIES=NO>> configure\CONFIG_SITE
+ echo STATIC_BUILD=YES>> configure\CONFIG_SITE
+ echo [INFO] EPICS set up for static build
+) || (
+ echo [INFO] EPICS set up for dynamic build
+)
+
+echo.%CONFIGURATION% | findstr /C:"debug">nul && (
+ echo HOST_OPT=NO>> configure\CONFIG_SITE
+ echo [INFO] EPICS set up for debug build
+) || (
+ echo [INFO] EPICS set up for optimized build
+)
+
if "%TOOLCHAIN%"=="cygwin" (
- echo.%CONFIGURATION% | findstr /C:"static">nul && (
- echo SHARED_LIBRARIES=NO>> configure\CONFIG_SITE
- echo STATIC_BUILD=YES>> configure\CONFIG_SITE
- echo [INFO] EPICS set up for static build
- ) || (
- echo [INFO] EPICS set up for dynamic build
- )
- echo.%CONFIGURATION% | findstr /C:"debug">nul && (
- echo HOST_OPT=NO>> configure\CONFIG_SITE
- echo [INFO] EPICS set up for debug build
- ) || (
- echo [INFO] EPICS set up for optimized build
- )
if "%OS%"=="64BIT" (
echo [INFO] Installing Cygwin 64bit and dependencies
@powershell -Command "(new-object net.webclient).DownloadFile('http://www.cygwin.com/setup-x86_64.exe', 'C:\cygwin64\setup-x86_64.exe')"
@@ -41,23 +47,18 @@ if "%TOOLCHAIN%"=="cygwin" (
)
)
-if "%TOOLCHAIN%"=="mingw" (
- echo.%CONFIGURATION% | findstr /C:"static">nul && (
- echo SHARED_LIBRARIES=NO>> configure\CONFIG_SITE
- echo STATIC_BUILD=YES>> configure\CONFIG_SITE
- echo [INFO] EPICS set up for static build
- ) || (
- echo [INFO] EPICS set up for dynamic build
- )
- echo.%CONFIGURATION% | findstr /C:"debug">nul && (
- echo HOST_OPT=NO>> configure\CONFIG_SITE
- echo [INFO] EPICS set up for debug build
- ) || (
- echo [INFO] EPICS set up for optimized build
- )
-)
-
echo [INFO] Installing Make 4.2.1 from ANL web site
curl -fsS --retry 3 -o C:\tools\make-4.2.1.zip https://epics.anl.gov/download/tools/make-4.2.1-win64.zip
cd \tools
"C:\Program Files\7-Zip\7z" e make-4.2.1.zip
+
+if "%TOOLCHAIN%"=="2019" (
+ set "PERLVER=5.30.0.1"
+ echo [INFO] Installing Strawberry Perl %PERLVER%
+ curl -fsS --retry 3 -o C:\tools\perl-%PERLVER%.zip http://strawberryperl.com/download/%PERLVER%/strawberry-perl-%PERLVER%-64bit.zip
+ cd \tools
+ "C:\Program Files\7-Zip\7z" x perl-%PERLVER%.zip -oC:\strawberry
+ cd \strawberry
+ :: we set PATH in appveyor-build.bat
+ call relocation.pl.bat
+)
- Replies:
- Re: [Merge] ~freddie-akeroyd/epics-base:appveyor_debug_builds into epics-base:7.0 Andrew Johnson via Core-talk
- [Merge] ~freddie-akeroyd/epics-base:appveyor_debug_builds into epics-base:7.0 Andrew Johnson via Core-talk
- Re: [Merge] ~freddie-akeroyd/epics-base:appveyor_debug_builds into epics-base:7.0 mdavidsaver via Core-talk
- Navigate by Date:
- Prev:
[Bug 1845887] [NEW] Appveyor builds: MSVC does not build debug Freddie Akeroyd via Core-talk
- Next:
[Bug 1845887] Re: Appveyor builds: MSVC does not build debug Freddie Akeroyd via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
<2019>
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
[Bug 1845887] Re: Appveyor builds: MSVC does not build debug Freddie Akeroyd via Core-talk
- Next:
Re: [Merge] ~freddie-akeroyd/epics-base:appveyor_debug_builds into epics-base:7.0 Andrew Johnson via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
<2019>
2020
2021
2022
2023
2024