@@ -604,6 +604,11 @@ if(LLVM_PREFIX)
604604 file (STRINGS ${llvm_config_path} llvm_api_version_line REGEX "MONO_API_VERSION " )
605605 string (REGEX REPLACE ".*MONO_API_VERSION ([0-9]+)" "\\ 1" llvm_api_version ${llvm_api_version_line} )
606606
607+ # IMPORTANT: when bumping LLVM make sure to rerun the llvm-config commands below and update the variables accordingly
608+ if (NOT ${llvm_api_version} EQUAL 1900)
609+ message (FATAL_ERROR "Unexpected LLVM version: ${llvm_api_version} ." )
610+ endif ()
611+
607612 # llvm-config --libs analysis core bitwriter mcjit orcjit
608613 set (MONO_llvm_core_libs "LLVMOrcJIT" "LLVMPasses" "LLVMIRPrinter" "LLVMHipStdPar" "LLVMCoroutines" "LLVMipo" "LLVMInstrumentation" "LLVMVectorize" "LLVMLinker" "LLVMFrontendOpenMP" "LLVMFrontendOffloading" "LLVMCodeGen" "LLVMScalarOpts" "LLVMInstCombine" "LLVMObjCARCOpts" "LLVMCodeGenTypes" "LLVMCFGuard" "LLVMAggressiveInstCombine" "LLVMTransformUtils" "LLVMWindowsDriver" "LLVMJITLink" "LLVMOption" "LLVMMCJIT" "LLVMExecutionEngine" "LLVMTarget" "LLVMRuntimeDyld" "LLVMOrcTargetProcess" "LLVMOrcShared" "LLVMBitWriter" "LLVMAnalysis" "LLVMProfileData" "LLVMSymbolize" "LLVMDebugInfoBTF" "LLVMDebugInfoPDB" "LLVMDebugInfoMSF" "LLVMDebugInfoDWARF" "LLVMObject" "LLVMTextAPI" "LLVMMCParser" "LLVMIRReader" "LLVMAsmParser" "LLVMMC" "LLVMDebugInfoCodeView" "LLVMBitReader" "LLVMCore" "LLVMRemarks" "LLVMBitstreamReader" "LLVMBinaryFormat" "LLVMTargetParser" "LLVMSupport" "LLVMDemangle" )
609614
@@ -616,24 +621,16 @@ if(LLVM_PREFIX)
616621 # llvm-config --libs aarch64codegen
617622 set (MONO_llvm_extra_libs_aarch64codegen "LLVMAArch64CodeGen" "LLVMGlobalISel" "LLVMSelectionDAG" "LLVMCFGuard" "LLVMAsmPrinter" "LLVMCodeGen" "LLVMTarget" "LLVMScalarOpts" "LLVMInstCombine" "LLVMAggressiveInstCombine" "LLVMObjCARCOpts" "LLVMTransformUtils" "LLVMBitWriter" "LLVMAnalysis" "LLVMProfileData" "LLVMSymbolize" "LLVMDebugInfoBTF" "LLVMDebugInfoPDB" "LLVMDebugInfoMSF" "LLVMDebugInfoDWARF" "LLVMObject" "LLVMTextAPI" "LLVMMCParser" "LLVMIRReader" "LLVMAsmParser" "LLVMBitReader" "LLVMAArch64Desc" "LLVMCodeGenTypes" "LLVMAArch64Utils" "LLVMCore" "LLVMRemarks" "LLVMBitstreamReader" "LLVMAArch64Info" "LLVMMC" "LLVMDebugInfoCodeView" "LLVMBinaryFormat" "LLVMTargetParser" "LLVMSupport" "LLVMDemangle" )
618623
619- if (HOST_LINUX AND NOT HOST_WASM AND NOT HOST_WASI AND ${llvm_api_version} GREATER_EQUAL 1600 )
624+ if (HOST_LINUX AND NOT HOST_WASM AND NOT HOST_WASI)
620625 set (MONO_stdlib "-nostdinc++ -nostdlib++" )
621626 set (MONO_cxx_lib "-L${LLVM_PREFIX} /lib -lc++ -lc++abi" )
622627 set (MONO_cxx_include "-isystem ${LLVM_PREFIX} /include/c++/v1" )
623628 endif ()
624629
625- if (${llvm_api_version} GREATER_EQUAL 1600)
626- if (HOST_WIN32 )
627- set (MONO_cxx_std_version "/std:c++17" )
628- else ()
629- set (MONO_cxx_std_version "-std=c++17" )
630- endif ()
630+ if (HOST_WIN32 )
631+ set (MONO_cxx_std_version "/std:c++17" )
631632 else ()
632- if (HOST_WIN32 )
633- set (MONO_cxx_std_version "/std:c++14" )
634- else ()
635- set (MONO_cxx_std_version "-std=c++14" )
636- endif ()
633+ set (MONO_cxx_std_version "-std=c++17" )
637634 endif ()
638635
639636 # llvm-config --cflags
@@ -672,10 +669,6 @@ if(LLVM_PREFIX)
672669 list (TRANSFORM llvm_libs PREPEND "${LLVM_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} " )
673670 list (TRANSFORM llvm_libs APPEND "${CMAKE_STATIC_LIBRARY_SUFFIX} " )
674671
675- if (${llvm_api_version} LESS 1100)
676- message (FATAL_ERROR "LLVM version too old." )
677- endif ()
678-
679672 set (ENABLE_LLVM 1)
680673 set (ENABLE_LLVM_RUNTIME 1)
681674 set (LLVM_LIBS ${llvm_libs} ${llvm_system_libs} )
0 commit comments