mirror of
				https://gitlab.gnome.org/GNOME/libxslt
				synced 2025-11-04 00:53:12 +03:00 
			
		
		
		
	Add CI for CMake on Linux and MinGW
This commit is contained in:
		
				
					committed by
					
						
						Nick Wellnhofer
					
				
			
			
				
	
			
			
			
						parent
						
							95714adb01
						
					
				
				
					commit
					b45a8d3e22
				
			
							
								
								
									
										132
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										132
									
								
								.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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user