about summary refs log tree commit diff homepage
path: root/scripts/build/p-clang-linux-ubuntu.inc
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/p-clang-linux-ubuntu.inc')
-rw-r--r--scripts/build/p-clang-linux-ubuntu.inc44
1 files changed, 44 insertions, 0 deletions
diff --git a/scripts/build/p-clang-linux-ubuntu.inc b/scripts/build/p-clang-linux-ubuntu.inc
new file mode 100644
index 00000000..b3159d3c
--- /dev/null
+++ b/scripts/build/p-clang-linux-ubuntu.inc
@@ -0,0 +1,44 @@
+install_binary_artifact_clang() {
+  local LLVM_VERSION_MAJOR="${LLVM_VERSION/.*/}"
+  local LLVM_VERSION_MINOR="${LLVM_VERSION/*./}"
+
+  local version=""
+  [[ "${LLVM_VERSION_MAJOR}" -le 6 ]] && version="-${LLVM_VERSION}"
+  [[ "${LLVM_VERSION_MAJOR}" -ge 7 ]] && version="-${LLVM_VERSION_MAJOR}"
+
+  # apt.llvm packages for Trusty clang 5.0 package is broken with atomics. Don't use it.
+  if [[ "${LLVM_VERSION_MAJOR}" -gt 6 ]]; then
+    # Add certificate
+    apt update -y
+    dependencies=(
+      ca-certificates
+      wget
+      lsb-release
+      gnupg
+    )
+
+    apt -y --no-install-recommends install "${dependencies[@]}"
+    wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key| apt-key add -
+
+    # Add repository
+    codename="$(lsb_release --codename --short)"
+    apt_entry="deb http://apt.llvm.org/${codename}/ llvm-toolchain-${codename}${version} main"
+    if [[ ! $(grep -q "${apt_entry}") ]]; then
+      echo "${apt_entry}" >> /etc/apt/sources.list
+      apt update -y
+    fi
+  fi
+
+  apt update -y
+  dependencies=(
+    "llvm${version}"
+    "clang${version}"
+  )
+
+  #Install essential dependencies
+  apt -y --no-install-recommends install "${dependencies[@]}" || return 1
+}
+
+get_docker_config_id_clang() {
+  return 0
+}