The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
232 lines
7.1 KiB
232 lines
7.1 KiB
name: $(BuildID) |
|
|
|
trigger: |
|
branches: |
|
include: |
|
- 'master' |
|
# Release branches |
|
- '0.*' |
|
|
|
variables: |
|
CI: 1 |
|
|
|
jobs: |
|
|
|
- job: vs2015 |
|
pool: |
|
vmImage: vs2015-win2012r2 |
|
|
|
strategy: |
|
matrix: |
|
vc2015x86ninja: |
|
arch: x86 |
|
compiler: msvc2015 |
|
backend: ninja |
|
vc2015x86vs: |
|
arch: x86 |
|
compiler: msvc2015 |
|
backend: vs2015 |
|
|
|
steps: |
|
- powershell: 'Invoke-WebRequest https://www.python.org/ftp/python/3.7.4/python-3.7.4.exe -OutFile c:\py3-setup.exe' |
|
- script: | |
|
c:\py3-setup.exe /quiet PrependPath=1 InstallAllUsers=1 Include_doc=0 Include_dev=0 Include_debug=0 TargetDir=c:\Python3 |
|
- script: | |
|
@echo ##vso[task.prependpath]C:\Python3 |
|
@echo ##vso[task.prependpath]C:\Python3\Scripts |
|
- template: ci/azure-steps.yml |
|
|
|
- job: vs2017 |
|
pool: |
|
vmImage: VS2017-Win2016 |
|
|
|
strategy: |
|
matrix: |
|
vc2017x64ninja: |
|
arch: x64 |
|
compiler: msvc2017 |
|
backend: ninja |
|
vc2017x64vs: |
|
arch: x64 |
|
compiler: msvc2017 |
|
backend: vs2017 |
|
clangclx64ninja: |
|
arch: x64 |
|
compiler: clang-cl |
|
backend: ninja |
|
|
|
steps: |
|
- task: UsePythonVersion@0 |
|
inputs: |
|
versionSpec: '3.5' |
|
addToPath: true |
|
architecture: 'x64' |
|
- template: ci/azure-steps.yml |
|
|
|
- job: vs2019 |
|
pool: |
|
vmImage: windows-2019 |
|
|
|
strategy: |
|
matrix: |
|
vc2019x64ninja: |
|
arch: x64 |
|
compiler: msvc2019 |
|
backend: ninja |
|
vc2019x64vs: |
|
arch: x64 |
|
compiler: msvc2019 |
|
backend: vs2019 |
|
|
|
steps: |
|
- task: UsePythonVersion@0 |
|
inputs: |
|
versionSpec: '3.7' |
|
addToPath: true |
|
architecture: 'x64' |
|
- template: ci/azure-steps.yml |
|
|
|
- job: cygwin |
|
pool: |
|
vmImage: VS2017-Win2016 |
|
strategy: |
|
matrix: |
|
gccx64ninja: {} |
|
variables: |
|
CYGWIN_ROOT: $(System.Workfolder)\cygwin |
|
CYGWIN_MIRROR: http://cygwin.mirror.constant.com |
|
steps: |
|
- script: | |
|
choco install cygwin --params="/InstallDir:%CYGWIN_ROOT%" |
|
displayName: Install Cygwin |
|
- script: | |
|
%CYGWIN_ROOT%\cygwinsetup.exe -qnNdO -R "%CYGWIN_ROOT%" -s "%CYGWIN_MIRROR%" -g -P ^ |
|
gcc-fortran,^ |
|
gcc-objc++,^ |
|
gcc-objc,^ |
|
git,^ |
|
gobject-introspection,^ |
|
libarchive13,^ |
|
libboost-devel,^ |
|
libglib2.0-devel,^ |
|
libgtk3-devel,^ |
|
libjsoncpp19,^ |
|
librhash0,^ |
|
libuv1,^ |
|
ninja,^ |
|
python2-devel,^ |
|
python3-devel,^ |
|
python36-pip,^ |
|
vala,^ |
|
wget,^ |
|
cmake,^ |
|
zlib-devel |
|
displayName: Install Dependencies |
|
- script: | |
|
set PATH=%CYGWIN_ROOT%\bin;%SYSTEMROOT%\system32 |
|
env.exe -- python3 -m pip --disable-pip-version-check install pefile pytest-xdist |
|
displayName: pip install pefile pytest-xdist |
|
- script: | |
|
set BOOST_ROOT= |
|
set PATH=%CYGWIN_ROOT%\bin;%SYSTEMROOT%\system32 |
|
env.exe -- python3 run_tests.py --backend=ninja |
|
displayName: Run Tests |
|
- task: CopyFiles@2 |
|
condition: not(canceled()) |
|
inputs: |
|
contents: 'meson-test-run.*' |
|
targetFolder: $(Build.ArtifactStagingDirectory) |
|
- task: PublishBuildArtifacts@1 |
|
inputs: |
|
artifactName: $(System.JobName) |
|
# publishing artifacts from PRs from a fork is currently blocked |
|
condition: and(eq(variables['system.pullrequest.isfork'], false), not(canceled())) |
|
- task: PublishTestResults@2 |
|
condition: not(canceled()) |
|
inputs: |
|
testResultsFiles: meson-test-run.xml |
|
testRunTitle: $(System.JobName) |
|
|
|
- job: msys2 |
|
pool: |
|
vmImage: VS2017-Win2016 |
|
strategy: |
|
matrix: |
|
gccx86ninja: |
|
MSYSTEM: MINGW32 |
|
MSYS2_ARCH: i686 |
|
compiler: gcc |
|
gccx64ninja: |
|
MSYSTEM: MINGW64 |
|
MSYS2_ARCH: x86_64 |
|
compiler: gcc |
|
clangx64ninja: |
|
MSYSTEM: MINGW64 |
|
MSYS2_ARCH: x86_64 |
|
compiler: clang |
|
variables: |
|
MSYS2_ROOT: $(System.Workfolder)\msys64 |
|
steps: |
|
- script: | |
|
choco install msys2 --params="/InstallDir:%MSYS2_ROOT% /NoUpdate /NoPath" |
|
displayName: Install MSYS2 |
|
- script: | |
|
set PATH=%MSYS2_ROOT%\usr\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem |
|
%MSYS2_ROOT%\usr\bin\pacman --noconfirm -Syyuu |
|
%MSYS2_ROOT%\usr\bin\pacman --noconfirm -Syuu |
|
displayName: Update MSYS2 |
|
- script: | |
|
set PATH=%MSYS2_ROOT%\usr\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem |
|
if %compiler%==gcc ( set "TOOLCHAIN=mingw-w64-$(MSYS2_ARCH)-toolchain" ) else ( set "TOOLCHAIN=mingw-w64-$(MSYS2_ARCH)-clang" ) |
|
%MSYS2_ROOT%\usr\bin\pacman --noconfirm --needed -S ^ |
|
base-devel ^ |
|
git ^ |
|
mercurial ^ |
|
mingw-w64-$(MSYS2_ARCH)-cmake ^ |
|
mingw-w64-$(MSYS2_ARCH)-ninja ^ |
|
mingw-w64-$(MSYS2_ARCH)-pkg-config ^ |
|
mingw-w64-$(MSYS2_ARCH)-python2 ^ |
|
mingw-w64-$(MSYS2_ARCH)-python3 ^ |
|
mingw-w64-$(MSYS2_ARCH)-python3-setuptools ^ |
|
mingw-w64-$(MSYS2_ARCH)-python3-pip ^ |
|
%TOOLCHAIN% |
|
%MSYS2_ROOT%\usr\bin\bash -lc "python3 -m pip --disable-pip-version-check install pefile" |
|
displayName: Install Dependencies |
|
- powershell: | |
|
# https://github.com/mesonbuild/meson/issues/5807 |
|
# https://github.com/msys2/MINGW-packages/issues/5719#issuecomment-525845769 |
|
if ($env:compiler -eq 'gcc') { |
|
(New-Object net.webclient).DownloadFile("https://github.com/mesonbuild/cidata/raw/master/win32/setdllcharacteristics.exe", "$(System.WorkFolder)\setdllcharacteristics.exe") |
|
if ($env:MSYS2_ARCH -eq 'x86_64') { |
|
$(System.WorkFolder)\setdllcharacteristics -d $env:MSYS2_ROOT\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\cc1.exe |
|
$(System.WorkFolder)\setdllcharacteristics -d $env:MSYS2_ROOT\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\cc1plus.exe |
|
} else { |
|
$(System.WorkFolder)\setdllcharacteristics -d $env:MSYS2_ROOT\mingw32\lib\gcc\i686-w64-mingw32\9.2.0\cc1.exe |
|
$(System.WorkFolder)\setdllcharacteristics -d $env:MSYS2_ROOT\mingw32\lib\gcc\i686-w64-mingw32\9.2.0\cc1plus.exe |
|
} |
|
} |
|
displayName: MSYS2 PCH hack |
|
- script: | |
|
set BOOST_ROOT= |
|
set PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem |
|
set PATHEXT=%PATHEXT%;.py |
|
if %compiler%==clang ( set CC=clang && set CXX=clang++ && set OBJC=clang && set OBJCXX=clang++ ) |
|
%MSYS2_ROOT%\usr\bin\bash -lc "MSYSTEM= python3 run_tests.py --backend=ninja" |
|
env: |
|
CHERE_INVOKING: yes |
|
displayName: Run Tests |
|
- task: CopyFiles@2 |
|
condition: not(canceled()) |
|
inputs: |
|
contents: 'meson-test-run.*' |
|
targetFolder: $(Build.ArtifactStagingDirectory) |
|
- task: PublishBuildArtifacts@1 |
|
inputs: |
|
artifactName: $(System.JobName) |
|
# publishing artifacts from PRs from a fork is currently blocked |
|
condition: and(eq(variables['system.pullrequest.isfork'], false), not(canceled())) |
|
- task: PublishTestResults@2 |
|
condition: not(canceled()) |
|
inputs: |
|
testResultsFiles: meson-test-run.xml |
|
testRunTitle: $(System.JobName)
|
|
|