EPICS Home

Experimental Physics and Industrial Control System


 
2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

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  <20192020  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  <20192020  2021  2022  2023  2024