# 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)'