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