diff options
author | Markus Rickert <rickert@fortiss.org> | 2020-11-19 18:36:47 +0100 |
---|---|---|
committer | Nick Wellnhofer <wellnhofer@aevum.de> | 2020-11-30 11:12:34 +0100 |
commit | b45a8d3e2267b938b9e4aa1fa442afdd92d83ffe (patch) | |
tree | 09a1c3b2e1830567bd1f6dfa306a06fc07d82387 | |
parent | 95714adb015b479d1f01f4377ce113d0dfb5f644 (diff) | |
download | libxslt-b45a8d3e2267b938b9e4aa1fa442afdd92d83ffe.tar.gz |
Add CI for CMake on Linux and MinGW
-rw-r--r-- | .gitlab-ci.yml | 132 |
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 |