Skip to content

Commit 1e6ee09

Browse files
committed
Resolve "Error finding an LLVM build" (mono#1831)
Pass through Visual Studio version from build.sh into build/LLVM.lua, so that the downloaded version is consistent with build.sh's view rather than the host command prompt's view.
1 parent f2f48dc commit 1e6ee09

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

build/LLVM.lua

+6-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ local LLVMRootDirRelease = ""
99

1010
require "llvm/LLVM"
1111

12+
newoption {
13+
trigger = "vs",
14+
description = "Override Visual Studio version with particular version"
15+
}
16+
1217
function SearchLLVM()
1318
LLVMRootDirDebug = builddir .. "/llvm/" .. get_llvm_package_name(nil, "Debug")
1419
LLVMRootDirRelease = builddir .. "/llvm/" .. get_llvm_package_name()
@@ -20,7 +25,7 @@ function SearchLLVM()
2025
elseif os.isdir(LLVMRootDir) then
2126
print("Using LLVM build: " .. LLVMRootDir)
2227
else
23-
error("Error finding an LLVM build")
28+
error("Error finding an LLVM build. Tried: " .. LLVMRootDirDebug .. " and " .. LLVMRootDirRelease)
2429
end
2530
end
2631

build/build.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -129,22 +129,22 @@ download_premake()
129129

130130
download_llvm()
131131
{
132-
"$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" download_llvm --os=$os --arch=$platform --configuration=$configuration
132+
"$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" download_llvm --vs=$vs --os=$os --arch=$platform --configuration=$configuration
133133
}
134134

135135
clone_llvm()
136136
{
137-
"$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" clone_llvm --os=$os --arch=$platform --configuration=$configuration
137+
"$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" clone_llvm --vs=$vs --os=$os --arch=$platform --configuration=$configuration
138138
}
139139

140140
build_llvm()
141141
{
142-
"$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" build_llvm --os=$os --arch=$platform --configuration=$configuration
142+
"$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" build_llvm --vs=$vs --os=$os --arch=$platform --configuration=$configuration
143143
}
144144

145145
package_llvm()
146146
{
147-
"$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" package_llvm --os=$os --arch=$platform --configuration=$configuration
147+
"$builddir/premake.sh" --file="$builddir/llvm/LLVM.lua" package_llvm --vs=$vs --os=$os --arch=$platform --configuration=$configuration
148148
}
149149

150150
detect_os()

build/llvm/LLVM.lua

+4
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ function clone_llvm()
5252
end
5353

5454
function get_vs_version()
55+
if _OPTIONS["vs"] then
56+
return _OPTIONS["vs"]
57+
end
58+
5559
local function map_msvc_to_vs_version(major, minor)
5660
if major == "19" and minor >= "30" then return "vs2022"
5761
elseif major == "19" and minor >= "20" then return "vs2019"

0 commit comments

Comments
 (0)