Commit 986aa42d3e

Andrew Kelley <andrew@ziglang.org>
2020-04-18 00:41:21
update cmake, update readme, in response to the dynamic linking fiasco
1 parent c026a9f
cmake/Findclang.cmake
@@ -18,7 +18,7 @@ find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
 )
 
 if(ZIG_PREFER_CLANG_CPP_DYLIB)
-  find_library(CLANG_CPP_DYLIB
+  find_library(CLANG_LIBRARIES
     NAMES
       clang-cpp-10.0
       clang-cpp100
@@ -31,9 +31,7 @@ if(ZIG_PREFER_CLANG_CPP_DYLIB)
   )
 endif()
 
-if(CLANG_CPP_DYLIB)
-  set(CLANG_LIBRARIES ${CLANG_CPP_DYLIB})
-else()
+if(NOT CLANG_LIBRARIES)
   macro(FIND_AND_ADD_CLANG_LIB _libname_)
     string(TOUPPER ${_libname_} _prettylibname_)
     find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_}
cmake/Findllvm.cmake
@@ -7,7 +7,30 @@
 # LLVM_LIBRARIES
 # LLVM_LIBDIRS
 
-if("${ZIG_TARGET_TRIPLE}" STREQUAL "native")
+find_path(LLVM_INCLUDE_DIRS NAMES llvm/IR/IRBuilder.h
+  PATHS
+    /usr/lib/llvm/10/include
+    /usr/lib/llvm-10/include
+    /usr/lib/llvm-10.0/include
+    /usr/local/llvm10/include
+    /usr/local/llvm100/include
+    /mingw64/include
+)
+
+if(ZIG_PREFER_CLANG_CPP_DYLIB)
+  find_library(LLVM_LIBRARIES
+    NAMES
+      LLVM-10.0
+      LLVM-10
+      LLVM-100
+      LLVM
+    PATHS
+      ${LLVM_LIBDIRS}
+      /usr/lib/llvm-10/lib
+      /usr/local/llvm10/lib
+      /usr/local/llvm100/lib
+  )
+elseif("${ZIG_TARGET_TRIPLE}" STREQUAL "native")
   find_program(LLVM_CONFIG_EXE
       NAMES llvm-config-10 llvm-config-10.0 llvm-config100 llvm-config10 llvm-config
       PATHS
@@ -106,11 +129,6 @@ if("${ZIG_TARGET_TRIPLE}" STREQUAL "native")
     string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
   endif()
 
-  execute_process(
-      COMMAND ${LLVM_CONFIG_EXE} --includedir
-      OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
-      OUTPUT_STRIP_TRAILING_WHITESPACE)
-
   set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
 
   if(NOT LLVM_LIBRARIES)
@@ -124,182 +142,173 @@ else()
   # to support more complicated setups. We also assume the experimental target
   # AVR is enabled.
 
-  find_path(LLVM_INCLUDE_DIRS NAMES llvm/IR/IRBuilder.h
-    PATHS
-        /usr/lib/llvm/10/include
-        /usr/lib/llvm-10/include
-        /usr/lib/llvm-10.0/include
-        /usr/local/llvm100/include
-        /usr/local/llvm10/include
-        /mingw64/include)
-
-    macro(FIND_AND_ADD_LLVM_LIB _libname_)
-      string(TOUPPER ${_libname_} _prettylibname_)
-      find_library(LLVM_${_prettylibname_}_LIB NAMES ${_libname_}
-        PATHS
-        ${LLVM_LIBDIRS}
-        /usr/lib/llvm/10/lib
-        /usr/lib/llvm-10/lib
-        /usr/lib/llvm-10.0/lib
-        /usr/local/llvm100/lib
-        /usr/local/llvm10/lib
-        /mingw64/lib
-        /c/msys64/mingw64/lib
-        c:\\msys64\\mingw64\\lib)
-      set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_${_prettylibname_}_LIB})
-    endmacro(FIND_AND_ADD_LLVM_LIB)
+  macro(FIND_AND_ADD_LLVM_LIB _libname_)
+    string(TOUPPER ${_libname_} _prettylibname_)
+    find_library(LLVM_${_prettylibname_}_LIB NAMES ${_libname_}
+      PATHS
+      ${LLVM_LIBDIRS}
+      /usr/lib/llvm/10/lib
+      /usr/lib/llvm-10/lib
+      /usr/lib/llvm-10.0/lib
+      /usr/local/llvm100/lib
+      /usr/local/llvm10/lib
+      /mingw64/lib
+      /c/msys64/mingw64/lib
+      c:\\msys64\\mingw64\\lib)
+    set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_${_prettylibname_}_LIB})
+  endmacro(FIND_AND_ADD_LLVM_LIB)
 
-    # This list can be re-generated with `llvm-config --libfiles` and then
-    # reformatting using your favorite text editor. Note we do not execute
-    # `llvm-config` here because we are cross compiling.
-    FIND_AND_ADD_LLVM_LIB(LLVMXRay)
-    FIND_AND_ADD_LLVM_LIB(LLVMWindowsManifest)
-    FIND_AND_ADD_LLVM_LIB(LLVMSymbolize)
-    FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB)
-    FIND_AND_ADD_LLVM_LIB(LLVMOrcJIT)
-    FIND_AND_ADD_LLVM_LIB(LLVMOrcError)
-    FIND_AND_ADD_LLVM_LIB(LLVMJITLink)
-    FIND_AND_ADD_LLVM_LIB(LLVMObjectYAML)
-    FIND_AND_ADD_LLVM_LIB(LLVMMCA)
-    FIND_AND_ADD_LLVM_LIB(LLVMLTO)
-    FIND_AND_ADD_LLVM_LIB(LLVMPasses)
-    FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts)
-    FIND_AND_ADD_LLVM_LIB(LLVMLineEditor)
-    FIND_AND_ADD_LLVM_LIB(LLVMLibDriver)
-    FIND_AND_ADD_LLVM_LIB(LLVMInterpreter)
-    FIND_AND_ADD_LLVM_LIB(LLVMFuzzMutate)
-    FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenMP)
-    FIND_AND_ADD_LLVM_LIB(LLVMMCJIT)
-    FIND_AND_ADD_LLVM_LIB(LLVMExecutionEngine)
-    FIND_AND_ADD_LLVM_LIB(LLVMRuntimeDyld)
-    FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinker)
-    FIND_AND_ADD_LLVM_LIB(LLVMDlltoolDriver)
-    FIND_AND_ADD_LLVM_LIB(LLVMOption)
-    FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoGSYM)
-    FIND_AND_ADD_LLVM_LIB(LLVMCoverage)
-    FIND_AND_ADD_LLVM_LIB(LLVMCoroutines)
-    FIND_AND_ADD_LLVM_LIB(LLVMAVRDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMAVRCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMAVRAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMAVRDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMAVRInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMXCoreDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMXCoreCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMXCoreDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMXCoreInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMX86Disassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMX86AsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMX86CodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMX86Desc)
-    FIND_AND_ADD_LLVM_LIB(LLVMX86Utils)
-    FIND_AND_ADD_LLVM_LIB(LLVMX86Info)
-    FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMSystemZDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMSystemZCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMSystemZAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMSystemZDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMSystemZInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMSparcDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMSparcCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMSparcAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMSparcDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMSparcInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMRISCVDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMRISCVCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMRISCVAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMRISCVDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMRISCVUtils)
-    FIND_AND_ADD_LLVM_LIB(LLVMRISCVInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMPowerPCCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMPowerPCAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMPowerPCInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMNVPTXCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMNVPTXDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMNVPTXInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMMSP430Disassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMMSP430CodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMMSP430AsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMMSP430Desc)
-    FIND_AND_ADD_LLVM_LIB(LLVMMSP430Info)
-    FIND_AND_ADD_LLVM_LIB(LLVMMipsDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMMipsCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMMipsAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMMipsDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMMipsInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMLanaiDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMLanaiCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMLanaiAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMLanaiDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMLanaiInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMHexagonDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMHexagonCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMHexagonAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMHexagonDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMHexagonInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMBPFDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMBPFCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMBPFAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMBPFDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMBPFInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMARMDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMARMCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMARMAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMARMDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMARMUtils)
-    FIND_AND_ADD_LLVM_LIB(LLVMARMInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMMIRParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMipo)
-    FIND_AND_ADD_LLVM_LIB(LLVMInstrumentation)
-    FIND_AND_ADD_LLVM_LIB(LLVMVectorize)
-    FIND_AND_ADD_LLVM_LIB(LLVMLinker)
-    FIND_AND_ADD_LLVM_LIB(LLVMIRReader)
-    FIND_AND_ADD_LLVM_LIB(LLVMAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUAsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDesc)
-    FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUUtils)
-    FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUInfo)
-    FIND_AND_ADD_LLVM_LIB(LLVMAArch64Disassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMMCDisassembler)
-    FIND_AND_ADD_LLVM_LIB(LLVMAArch64CodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMCFGuard)
-    FIND_AND_ADD_LLVM_LIB(LLVMGlobalISel)
-    FIND_AND_ADD_LLVM_LIB(LLVMSelectionDAG)
-    FIND_AND_ADD_LLVM_LIB(LLVMAsmPrinter)
-    FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF)
-    FIND_AND_ADD_LLVM_LIB(LLVMCodeGen)
-    FIND_AND_ADD_LLVM_LIB(LLVMTarget)
-    FIND_AND_ADD_LLVM_LIB(LLVMScalarOpts)
-    FIND_AND_ADD_LLVM_LIB(LLVMInstCombine)
-    FIND_AND_ADD_LLVM_LIB(LLVMAggressiveInstCombine)
-    FIND_AND_ADD_LLVM_LIB(LLVMTransformUtils)
-    FIND_AND_ADD_LLVM_LIB(LLVMBitWriter)
-    FIND_AND_ADD_LLVM_LIB(LLVMAnalysis)
-    FIND_AND_ADD_LLVM_LIB(LLVMProfileData)
-    FIND_AND_ADD_LLVM_LIB(LLVMObject)
-    FIND_AND_ADD_LLVM_LIB(LLVMTextAPI)
-    FIND_AND_ADD_LLVM_LIB(LLVMBitReader)
-    FIND_AND_ADD_LLVM_LIB(LLVMCore)
-    FIND_AND_ADD_LLVM_LIB(LLVMRemarks)
-    FIND_AND_ADD_LLVM_LIB(LLVMBitstreamReader)
-    FIND_AND_ADD_LLVM_LIB(LLVMAArch64AsmParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMMCParser)
-    FIND_AND_ADD_LLVM_LIB(LLVMAArch64Desc)
-    FIND_AND_ADD_LLVM_LIB(LLVMMC)
-    FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)
-    FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoMSF)
-    FIND_AND_ADD_LLVM_LIB(LLVMBinaryFormat)
-    FIND_AND_ADD_LLVM_LIB(LLVMAArch64Utils)
-    FIND_AND_ADD_LLVM_LIB(LLVMAArch64Info)
-    FIND_AND_ADD_LLVM_LIB(LLVMSupport)
-    FIND_AND_ADD_LLVM_LIB(LLVMDemangle)
+  # This list can be re-generated with `llvm-config --libfiles` and then
+  # reformatting using your favorite text editor. Note we do not execute
+  # `llvm-config` here because we are cross compiling.
+  FIND_AND_ADD_LLVM_LIB(LLVMXRay)
+  FIND_AND_ADD_LLVM_LIB(LLVMWindowsManifest)
+  FIND_AND_ADD_LLVM_LIB(LLVMSymbolize)
+  FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB)
+  FIND_AND_ADD_LLVM_LIB(LLVMOrcJIT)
+  FIND_AND_ADD_LLVM_LIB(LLVMOrcError)
+  FIND_AND_ADD_LLVM_LIB(LLVMJITLink)
+  FIND_AND_ADD_LLVM_LIB(LLVMObjectYAML)
+  FIND_AND_ADD_LLVM_LIB(LLVMMCA)
+  FIND_AND_ADD_LLVM_LIB(LLVMLTO)
+  FIND_AND_ADD_LLVM_LIB(LLVMPasses)
+  FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts)
+  FIND_AND_ADD_LLVM_LIB(LLVMLineEditor)
+  FIND_AND_ADD_LLVM_LIB(LLVMLibDriver)
+  FIND_AND_ADD_LLVM_LIB(LLVMInterpreter)
+  FIND_AND_ADD_LLVM_LIB(LLVMFuzzMutate)
+  FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenMP)
+  FIND_AND_ADD_LLVM_LIB(LLVMMCJIT)
+  FIND_AND_ADD_LLVM_LIB(LLVMExecutionEngine)
+  FIND_AND_ADD_LLVM_LIB(LLVMRuntimeDyld)
+  FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinker)
+  FIND_AND_ADD_LLVM_LIB(LLVMDlltoolDriver)
+  FIND_AND_ADD_LLVM_LIB(LLVMOption)
+  FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoGSYM)
+  FIND_AND_ADD_LLVM_LIB(LLVMCoverage)
+  FIND_AND_ADD_LLVM_LIB(LLVMCoroutines)
+  FIND_AND_ADD_LLVM_LIB(LLVMAVRDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMAVRCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMAVRAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMAVRDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMAVRInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMXCoreDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMXCoreCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMXCoreDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMXCoreInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMX86Disassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMX86AsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMX86CodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMX86Desc)
+  FIND_AND_ADD_LLVM_LIB(LLVMX86Utils)
+  FIND_AND_ADD_LLVM_LIB(LLVMX86Info)
+  FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMSystemZDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMSystemZCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMSystemZAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMSystemZDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMSystemZInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMSparcDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMSparcCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMSparcAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMSparcDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMSparcInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMRISCVDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMRISCVCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMRISCVAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMRISCVDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMRISCVUtils)
+  FIND_AND_ADD_LLVM_LIB(LLVMRISCVInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMPowerPCCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMPowerPCAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMPowerPCInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMNVPTXCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMNVPTXDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMNVPTXInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMMSP430Disassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMMSP430CodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMMSP430AsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMMSP430Desc)
+  FIND_AND_ADD_LLVM_LIB(LLVMMSP430Info)
+  FIND_AND_ADD_LLVM_LIB(LLVMMipsDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMMipsCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMMipsAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMMipsDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMMipsInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMLanaiDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMLanaiCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMLanaiAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMLanaiDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMLanaiInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMHexagonDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMHexagonCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMHexagonAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMHexagonDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMHexagonInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMBPFDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMBPFCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMBPFAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMBPFDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMBPFInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMARMDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMARMCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMARMAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMARMDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMARMUtils)
+  FIND_AND_ADD_LLVM_LIB(LLVMARMInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMMIRParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMipo)
+  FIND_AND_ADD_LLVM_LIB(LLVMInstrumentation)
+  FIND_AND_ADD_LLVM_LIB(LLVMVectorize)
+  FIND_AND_ADD_LLVM_LIB(LLVMLinker)
+  FIND_AND_ADD_LLVM_LIB(LLVMIRReader)
+  FIND_AND_ADD_LLVM_LIB(LLVMAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUAsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUUtils)
+  FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMAArch64Disassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMMCDisassembler)
+  FIND_AND_ADD_LLVM_LIB(LLVMAArch64CodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMCFGuard)
+  FIND_AND_ADD_LLVM_LIB(LLVMGlobalISel)
+  FIND_AND_ADD_LLVM_LIB(LLVMSelectionDAG)
+  FIND_AND_ADD_LLVM_LIB(LLVMAsmPrinter)
+  FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF)
+  FIND_AND_ADD_LLVM_LIB(LLVMCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMTarget)
+  FIND_AND_ADD_LLVM_LIB(LLVMScalarOpts)
+  FIND_AND_ADD_LLVM_LIB(LLVMInstCombine)
+  FIND_AND_ADD_LLVM_LIB(LLVMAggressiveInstCombine)
+  FIND_AND_ADD_LLVM_LIB(LLVMTransformUtils)
+  FIND_AND_ADD_LLVM_LIB(LLVMBitWriter)
+  FIND_AND_ADD_LLVM_LIB(LLVMAnalysis)
+  FIND_AND_ADD_LLVM_LIB(LLVMProfileData)
+  FIND_AND_ADD_LLVM_LIB(LLVMObject)
+  FIND_AND_ADD_LLVM_LIB(LLVMTextAPI)
+  FIND_AND_ADD_LLVM_LIB(LLVMBitReader)
+  FIND_AND_ADD_LLVM_LIB(LLVMCore)
+  FIND_AND_ADD_LLVM_LIB(LLVMRemarks)
+  FIND_AND_ADD_LLVM_LIB(LLVMBitstreamReader)
+  FIND_AND_ADD_LLVM_LIB(LLVMAArch64AsmParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMMCParser)
+  FIND_AND_ADD_LLVM_LIB(LLVMAArch64Desc)
+  FIND_AND_ADD_LLVM_LIB(LLVMMC)
+  FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)
+  FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoMSF)
+  FIND_AND_ADD_LLVM_LIB(LLVMBinaryFormat)
+  FIND_AND_ADD_LLVM_LIB(LLVMAArch64Utils)
+  FIND_AND_ADD_LLVM_LIB(LLVMAArch64Info)
+  FIND_AND_ADD_LLVM_LIB(LLVMSupport)
+  FIND_AND_ADD_LLVM_LIB(LLVMDemangle)
 endif()
 
 include(FindPackageHandleStandardArgs)
README.md
@@ -58,10 +58,16 @@ brew install cmake llvm
 brew outdated llvm || brew upgrade llvm
 mkdir build
 cd build
-cmake .. -DCMAKE_PREFIX_PATH=$(brew --prefix llvm) -DZIG_PREFER_CLANG_CPP_DYLIB=ON
+cmake .. -DCMAKE_PREFIX_PATH=$(brew --prefix llvm)
 make install
 ```
 
+You will now run into this issue:
+[homebrew and llvm 10 packages in apt.llvm.org are broken with undefined reference to getPollyPluginInfo](https://github.com/ziglang/zig/issues/4799)
+
+Please help upstream LLVM and Homebrew solve this issue, there is nothing Zig
+can do about it. See that issue for a workaround you can do in the meantime.
+
 ##### Windows
 
 See https://github.com/ziglang/zig/wiki/Building-Zig-on-Windows