From 9cfc0abe5bb591a9f3724f66c08a38be5962187a Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sat, 19 Jan 2019 15:31:58 -0500 Subject: [PATCH] Allow Clang version and architecture to be overridden. --- cmake/DownloadAndExtractClang.cmake | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/cmake/DownloadAndExtractClang.cmake b/cmake/DownloadAndExtractClang.cmake index 9365b188..af6e5e6f 100644 --- a/cmake/DownloadAndExtractClang.cmake +++ b/cmake/DownloadAndExtractClang.cmake @@ -6,27 +6,40 @@ # Downloads 7-Zip to extract Clang if it isn't available in the PATH function(download_and_extract_clang CLANG_DOWNLOAD_LOCATION) -set(CLANG_VERSION 7.0.0) -set(CLANG_ARCHIVE_EXT .tar.xz) +set(CLANG_VERSION 7.0.0 + CACHE STRING "Version of Clang to download") if(${CMAKE_SYSTEM_NAME} STREQUAL Linux) # Default to Ubuntu 16.04 - set(CLANG_ARCHIVE_NAME - clang+llvm-${CLANG_VERSION}-x86_64-linux-gnu-ubuntu-16.04) + set(_default_CLANG_ARCH x86_64-linux-gnu-ubuntu-16.04) elseif(${CMAKE_SYSTEM_NAME} STREQUAL Darwin) - set(CLANG_ARCHIVE_NAME clang+llvm-${CLANG_VERSION}-x86_64-apple-darwin) + set(_default_CLANG_ARCH x86_64-apple-darwin) elseif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) - set(CLANG_ARCHIVE_NAME LLVM-${CLANG_VERSION}-win64) - set(CLANG_ARCHIVE_EXT .exe) + set(_default_CLANG_ARCH win64) elseif(${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD) - set(CLANG_ARCHIVE_NAME clang+llvm-${CLANG_VERSION}-amd64-unknown-freebsd11) + set(_default_CLANG_ARCH amd64-unknown-freebsd11) + +endif() + +set(CLANG_ARCH_NAME ${_default_CLANG_ARCH} + CACHE STRING "Clang downlaod architecture") + +if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + + set(CLANG_ARCHIVE_NAME LLVM-${CLANG_VERSION}-${CLANG_ARCH_NAME}) + set(CLANG_ARCHIVE_EXT .exe) + +else() + + set(CLANG_ARCHIVE_NAME clang+llvm-${CLANG_VERSION}-${CLANG_ARCH_NAME}) + set(CLANG_ARCHIVE_EXT .tar.xz) endif()