summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorMarkus Rickert <rickert@fortiss.org>2021-02-05 23:40:18 +0100
committerNick Wellnhofer <wellnhofer@aevum.de>2021-02-08 17:15:44 +0100
commit2065d340908133b707b62351e12d919cfef9ac94 (patch)
tree334047ae1b3a959437f8517ec042a2c44a4c2bbc /.gitlab-ci.yml
parentafad37216b7aaf6c4faf60cce7358a7bbc04c2b1 (diff)
downloadlibxml2-2065d340908133b707b62351e12d919cfef9ac94.tar.gz
Add CI for CMake on MSVC
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml67
1 files changed, 66 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5622b368..fd2ac6e3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -120,7 +120,7 @@ cmake:linux:clang:static:
.\7za.exe x xmlts20080827.tar.gz -olibxml2-build
}
script:
- - cmake -G Ninja -DBUILD_SHARED_LIBS=$Env:BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxml2-build
+ - cmake -G Ninja -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxml2-build
- cmake --build libxml2-build --target install
- New-Item -ItemType Directory libxml2-install\share\libxml2
- Copy-Item Copyright libxml2-install\share\libxml2
@@ -169,3 +169,68 @@ cmake:mingw:w64-x86_64:static:
MINGW_PACKAGE_PREFIX: mingw-w64-x86_64
MINGW_PATH: mingw64
SUFFIX: static
+
+.cmake:msvc:
+ tags:
+ - win32-ps
+ variables:
+ CMAKE_VERSION: 3.19.4
+ before_script:
+ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12"
+ - if (-not (Test-Path cmake-$Env:CMAKE_VERSION-win64-x64)) {
+ Invoke-WebRequest -Uri http://github.com/Kitware/CMake/releases/download/v$Env:CMAKE_VERSION/cmake-$Env:CMAKE_VERSION-win64-x64.zip -OutFile cmake-$Env:CMAKE_VERSION-win64-x64.zip ;
+ Expand-Archive cmake-$Env:CMAKE_VERSION-win64-x64.zip -DestinationPath .
+ }
+ - $Env:Path="$Env:CI_PROJECT_DIR\cmake-$Env:CMAKE_VERSION-win64-x64\bin;$Env:Path"
+ - if (-not (Test-Path 7za.exe)) {
+ Invoke-WebRequest -Uri https://www.7-zip.org/a/7z1900-extra.7z -OutFile 7z1900-extra.7z ;
+ cmake -E tar xf 7z1900-extra.7z 7za.exe
+ }
+ - if (-not (Test-Path libxml2-build/xmlconf)) {
+ Invoke-WebRequest -Uri https://www.w3.org/XML/Test/xmlts20080827.tar.gz -OutFile xmlts20080827.tar.gz ;
+ .\7za.exe x xmlts20080827.tar.gz -olibxml2-build
+ }
+ script:
+ - cmake -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DLIBXML2_WITH_ICONV=OFF -DLIBXML2_WITH_LZMA=OFF -DLIBXML2_WITH_PYTHON=OFF -DLIBXML2_WITH_ZLIB=OFF -S . -B libxml2-build
+ - cmake --build libxml2-build --config Debug --target install
+ - cmake --build libxml2-build --config Release --target install
+ - New-Item -ItemType Directory libxml2-install\share\libxml2
+ - Copy-Item Copyright libxml2-install\share\libxml2
+ - cd libxml2-build
+ - ctest -C Debug -VV
+ - ctest -C Release -VV
+ after_script:
+ - .\7za.exe a libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:CMAKE_GENERATOR_TOOLSET-$Env:CMAKE_GENERATOR_PLATFORM-$Env:SUFFIX.7z .\libxml2-install\*
+ cache:
+ key: "msvc"
+ paths:
+ - cmake-$Env:CMAKE_VERSION-win64-x64/
+ - libxml2-build/xmlconf/
+ - 7za.exe
+ artifacts:
+ paths:
+ - libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:CMAKE_GENERATOR_TOOLSET-$Env:CMAKE_GENERATOR_PLATFORM-$Env:SUFFIX.7z
+ expire_in: 1 day
+
+.cmake:msvc:v141:
+ extends: .cmake:msvc
+ variables:
+ CMAKE_GENERATOR: Visual Studio 15 2017
+ CMAKE_GENERATOR_TOOLSET: v141
+
+.cmake:msvc:v141:x64:
+ extends: .cmake:msvc:v141
+ variables:
+ CMAKE_GENERATOR_PLATFORM: x64
+
+cmake:msvc:v141:x64:shared:
+ extends: .cmake:msvc:v141:x64
+ variables:
+ BUILD_SHARED_LIBS: "ON"
+ SUFFIX: shared
+
+cmake:msvc:v141:x64:static:
+ extends: .cmake:msvc:v141:x64
+ variables:
+ BUILD_SHARED_LIBS: "OFF"
+ SUFFIX: static