
This commit switches to LLVM 11 for builds with LLVM linked statically (e.g. `make`). It does not yet switch the default for builds dynamically linked to LLVM, that should be done in a later change. This commit also changes to use the default host toolchain (probably GCC) instead of Clang as the default compiler in CI. There were some issues with Clang 3.8 in CI and hopefully this will fix it. Additionally it updates the way LLVM is built on Windows, with -DLLVM_ENABLE_PIC=OFF (which should have been used all along). This change makes it possible to revert a hack to build libclang manually and instead uses the libclang static library like on all other operating systems, simplifying the Makefile.
92 строки
2,6 КиБ
YAML
92 строки
2,6 КиБ
YAML
# Avoid lengthy LLVM rebuilds on each newly pushed branch. Pull requests will
|
|
# be built anyway.
|
|
trigger:
|
|
- release
|
|
- dev
|
|
|
|
jobs:
|
|
- job: Build
|
|
timeoutInMinutes: 240 # 4h
|
|
pool:
|
|
vmImage: 'VS2017-Win2016'
|
|
steps:
|
|
- task: GoTool@0
|
|
inputs:
|
|
version: '1.15'
|
|
- checkout: self
|
|
fetchDepth: 1
|
|
- task: Cache@2
|
|
displayName: Cache LLVM source
|
|
inputs:
|
|
key: llvm-source-11-windows-v1
|
|
path: llvm-project
|
|
- task: Bash@3
|
|
displayName: Download LLVM source
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
make llvm-source
|
|
# Workaround for bad symlinks:
|
|
# https://github.com/microsoft/azure-pipelines-tasks/issues/13418
|
|
rm -f llvm-project/libcxx/test/std/input.output/filesystems/Inputs/static_test_env/bad_symlink
|
|
- task: CacheBeta@0
|
|
displayName: Cache LLVM build
|
|
inputs:
|
|
key: llvm-build-11-windows-v3
|
|
path: llvm-build
|
|
- task: Bash@3
|
|
displayName: Build LLVM
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
if [ ! -f llvm-build/lib/liblldELF.a ]
|
|
then
|
|
# install dependencies
|
|
choco install ninja
|
|
# hack ninja to use fewer jobs
|
|
echo -e 'C:\\ProgramData\\Chocolatey\\bin\\ninja -j4 %*' > /usr/bin/ninja.bat
|
|
# build!
|
|
make llvm-build
|
|
fi
|
|
- task: Bash@3
|
|
displayName: Install QEMU
|
|
inputs:
|
|
targetType: inline
|
|
script: choco install qemu --version=2020.06.12
|
|
- task: CacheBeta@0
|
|
displayName: Cache wasi-libc sysroot
|
|
inputs:
|
|
key: wasi-libc-sysroot-v3
|
|
path: lib/wasi-libc/sysroot
|
|
- task: Bash@3
|
|
displayName: Build wasi-libc
|
|
inputs:
|
|
targetType: inline
|
|
script: PATH=/usr/bin:$PATH make wasi-libc
|
|
- task: Bash@3
|
|
displayName: Test TinyGo
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
export PATH="$PATH:./llvm-build/bin:/c/Program Files/qemu"
|
|
unset GOROOT
|
|
make test
|
|
- task: Bash@3
|
|
displayName: Build TinyGo release tarball
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
export PATH="$PATH:./llvm-build/bin:/c/Program Files/qemu"
|
|
unset GOROOT
|
|
make build/release -j4
|
|
- publish: $(System.DefaultWorkingDirectory)/build/release/tinygo
|
|
displayName: Publish zip as artifact
|
|
artifact: tinygo
|
|
- task: Bash@3
|
|
displayName: Smoke tests
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
export PATH="$PATH:./llvm-build/bin:/c/Program Files/qemu"
|
|
unset GOROOT
|
|
make smoketest TINYGO=build/tinygo AVR=0 XTENSA=0
|