diff --git a/build/LLVM.lua b/build/LLVM.lua index 9ac89c54c..24efcbea4 100644 --- a/build/LLVM.lua +++ b/build/LLVM.lua @@ -9,6 +9,11 @@ local LLVMRootDirRelease = "" require "llvm/LLVM" +newoption { + trigger = "vs", + description = "Override Visual Studio version with particular version" +} + function SearchLLVM() LLVMRootDirDebug = builddir .. "/llvm/" .. get_llvm_package_name(nil, "Debug") LLVMRootDirRelease = builddir .. "/llvm/" .. get_llvm_package_name() @@ -20,7 +25,7 @@ function SearchLLVM() elseif os.isdir(LLVMRootDir) then print("Using LLVM build: " .. LLVMRootDir) else - error("Error finding an LLVM build") + error("Error finding an LLVM build. Tried: " .. LLVMRootDirDebug .. " and " .. LLVMRootDirRelease) end end diff --git a/build/build.sh b/build/build.sh index 5cd81557a..72a5c4588 100755 --- a/build/build.sh +++ b/build/build.sh @@ -129,22 +129,22 @@ download_premake() download_llvm() { - "$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" download_llvm --os=$os --arch=$platform --configuration=$configuration + "$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" download_llvm --vs=$vs --os=$os --arch=$platform --configuration=$configuration } clone_llvm() { - "$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" clone_llvm --os=$os --arch=$platform --configuration=$configuration + "$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" clone_llvm --vs=$vs --os=$os --arch=$platform --configuration=$configuration } build_llvm() { - "$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" build_llvm --os=$os --arch=$platform --configuration=$configuration + "$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" build_llvm --vs=$vs --os=$os --arch=$platform --configuration=$configuration } package_llvm() { - "$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" package_llvm --os=$os --arch=$platform --configuration=$configuration + "$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" package_llvm --vs=$vs --os=$os --arch=$platform --configuration=$configuration } detect_os() diff --git a/build/llvm/LLVM.lua b/build/llvm/LLVM.lua index 0a08c0619..3d2b9fe02 100644 --- a/build/llvm/LLVM.lua +++ b/build/llvm/LLVM.lua @@ -52,6 +52,10 @@ function clone_llvm() end function get_vs_version() + if _OPTIONS["vs"] then + return _OPTIONS["vs"] + end + local function map_msvc_to_vs_version(major, minor) if major == "19" and minor >= "30" then return "vs2022" elseif major == "19" and minor >= "20" then return "vs2019"