67 lines
1.7 KiB
YAML
67 lines
1.7 KiB
YAML
---
|
|
- name: get latest stable github release
|
|
uri:
|
|
url: https://api.github.com/repos/llvm/llvm-project/releases/latest
|
|
register: llvm_latest
|
|
|
|
- set_fact:
|
|
llvm_major_version:
|
|
'{{llvm_latest.json.tag_name[8:llvm_latest.json.tag_name.find(".")]}}'
|
|
- set_fact:
|
|
llvm_apt_repo_url:
|
|
'http://apt.llvm.org/{{ansible_distribution_release}}/'
|
|
llvm_apt_category:
|
|
'llvm-toolchain-{{ansible_distribution_release}}-{{llvm_major_version}}'
|
|
|
|
- name: add upstream deb repository
|
|
become: true
|
|
apt_repository:
|
|
repo: 'deb {{llvm_apt_repo_url}} {{llvm_apt_category}} main'
|
|
state: present
|
|
filename: llvm
|
|
update_cache: false
|
|
|
|
- name: add upstream deb-src repository
|
|
become: true
|
|
apt_repository:
|
|
repo: 'deb-src {{llvm_apt_repo_url}} {{llvm_apt_category}} main'
|
|
state: present
|
|
filename: llvm
|
|
update_cache: false
|
|
|
|
- name: add apt repository key
|
|
become: true
|
|
apt_key:
|
|
url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
|
id: 6084F3CF814B57C1CF12EFD515CF4D18AF4F7421
|
|
state: present
|
|
|
|
- name: update apt cache
|
|
become: true
|
|
apt:
|
|
update_cache: true
|
|
|
|
- name: install apt packages
|
|
become: true
|
|
apt:
|
|
name:
|
|
- clang-{{llvm_major_version}}
|
|
- clang-format-{{llvm_major_version}}
|
|
- clang-tidy-{{llvm_major_version}}
|
|
- clang-tools-{{llvm_major_version}}
|
|
- clangd-{{llvm_major_version}}
|
|
- llvm-{{llvm_major_version}}
|
|
state: latest
|
|
install_recommends: true
|
|
|
|
- name: update alternatives
|
|
become: true
|
|
alternatives:
|
|
link: '/usr/bin/{{item}}'
|
|
name: '{{item}}'
|
|
path: '/usr/bin/{{item}}-{{llvm_major_version}}'
|
|
priority: '{{llvm_major_version}}0'
|
|
with_items:
|
|
- clang-format
|
|
- clangd
|