forked from RPCS3/llvm-mirror
-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
143 lines (127 loc) · 5.85 KB
/
azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
- master
jobs:
- job: build_ubuntu
displayName: Linux Build
timeoutInMinutes: 0
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-add-repository -s "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-11 main"
sudo apt-get update
sudo apt-get -y install cmake ccache ninja-build clang-11 lld-11 libllvm-11-ocaml-dev libllvm11 llvm-11 llvm-11-dev llvm-11-tools llvm-11-runtime
displayName: Install clang-11 and other dependencies
- script: |
mkdir build
cd build
CC=clang-11 CXX=clang++-11 CXXFLAGS="-msse -msse2 -mcx16" cmake .. -G Ninja -DCMAKE_INSTALL_PREFIX="" -DLLVM_CCACHE_DIR=$HOME/.ccache -DLLVM_CCACHE_BUILD=ON -DLLVM_TARGETS_TO_BUILD="X86" -DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_UTILS=OFF -DLLVM_USE_INTEL_JITEVENTS=ON -DLLVM_ENABLE_Z3_SOLVER=OFF -DCMAKE_CXX_STANDARD=17
displayName: Configure LLVM
- script: |
cd build
ninja
displayName: Build LLVM
- script: |
cd build
DESTDIR=./dest ninja install
cd dest
tar -czf llvmlibs-linux.tar.gz lib include bin
sha256sum ./llvmlibs-linux.tar.gz | awk '{ print $1 }' >> llvmlibs-linux.tar.gz.sha256
displayName: Package LLVM Libraries
- task: GitHubRelease@0
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
inputs:
gitHubConnection: RPCS3-Token
repositoryName: RPCS3/llvm-mirror
action: edit # Options: create, edit, delete
target: '$(Build.SourceVersion)' # Required when action == Create || Action == Edit
tagSource: auto # Required when action == Create# Options: auto, manual
#tagPattern: # Optional
tag: 'custom-build' # Required when action == Edit || Action == Delete || TagSource == Manual
title: 'Linux Build' # Optional
#releaseNotesSource: 'file' # Optional. Options: file, input
#releaseNotesFile: # Optional
#releaseNotes: # Optional
assets: 'build/dest/llvmlibs-linux*' # Optional
assetUploadMode: delete # Optional. Options: delete, replace
#isDraft: false # Optional
#isPreRelease: true # Optional
#addChangeLog: true # Optional
#compareWith: 'lastFullRelease' # Required when addChangeLog == True. Options: lastFullRelease, lastRelease, lastReleaseByTag
#releaseTag: # Required when compareWith == LastReleaseByTag
- job: build_win32
displayName: Win32 Build
timeoutInMinutes: 0
pool:
vmImage: 'windows-2019'
steps:
- script: |
choco install ninja
displayName: Install Ninja
- script: |
call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\Common7\\Tools\\vsdevcmd" -arch=x64
mkdir llvm_build
cd llvm_build
cmake -G "Ninja" .. -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="./Release" -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_HOST_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_UTILS=OFF -DLLVM_USE_INTEL_JITEVENTS=ON -DLLVM_ENABLE_Z3_SOLVER=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=10.0 -DLLVM_USE_CRT_DEBUG=MTd -DLLVM_USE_CRT_RELEASE=MT
displayName: Configure LLVM
- script: |
call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\Common7\\Tools\\vsdevcmd" -arch=x64
cd llvm_build
cmake --build . --config Release
cmake --install . --config Release
displayName: Build LLVM
- script: |
mkdir llvm_out
cd llvm_out
mkdir build
cd build
mkdir llvm
cd llvm
mkdir cmake
mkdir include
mkdir tools
xcopy "..\..\..\cmake" ".\cmake" /E
xcopy "..\..\..\include" ".\include" /E
cd ..\
mkdir llvm_build
cd llvm_build
mkdir Release
mkdir include
mkdir lib
cd lib
mkdir cmake
cd ..\
xcopy "..\..\..\llvm_build\Release" ".\Release" /E
cd ..\
7z a -t7z -m0=lzma2 -mx=9 -aoa -r "llvmlibs_mt.7z" *
displayName: Package LLVM Libraries
- bash: |
cd llvm_out/build
sha256sum llvmlibs_mt.7z | awk '{ print $1 }' > llvmlibs_mt.7z.sha256
displayName: Generate sha256
- task: GitHubRelease@0
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
inputs:
gitHubConnection: RPCS3-Token
repositoryName: RPCS3/llvm-mirror
action: edit # Options: create, edit, delete
target: '$(Build.SourceVersion)' # Required when action == Create || Action == Edit
tagSource: auto # Required when action == Create# Options: auto, manual
#tagPattern: # Optional
tag: 'custom-build-win' # Required when action == Edit || Action == Delete || TagSource == Manual
title: 'Windows Build' # Optional
#releaseNotesSource: 'file' # Optional. Options: file, input
#releaseNotesFile: # Optional
#releaseNotes: # Optional
assets: 'llvm_out/build/llvmlibs_mt.*' # Optional
assetUploadMode: delete # Optional. Options: delete, replace
#isDraft: false # Optional
#isPreRelease: true # Optional
#addChangeLog: true # Optional
#compareWith: 'lastFullRelease' # Required when addChangeLog == True. Options: lastFullRelease, lastRelease, lastReleaseByTag
#releaseTag: # Required when compareWith == LastReleaseByTag