summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Rickert <rickert@fortiss.org>2020-11-19 18:36:47 +0100
committerNick Wellnhofer <wellnhofer@aevum.de>2020-11-30 11:12:34 +0100
commitb45a8d3e2267b938b9e4aa1fa442afdd92d83ffe (patch)
tree09a1c3b2e1830567bd1f6dfa306a06fc07d82387
parent95714adb015b479d1f01f4377ce113d0dfb5f644 (diff)
downloadlibxslt-b45a8d3e2267b938b9e4aa1fa442afdd92d83ffe.tar.gz
Add CI for CMake on Linux and MinGW
-rw-r--r--.gitlab-ci.yml132
1 files changed, 129 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 804ff156..3c7d035a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,8 +1,6 @@
-default:
+.test:
# Reuse libxml2 image
image: registry.gitlab.gnome.org/gnome/libxml2
-
-.test:
script:
- |
git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git
@@ -49,3 +47,131 @@ clang:msan:
CC: clang
CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=memory -Wimplicit-int-conversion -Wno-error=cast-align"
+.cmake:linux:
+ image: registry.gitlab.gnome.org/gnome/libxml2
+ before_script:
+ - "[ ! -d libxml2-install ] && \
+ git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git libxml2-source && \
+ cmake -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLIBXML2_WITH_TESTS=OFF -S libxml2-source -B libxml2-build && \
+ cmake --build libxml2-build --target install && \
+ mkdir -p libxml2-install/share/libxml2 && \
+ cp libxml2-source/Copyright libxml2-install/share/libxml2"
+ - export CMAKE_PREFIX_PATH=$CI_PROJECT_DIR/libxml2-install:$CMAKE_PREFIX_PATH
+ - export PATH=$CI_PROJECT_DIR/libxml2-install/bin:$PATH
+ - export LD_LIBRARY_PATH=$CI_PROJECT_DIR/libxml2-install/bin:$LD_LIBRARY_PATH
+ script:
+ - cmake -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxslt-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxslt-build
+ - cmake --build libxslt-build --target install
+ - mkdir -p libxslt-install/share/libxslt
+ - cp Copyright libxslt-install/share/libxslt
+ after_script:
+ - cd libxslt-install
+ - tar -czf ../libxslt-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz *
+ cache:
+ key: "Linux-x86_64"
+ paths:
+ - libxml2-$Env:LIBXML2_VERSION-install/
+ artifacts:
+ paths:
+ - libxslt-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz
+ expire_in: 1 day
+
+cmake:linux:gcc:shared:
+ extends: .cmake:linux
+ variables:
+ BUILD_SHARED_LIBS: "ON"
+ CC: gcc
+ SUFFIX: shared
+
+cmake:linux:gcc:static:
+ extends: .cmake:linux
+ variables:
+ BUILD_SHARED_LIBS: "OFF"
+ CC: gcc
+ SUFFIX: static
+
+cmake:linux:clang:shared:
+ extends: .cmake:linux
+ variables:
+ BUILD_SHARED_LIBS: "ON"
+ CC: clang
+ SUFFIX: shared
+
+cmake:linux:clang:static:
+ extends: .cmake:linux
+ variables:
+ BUILD_SHARED_LIBS: "OFF"
+ CC: clang
+ SUFFIX: static
+
+.cmake:mingw:
+ tags:
+ - win32-ps
+ before_script:
+ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12"
+ - $Env:Path="C:\msys64\$Env:MINGW_PATH\bin;C:\msys64\usr\bin;$Env:Path"
+ - pacman --noconfirm -Syu
+ - pacman --noconfirm -S
+ $Env:MINGW_PACKAGE_PREFIX-cmake
+ $Env:MINGW_PACKAGE_PREFIX-python2
+ - 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-install)) {
+ git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git libxml2-source ;
+ cmake -G Ninja -DBUILD_SHARED_LIBS=$Env:BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxml2-install -DLIBXML2_WITH_TESTS=OFF -S libxml2-source -B libxml2-build ;
+ cmake --build libxml2-build --config RelWithDebInfo --target install ;
+ New-Item -ItemType Directory libxml2-install\share\libxml2 ;
+ Copy-Item libxml2-source\Copyright libxml2-install\share\libxml2
+ }
+ - $Env:CMAKE_PREFIX_PATH="$Env:CI_PROJECT_DIR\libxml2-install;$Env:CMAKE_PREFIX_PATH"
+ - $Env:Path="$Env:CI_PROJECT_DIR\libxml2-install\bin;$Env:Path"
+ script:
+ - cmake -G Ninja -DBUILD_SHARED_LIBS=$Env:BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxslt-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxslt-build
+ - cmake --build libxslt-build --target install
+ - New-Item -ItemType Directory libxslt-install\share\libxslt
+ - Copy-Item Copyright libxslt-install\share\libxslt
+ after_script:
+ - .\7za.exe a libxslt-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z .\libxslt-install\*
+ cache:
+ key: "$MINGW_PACKAGE_PREFIX"
+ paths:
+ - libxml2-install/
+ - 7za.exe
+ artifacts:
+ paths:
+ - libxslt-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z
+ expire_in: 1 day
+
+cmake:mingw:w64-i686:shared:
+ extends: .cmake:mingw
+ variables:
+ BUILD_SHARED_LIBS: "ON"
+ MINGW_PACKAGE_PREFIX: mingw-w64-i686
+ MINGW_PATH: mingw32
+ SUFFIX: shared
+
+cmake:mingw:w64-i686:static:
+ extends: .cmake:mingw
+ variables:
+ BUILD_SHARED_LIBS: "OFF"
+ MINGW_PACKAGE_PREFIX: mingw-w64-i686
+ MINGW_PATH: mingw32
+ SUFFIX: static
+
+cmake:mingw:w64-x86_64:shared:
+ extends: .cmake:mingw
+ variables:
+ BUILD_SHARED_LIBS: "ON"
+ MINGW_PACKAGE_PREFIX: mingw-w64-x86_64
+ MINGW_PATH: mingw64
+ SUFFIX: shared
+
+cmake:mingw:w64-x86_64:static:
+ extends: .cmake:mingw
+ variables:
+ BUILD_SHARED_LIBS: "OFF"
+ MINGW_PACKAGE_PREFIX: mingw-w64-x86_64
+ MINGW_PATH: mingw64
+ SUFFIX: static