# This template installs LLVM (if doesn't exist in the systems)

steps:
  - bash: |
      set -ex
      if [ -x "`command -v llvm-config`" ]; then
        echo `command -v llvm-config` `llvm-config --version` installed
      else
        curl -O https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz
        tar xf clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz
        export LLVM_PATH="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/"
        echo "##vso[task.prependpath]$LLVM_PATH/bin"
        echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX]$LLVM_PATH"
      fi
    displayName: "Install LLVM (macOS)"
    condition: eq(variables['Agent.OS'], 'Darwin')

  - bash: |
      set -ex
      if [ -x "`command -v llvm-config`" ]; then
        echo `command -v llvm-config` `llvm-config --version` installed
      else
        curl -O https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
        tar xf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
        export LLVM_PATH="`pwd`/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/"
        echo "##vso[task.prependpath]$LLVM_PATH/bin"
        echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX]$LLVM_PATH"
      fi
    displayName: "Install LLVM (Linux)"
    condition: eq(variables['Agent.OS'], 'Linux')

  - bash: |
      set -ex
      curl -OL https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip
      7z x llvm-8.0.0-install.zip
      llvm=`pwd`/llvm-8.0.0-install
      echo "##vso[task.prependpath]$llvm/bin"
      echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX;]$llvm"
    displayName: "Install LLVM (Windows)"
    condition: eq(variables['Agent.OS'], 'Windows_NT')

  # Just to make sure the paths and vars are set properly
  - powershell: |
      Write-Host "##vso[task.prependpath]$pwd/llvm-8.0.0-install/bin"
      Write-Host "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX;]$pwd/llvm-8.0.0-install/"
    displayName: Install LLVM (Windows)
    condition: eq(variables['Agent.OS'], 'Windows_NT')

  - bash: |
      set -ex
      env
      llvm-config --version
    displayName: LLVM version
