blob: 4dc53c54912b20ea37db6867da86c91ee520a7fb [file] [log] [blame]
# This file is responsible for seting up several compiler enviorments.
# Once setup is done, the template "CI/build-cmake.yml" is invoked to test freetype
# compiles successfully on various operating systems and compilers liststed
# below. Artifacts of all builds are also published to azure.
# TODO: Add functionality tests
trigger:
- master
variables:
vcpkgGitRef: a41c53c14794bb32cb03269069cdd3b66fedda5f # Update this git ref to update vcpkg
vckpgPackages: zlib bzip2 libpng harfbuzz
jobs:
## Linux ##
- job: ArchLinux_Regression
displayName: "Archlinux Regression tests"
pool:
vmImage: ubuntu-latest
strategy:
matrix:
Test1:
TEST: 0
Test2:
TEST: 1
Test3:
TEST: 2
timeoutInMinutes: 360
steps:
- checkout: self
path: freetype2
- template: CI/arch-setup.yml
- template: CI/regression-test.yml
parameters:
preCMD: 'cd $(Build.BinariesDirectory) && cat << EOF | sudo ./root.x86_64/bin/arch-chroot ./root.x86_64/'
srcDIR: freetype2
postCMD: 'EOF'
testNum: $(TEST)
- job: ArchLinux_Autotools
displayName: "Archlinux Autotools"
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
path: freetype2
- template: CI/arch-setup.yml
- template: CI/build-autotools.yml
- job: ArchLinux_Cmake
displayName: "Archlinux CMake"
pool:
vmImage: ubuntu-latest
strategy:
matrix:
shared:
BUILD_SHARED_LIBS: true
BUILD_ARGS: '-G "Unix Makefiles" -D BUILD_SHARED_LIBS=$(BUILD_SHARED_LIBS)'
static:
BUILD_SHARED_LIBS: false
steps:
- checkout: self
path: freetype2
- template: CI/arch-setup.yml
- template: CI/build-cmake.yml
parameters:
preCMD: 'cd $(Build.BinariesDirectory) && cat << EOF | sudo ./root.x86_64/bin/arch-chroot ./root.x86_64/'
srcDIR: freetype2
postCMD: 'EOF'
buildArgs: $(BUILD_ARGS)
## Windows ##
- job: MSVC_2019_CMake
displayName: "MVSC 2019 CMake"
pool:
vmImage: windows-latest
strategy:
matrix:
i686_shared:
TRIPLET: x86-windows
BUILD_SHARED_LIBS: true
ARCH: Win32
x86_64_shared:
TRIPLET: x64-windows
BUILD_SHARED_LIBS: true
ARCH: x64
i686_static:
TRIPLET: x86-windows-static
BUILD_SHARED_LIBS: false
ARCH: Win32
x86_64_static:
TRIPLET: x64-windows-static
BUILD_SHARED_LIBS: false
ARCH: x64
steps:
- task: Cache@2
displayName: 'Cache VCPKG Artifacts'
inputs:
key: '"$(TRIPLET)" | "$(vckpgPackages)" | "$(vcpkgGitRef)" | "$(Agent.OS)"'
path: '$(Build.BinariesDirectory)/vcpkg'
- task: run-vcpkg@0
displayName: 'Run VCPKG'
inputs:
vcpkgArguments: --triplet $(TRIPLET) $(vckpgPackages)
vcpkgGitCommitId: $(vcpkgGitRef)
vcpkgGitURL: https://github.com/microsoft/vcpkg.git
- template: CI/build-cmake.yml
parameters:
buildArgs: '-G "Visual Studio 16 2019" -A $(ARCH) -D CMAKE_TOOLCHAIN_FILE=$(Build.BinariesDirectory)\vcpkg\scripts\buildsystems\vcpkg.cmake -D VCPKG_ROOT=$(Build.BinariesDirectory)\vcpkg -D VCPKG_TARGET_TRIPLET=$(TRIPLET) -D BUILD_SHARED_LIBS=$(BUILD_SHARED_LIBS)'
- job: MINGW_Autotools
displayName: "Mingw Autotools"
pool:
vmImage: windows-latest
strategy:
matrix:
i686:
MINGW_UPPER: MINGW32
MINGW_LOWER: mingw32
MINGW_ARCH: i686
x86_64:
MINGW_UPPER: MINGW64
MINGW_LOWER: mingw64
MINGW_ARCH: x86_64
steps:
- template: CI/mingw-setup.yml
- template: CI/build-autotools.yml
parameters:
mingw: true
- job: MINGW_CMake
displayName: "MingGW CMake"
pool:
vmImage: windows-latest
strategy:
matrix:
i686_shared:
MINGW_UPPER: MINGW32
MINGW_LOWER: mingw32
MINGW_ARCH: i686
BUILD_SHARED_LIBS: true
x86_64_shared:
MINGW_UPPER: MINGW64
MINGW_LOWER: mingw64
MINGW_ARCH: x86_64
BUILD_SHARED_LIBS: true
i686_static:
MINGW_UPPER: MINGW32
MINGW_LOWER: mingw32
MINGW_ARCH: i686
BUILD_SHARED_LIBS: false
x86_64_static:
MINGW_UPPER: MINGW64
MINGW_LOWER: mingw64
MINGW_ARCH: x86_64
BUILD_SHARED_LIBS: false
steps:
- template: CI/mingw-setup.yml
- template: CI/build-cmake.yml
parameters:
mingw: true
buildArgs: '-G \"MSYS Makefiles\" -D BUILD_SHARED_LIBS=$(BUILD_SHARED_LIBS)'
## MacOS X ##
- job: MacOS_X_Autotools
displayName: "MacOS X Autotools"
pool:
vmImage: macos-latest
steps:
- script: |
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh
bash ./install.sh
brew install autoconf automake
displayName: 'Install Brew'
- template: CI/build-autotools.yml
- job: MacOS_X_CMake
displayName: "MacOS X CMake"
pool:
vmImage: macos-latest
steps:
- template: CI/build-cmake.yml
parameters:
buildArgs: '-G Xcode -D BUILD_FRAMEWORK:BOOL=true'
### iOS ##
- job: iOS_CMake
displayName: "iOS CMake"
pool:
vmImage: macos-latest
strategy:
matrix:
OS:
IOS_PLATFORM: OS
Simulator:
IOS_PLATFORM: SIMULATOR64
TV_OS:
IOS_PLATFORM: TVOS
TV_OS_Simulator:
IOS_PLATFORM: SIMULATOR_TVOS
Watch_OS:
IOS_PLATFORM: WATCHOS
Watch_OS_Simulator:
IOS_PLATFORM: SIMULATOR_WATCHOS
steps:
- template: CI/build-cmake.yml
parameters:
buildArgs: '-G Xcode -D PLATFORM=$(IOS_PLATFORM)'