@@ -221,6 +221,10 @@ function cmake(gen, conf, builddir, options)
221
221
options = options .. " -DLLVM_USE_LINKER=/usr/bin/ld.lld"
222
222
end
223
223
224
+ if os .ishost (" windows" ) then
225
+ options = options .. " -Thost=x64"
226
+ end
227
+
224
228
local cmd = cmake .. " -G " .. ' "' .. gen .. ' "'
225
229
.. ' -DLLVM_BUILD_TOOLS=false'
226
230
.. ' -DLLVM_ENABLE_DUMP=true'
@@ -360,7 +364,7 @@ function build_llvm(llvm_build)
360
364
os .mkdir (llvm_build )
361
365
362
366
local conf = get_llvm_configuration_name ()
363
- local use_msbuild = false
367
+ local use_msbuild = true
364
368
if os .ishost (" windows" ) and use_msbuild then
365
369
cmake (get_cmake_generator (), conf , llvm_build )
366
370
local llvm_sln = path .join (llvm_build , " LLVM.sln" )
@@ -372,6 +376,7 @@ function build_llvm(llvm_build)
372
376
if is32bits then
373
377
options = options .. (is32bits and " -DLLVM_BUILD_32_BITS=true" or " " )
374
378
end
379
+
375
380
cmake (" Ninja" , conf , llvm_build , options )
376
381
ninja (' "' .. llvm_build .. ' "' )
377
382
ninja (' "' .. llvm_build .. ' "' , " clang-headers" )
@@ -393,25 +398,26 @@ function package_llvm(conf, llvm, llvm_build)
393
398
os .copydir (llvm_build .. " /include" , out .. " /build/include" )
394
399
395
400
local llvm_msbuild_libdir = " /" .. conf .. " /lib"
396
- local lib_dir = os .ishost (" windows" ) and os .isdir (llvm_msbuild_libdir )
401
+ local lib_dir = ( os .ishost (" windows" ) and os .isdir (llvm_build .. llvm_msbuild_libdir ) )
397
402
and llvm_msbuild_libdir or " /lib"
398
403
local llvm_build_libdir = llvm_build .. lib_dir
399
404
400
405
if os .ishost (" windows" ) and os .isdir (llvm_build_libdir ) then
401
- os .copydir (llvm_build_libdir , out .. " /build" .. lib_dir , " *.lib" )
406
+ os .copydir (llvm_build_libdir , out .. " /build/lib " , " *.lib" )
402
407
else
403
408
os .copydir (llvm_build_libdir , out .. " /build/lib" , " *.a" )
404
409
end
405
410
406
411
os .copydir (llvm .. " /tools/clang/include" , out .. " /tools/clang/include" )
407
412
os .copydir (llvm_build .. " /tools/clang/include" , out .. " /build/tools/clang/include" )
408
- os .copydir (llvm_build .. " /lib/clang" , out .. " /lib/clang" )
413
+
414
+ os .copydir (llvm_build_libdir .. " /clang" , out .. " /lib/clang" )
409
415
410
416
os .copydir (llvm .. " /tools/clang/lib/CodeGen" , out .. " /tools/clang/lib/CodeGen" , " *.h" )
411
417
os .copydir (llvm .. " /tools/clang/lib/Driver" , out .. " /tools/clang/lib/Driver" , " *.h" )
412
418
os .copydir (llvm .. " /tools/clang/lib/Driver/ToolChains" , out .. " /tools/clang/lib/Driver/ToolChains" , " *.h" )
413
419
414
- local out_lib_dir = out .. " /build" .. lib_dir
420
+ local out_lib_dir = out .. " /build/lib "
415
421
if os .ishost (" windows" ) then
416
422
os .rmfiles (out_lib_dir , " LLVM*ObjCARCOpts*.lib" )
417
423
os .rmfiles (out_lib_dir , " clang*ARC*.lib" )
0 commit comments