mingw-w64-mesa: Add fallback code for when llvm-config is busted

with dynamically linked LLVM
This commit is contained in:
pal1000
2020-11-10 13:59:13 +02:00
parent 35efd56bfc
commit 8e18e9f561
2 changed files with 20 additions and 6 deletions

View File

@@ -23,7 +23,7 @@ source=(https://mesa.freedesktop.org/archive/${_realname}-${pkgver}.tar.xz{,.sig
llvmwrapgen.sh)
sha256sums=('1f93eb1090cf71490cd0e204e04f8427a82b6ed534b7f49ca50cea7dcc89b861'
'SKIP'
'44e7684f962442aa9733abcdd5bccff15f8d163b40149d113a68de2e8146fc55')
'69f21522f20c10f5699dfe3e128aa88d4fedde816f6e8df1506d7470c44bf3da')
validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov <emil.l.velikov@gmail.com>
validpgpkeys+=('946D09B5E4C9845E63075FF1D961C596A7203456') # Andres Gomez <tanty@igalia.com>
validpgpkeys+=('E3E8F480C52ADD73B278EE78E1ECBE07D7D70895') # Juan Antonio Suárez Romero (Igalia, S.L.) <jasuarez@igalia.com>"
@@ -69,7 +69,7 @@ prepare() {
# Generate binary wrap for LLVM if llvm-config tool is busted
if ! [ "$(${MINGW_PREFIX}/bin/llvm-config --has-rtti 2>&1)" = YES ] && ! [ "$(${MINGW_PREFIX}/bin/llvm-config --has-rtti 2>&1)" = NO ]; then
nollvmconfig=1 ${srcdir}/llvmwrapgen.sh
nollvmconfig=1 llvm_static=false ${srcdir}/llvmwrapgen.sh
fi
}

View File

@@ -1,11 +1,17 @@
#!/bin/sh
# Get LLVM libraries
if [ ${nollvmconfig} = 1 ]; then
if [ ${nollvmconfig} = 1 ] && [ ${llvm_static} = true ]; then
llvmlibs='libLLVMCoroutines.a libLLVMipo.a libLLVMInstrumentation.a libLLVMVectorize.a libLLVMLinker.a libLLVMIRReader.a libLLVMAsmParser.a libLLVMFrontendOpenMP.a libLLVMX86Disassembler.a libLLVMX86AsmParser.a libLLVMX86CodeGen.a libLLVMCFGuard.a libLLVMGlobalISel.a libLLVMSelectionDAG.a libLLVMAsmPrinter.a libLLVMDebugInfoDWARF.a libLLVMCodeGen.a libLLVMScalarOpts.a libLLVMInstCombine.a libLLVMAggressiveInstCombine.a libLLVMTransformUtils.a libLLVMBitWriter.a libLLVMX86Desc.a libLLVMMCDisassembler.a libLLVMX86Info.a libLLVMMCJIT.a libLLVMExecutionEngine.a libLLVMTarget.a libLLVMAnalysis.a libLLVMProfileData.a libLLVMRuntimeDyld.a libLLVMObject.a libLLVMTextAPI.a libLLVMMCParser.a libLLVMBitReader.a libLLVMMC.a libLLVMDebugInfoCodeView.a libLLVMDebugInfoMSF.a libLLVMCore.a libLLVMRemarks.a libLLVMBitstreamReader.a libLLVMBinaryFormat.a libLLVMSupport.a libLLVMDemangle.a'
else
fi
if ! [ ${nollvmconfig} = 1 ] && [ ${llvm_static} = true ]; then
llvmlibs=$(${MINGW_PREFIX}/bin/llvm-config --link-static --libnames engine coroutines 2>&1)
fi
if [ ${llvm_static} = false ]; then
llvmlibs=libLLVM
fi
# Get LLVM RTTI status
rtti=false
if [ $(${MINGW_PREFIX}/bin/llvm-config --has-rtti 2>&1) = YES ]; then
@@ -16,6 +22,14 @@ fi
llvmlibs="${llvmlibs//.a/}"
llvmlibs=\'"${llvmlibs// /\', \'}"\'
# Get libraries directory
if [ ${llvm_static} = false ]; then
wraplibdir=bin
fi
if [ ${llvm_static} = true ]; then
wraplibdir=lib
fi
# Generate a Meson wrap file for LLVM
mkdir -p ./subprojects/llvm
FILE="./subprojects/llvm/meson.build"
@@ -25,9 +39,9 @@ project('llvm', ['cpp'])
cpp = meson.get_compiler('cpp')
_deps = []
_search = '$(cygpath -m ${MINGW_PREFIX})/lib'
_search = '$(cygpath -m ${MINGW_PREFIX})/${wraplibdir}'
foreach d : [${llvmlibs}]
_deps += cpp.find_library(d, dirs : _search, static : true)
_deps += cpp.find_library(d, dirs : _search, static : ${llvm_static})
endforeach
dep_llvm = declare_dependency(