@@ -251,7 +251,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
251
251
add_link_options (/DEBUG) # enable debugging information
252
252
add_link_options (/OPT:REF) # optimize: remove unreferenced functions & data
253
253
add_link_options (/OPT:ICF) # optimize: enable COMDAT folding
254
- # the combination of /Zi compiler flag and /DEBUG /OPT:REF /OPT:ICF
254
+ # the combination of /Zi compiler flag and /DEBUG /OPT:REF /OPT:ICF
255
255
# linker flags is needed to create .pdb output on release builds
256
256
endif ()
257
257
elseif (CMAKE_SYSTEM_NAME STREQUAL "SunOS" )
@@ -465,29 +465,29 @@ endif()
465
465
######################################
466
466
467
467
# llvm-config --libs analysis core bitwriter mcjit orcjit
468
- set (MONO_llvm_core_libs_1100 "-lLLVMOrcJIT " "-lLLVMPasses " "-lLLVMCoroutines " "-lLLVMipo " "-lLLVMInstrumentation " "-lLLVMVectorize " "-lLLVMScalarOpts " "-lLLVMLinker " "-lLLVMIRReader " "-lLLVMAsmParser " "-lLLVMInstCombine " "-lLLVMFrontendOpenMP " "-lLLVMAggressiveInstCombine " "-lLLVMTransformUtils " "-lLLVMOrcError " "-lLLVMJITLink " "-lLLVMMCJIT " "-lLLVMExecutionEngine " "-lLLVMTarget " "-lLLVMRuntimeDyld " "-lLLVMBitWriter " "-lLLVMAnalysis " "-lLLVMProfileData " "-lLLVMObject " "-lLLVMTextAPI " "-lLLVMMCParser " "-lLLVMMC " "-lLLVMDebugInfoCodeView " "-lLLVMDebugInfoMSF " "-lLLVMBitReader " "-lLLVMCore " "-lLLVMRemarks " "-lLLVMBitstreamReader " "-lLLVMBinaryFormat " "-lLLVMSupport " "-lLLVMDemangle " )
468
+ set (MONO_llvm_core_libs_1100 "LLVMOrcJIT " "LLVMPasses " "LLVMCoroutines " "LLVMipo " "LLVMInstrumentation " "LLVMVectorize " "LLVMScalarOpts " "LLVMLinker " "LLVMIRReader " "LLVMAsmParser " "LLVMInstCombine " "LLVMFrontendOpenMP " "LLVMAggressiveInstCombine " "LLVMTransformUtils " "LLVMOrcError " "LLVMJITLink " "LLVMMCJIT " "LLVMExecutionEngine " "LLVMTarget " "LLVMRuntimeDyld " "LLVMBitWriter " "LLVMAnalysis " "LLVMProfileData " "LLVMObject " "LLVMTextAPI " "LLVMMCParser " "LLVMMC " "LLVMDebugInfoCodeView " "LLVMDebugInfoMSF " "LLVMBitReader " "LLVMCore " "LLVMRemarks " "LLVMBitstreamReader " "LLVMBinaryFormat " "LLVMSupport " "LLVMDemangle " )
469
469
470
470
# llvm-config --libs x86codegen
471
- set (MONO_llvm_extra_libs_x86codegen_1100 "-lLLVMX86CodeGen " "-lLLVMCFGuard " "-lLLVMGlobalISel " "-lLLVMX86Desc " "-lLLVMX86Info " "-lLLVMMCDisassembler " "-lLLVMSelectionDAG " "-lLLVMAsmPrinter " "-lLLVMDebugInfoDWARF " "-lLLVMCodeGen " "-lLLVMTarget " "-lLLVMScalarOpts " "-lLLVMInstCombine " "-lLLVMAggressiveInstCombine " "-lLLVMTransformUtils " "-lLLVMBitWriter " "-lLLVMAnalysis " "-lLLVMProfileData " "-lLLVMObject " "-lLLVMTextAPI " "-lLLVMMCParser " "-lLLVMMC " "-lLLVMDebugInfoCodeView " "-lLLVMDebugInfoMSF " "-lLLVMBitReader " "-lLLVMCore " "-lLLVMRemarks " "-lLLVMBitstreamReader " "-lLLVMBinaryFormat " "-lLLVMSupport " "-lLLVMDemangle " )
471
+ set (MONO_llvm_extra_libs_x86codegen_1100 "LLVMX86CodeGen " "LLVMCFGuard " "LLVMGlobalISel " "LLVMX86Desc " "LLVMX86Info " "LLVMMCDisassembler " "LLVMSelectionDAG " "LLVMAsmPrinter " "LLVMDebugInfoDWARF " "LLVMCodeGen " "LLVMTarget " "LLVMScalarOpts " "LLVMInstCombine " "LLVMAggressiveInstCombine " "LLVMTransformUtils " "LLVMBitWriter " "LLVMAnalysis " "LLVMProfileData " "LLVMObject " "LLVMTextAPI " "LLVMMCParser " "LLVMMC " "LLVMDebugInfoCodeView " "LLVMDebugInfoMSF " "LLVMBitReader " "LLVMCore " "LLVMRemarks " "LLVMBitstreamReader " "LLVMBinaryFormat " "LLVMSupport " "LLVMDemangle " )
472
472
473
473
# llvm-config --libs armcodegen
474
- set (MONO_llvm_extra_libs_armcodegen_1100 "-lLLVMARMCodeGen " "-lLLVMCFGuard " "-lLLVMGlobalISel " "-lLLVMSelectionDAG " "-lLLVMAsmPrinter " "-lLLVMDebugInfoDWARF " "-lLLVMCodeGen " "-lLLVMTarget " "-lLLVMScalarOpts " "-lLLVMInstCombine " "-lLLVMAggressiveInstCombine " "-lLLVMTransformUtils " "-lLLVMBitWriter " "-lLLVMAnalysis " "-lLLVMProfileData " "-lLLVMObject " "-lLLVMTextAPI " "-lLLVMMCParser " "-lLLVMBitReader " "-lLLVMCore " "-lLLVMRemarks " "-lLLVMBitstreamReader " "-lLLVMARMDesc " "-lLLVMMCDisassembler " "-lLLVMMC " "-lLLVMDebugInfoCodeView " "-lLLVMDebugInfoMSF " "-lLLVMBinaryFormat " "-lLLVMARMUtils " "-lLLVMARMInfo " "-lLLVMSupport " "-lLLVMDemangle " )
474
+ set (MONO_llvm_extra_libs_armcodegen_1100 "LLVMARMCodeGen " "LLVMCFGuard " "LLVMGlobalISel " "LLVMSelectionDAG " "LLVMAsmPrinter " "LLVMDebugInfoDWARF " "LLVMCodeGen " "LLVMTarget " "LLVMScalarOpts " "LLVMInstCombine " "LLVMAggressiveInstCombine " "LLVMTransformUtils " "LLVMBitWriter " "LLVMAnalysis " "LLVMProfileData " "LLVMObject " "LLVMTextAPI " "LLVMMCParser " "LLVMBitReader " "LLVMCore " "LLVMRemarks " "LLVMBitstreamReader " "LLVMARMDesc " "LLVMMCDisassembler " "LLVMMC " "LLVMDebugInfoCodeView " "LLVMDebugInfoMSF " "LLVMBinaryFormat " "LLVMARMUtils " "LLVMARMInfo " "LLVMSupport " "LLVMDemangle " )
475
475
476
476
# llvm-config --libs aarch64codegen
477
- set (MONO_llvm_extra_libs_aarch64codegen_1100 "-lLLVMAArch64CodeGen " "-lLLVMCFGuard " "-lLLVMGlobalISel " "-lLLVMSelectionDAG " "-lLLVMAsmPrinter " "-lLLVMDebugInfoDWARF " "-lLLVMCodeGen " "-lLLVMTarget " "-lLLVMScalarOpts " "-lLLVMInstCombine " "-lLLVMAggressiveInstCombine " "-lLLVMTransformUtils " "-lLLVMBitWriter " "-lLLVMAnalysis " "-lLLVMProfileData " "-lLLVMObject " "-lLLVMTextAPI " "-lLLVMMCParser " "-lLLVMBitReader " "-lLLVMCore " "-lLLVMRemarks " "-lLLVMBitstreamReader " "-lLLVMAArch64Desc " "-lLLVMMC " "-lLLVMDebugInfoCodeView " "-lLLVMDebugInfoMSF " "-lLLVMBinaryFormat " "-lLLVMAArch64Utils " "-lLLVMAArch64Info " "-lLLVMSupport " "-lLLVMDemangle " )
477
+ set (MONO_llvm_extra_libs_aarch64codegen_1100 "LLVMAArch64CodeGen " "LLVMCFGuard " "LLVMGlobalISel " "LLVMSelectionDAG " "LLVMAsmPrinter " "LLVMDebugInfoDWARF " "LLVMCodeGen " "LLVMTarget " "LLVMScalarOpts " "LLVMInstCombine " "LLVMAggressiveInstCombine " "LLVMTransformUtils " "LLVMBitWriter " "LLVMAnalysis " "LLVMProfileData " "LLVMObject " "LLVMTextAPI " "LLVMMCParser " "LLVMBitReader " "LLVMCore " "LLVMRemarks " "LLVMBitstreamReader " "LLVMAArch64Desc " "LLVMMC " "LLVMDebugInfoCodeView " "LLVMDebugInfoMSF " "LLVMBinaryFormat " "LLVMAArch64Utils " "LLVMAArch64Info " "LLVMSupport " "LLVMDemangle " )
478
478
479
479
480
480
# llvm-config --libs analysis core bitwriter mcjit orcjit
481
- set (MONO_llvm_core_libs_900 "-lLLVMOrcJIT " "-lLLVMJITLink " "-lLLVMMCJIT " "-lLLVMExecutionEngine " "-lLLVMRuntimeDyld " "-lLLVMAsmPrinter " "-lLLVMDebugInfoDWARF " "-lLLVMCodeGen " "-lLLVMTarget " "-lLLVMScalarOpts " "-lLLVMInstCombine " "-lLLVMAggressiveInstCombine " "-lLLVMTransformUtils " "-lLLVMBitWriter " "-lLLVMAnalysis " "-lLLVMProfileData " "-lLLVMObject " "-lLLVMMCParser " "-lLLVMMC " "-lLLVMDebugInfoCodeView " "-lLLVMDebugInfoMSF " "-lLLVMBitReader " "-lLLVMBitstreamReader " "-lLLVMCore " "-lLLVMRemarks " "-lLLVMBinaryFormat " "-lLLVMSupport " "-lLLVMDemangle " )
481
+ set (MONO_llvm_core_libs_900 "LLVMOrcJIT " "LLVMJITLink " "LLVMMCJIT " "LLVMExecutionEngine " "LLVMRuntimeDyld " "LLVMAsmPrinter " "LLVMDebugInfoDWARF " "LLVMCodeGen " "LLVMTarget " "LLVMScalarOpts " "LLVMInstCombine " "LLVMAggressiveInstCombine " "LLVMTransformUtils " "LLVMBitWriter " "LLVMAnalysis " "LLVMProfileData " "LLVMObject " "LLVMMCParser " "LLVMMC " "LLVMDebugInfoCodeView " "LLVMDebugInfoMSF " "LLVMBitReader " "LLVMBitstreamReader " "LLVMCore " "LLVMRemarks " "LLVMBinaryFormat " "LLVMSupport " "LLVMDemangle " )
482
482
483
483
# llvm-config --libs x86codegen
484
- set (MONO_llvm_extra_libs_x86codegen_900 "-lLLVMX86CodeGen " "-lLLVMGlobalISel " "-lLLVMX86Desc " "-lLLVMX86Utils " "-lLLVMX86Info " "-lLLVMMCDisassembler " "-lLLVMSelectionDAG " "-lLLVMAsmPrinter " "-lLLVMDebugInfoDWARF " "-lLLVMCodeGen " "-lLLVMTarget " "-lLLVMScalarOpts " "-lLLVMInstCombine " "-lLLVMAggressiveInstCombine " "-lLLVMTransformUtils " "-lLLVMBitWriter " "-lLLVMAnalysis " "-lLLVMProfileData " "-lLLVMObject " "-lLLVMMCParser " "-lLLVMMC " "-lLLVMDebugInfoCodeView " "-lLLVMDebugInfoMSF " "-lLLVMBitReader " "-lLLVMBitstreamReader " "-lLLVMCore " "-lLLVMRemarks " "-lLLVMBinaryFormat " "-lLLVMSupport " "-lLLVMDemangle " )
484
+ set (MONO_llvm_extra_libs_x86codegen_900 "LLVMX86CodeGen " "LLVMGlobalISel " "LLVMX86Desc " "LLVMX86Utils " "LLVMX86Info " "LLVMMCDisassembler " "LLVMSelectionDAG " "LLVMAsmPrinter " "LLVMDebugInfoDWARF " "LLVMCodeGen " "LLVMTarget " "LLVMScalarOpts " "LLVMInstCombine " "LLVMAggressiveInstCombine " "LLVMTransformUtils " "LLVMBitWriter " "LLVMAnalysis " "LLVMProfileData " "LLVMObject " "LLVMMCParser " "LLVMMC " "LLVMDebugInfoCodeView " "LLVMDebugInfoMSF " "LLVMBitReader " "LLVMBitstreamReader " "LLVMCore " "LLVMRemarks " "LLVMBinaryFormat " "LLVMSupport " "LLVMDemangle " )
485
485
486
486
# llvm-config --libs armcodegen
487
- set (MONO_llvm_extra_libs_armcodegen_900 "-lLLVMARMCodeGen " "-lLLVMGlobalISel " "-lLLVMSelectionDAG " "-lLLVMAsmPrinter " "-lLLVMDebugInfoDWARF " "-lLLVMCodeGen " "-lLLVMTarget " "-lLLVMScalarOpts " "-lLLVMInstCombine " "-lLLVMAggressiveInstCombine " "-lLLVMTransformUtils " "-lLLVMBitWriter " "-lLLVMAnalysis " "-lLLVMProfileData " "-lLLVMObject " "-lLLVMMCParser " "-lLLVMBitReader " "-lLLVMBitstreamReader " "-lLLVMCore " "-lLLVMRemarks " "-lLLVMARMDesc " "-lLLVMMCDisassembler " "-lLLVMMC " "-lLLVMDebugInfoCodeView " "-lLLVMDebugInfoMSF " "-lLLVMBinaryFormat " "-lLLVMARMUtils " "-lLLVMARMInfo " "-lLLVMSupport " "-lLLVMDemangle " )
487
+ set (MONO_llvm_extra_libs_armcodegen_900 "LLVMARMCodeGen " "LLVMGlobalISel " "LLVMSelectionDAG " "LLVMAsmPrinter " "LLVMDebugInfoDWARF " "LLVMCodeGen " "LLVMTarget " "LLVMScalarOpts " "LLVMInstCombine " "LLVMAggressiveInstCombine " "LLVMTransformUtils " "LLVMBitWriter " "LLVMAnalysis " "LLVMProfileData " "LLVMObject " "LLVMMCParser " "LLVMBitReader " "LLVMBitstreamReader " "LLVMCore " "LLVMRemarks " "LLVMARMDesc " "LLVMMCDisassembler " "LLVMMC " "LLVMDebugInfoCodeView " "LLVMDebugInfoMSF " "LLVMBinaryFormat " "LLVMARMUtils " "LLVMARMInfo " "LLVMSupport " "LLVMDemangle " )
488
488
489
489
# llvm-config --libs aarch64codegen
490
- set (MONO_llvm_extra_libs_aarch64codegen_900 "-lLLVMAArch64CodeGen " "-lLLVMGlobalISel " "-lLLVMSelectionDAG " "-lLLVMAsmPrinter " "-lLLVMDebugInfoDWARF " "-lLLVMCodeGen " "-lLLVMTarget " "-lLLVMScalarOpts " "-lLLVMInstCombine " "-lLLVMAggressiveInstCombine " "-lLLVMTransformUtils " "-lLLVMBitWriter " "-lLLVMAnalysis " "-lLLVMProfileData " "-lLLVMObject " "-lLLVMMCParser " "-lLLVMBitReader " "-lLLVMBitstreamReader " "-lLLVMCore " "-lLLVMRemarks " "-lLLVMAArch64Desc " "-lLLVMMC " "-lLLVMDebugInfoCodeView " "-lLLVMDebugInfoMSF " "-lLLVMBinaryFormat " "-lLLVMAArch64Utils " "-lLLVMAArch64Info " "-lLLVMSupport " "-lLLVMDemangle " )
490
+ set (MONO_llvm_extra_libs_aarch64codegen_900 "LLVMAArch64CodeGen " "LLVMGlobalISel " "LLVMSelectionDAG " "LLVMAsmPrinter " "LLVMDebugInfoDWARF " "LLVMCodeGen " "LLVMTarget " "LLVMScalarOpts " "LLVMInstCombine " "LLVMAggressiveInstCombine " "LLVMTransformUtils " "LLVMBitWriter " "LLVMAnalysis " "LLVMProfileData " "LLVMObject " "LLVMMCParser " "LLVMBitReader " "LLVMBitstreamReader " "LLVMCore " "LLVMRemarks " "LLVMAArch64Desc " "LLVMMC " "LLVMDebugInfoCodeView " "LLVMDebugInfoMSF " "LLVMBinaryFormat " "LLVMAArch64Utils " "LLVMAArch64Info " "LLVMSupport " "LLVMDemangle " )
491
491
492
492
######################################
493
493
# LLVM CHECKS
@@ -517,8 +517,9 @@ if(LLVM_PREFIX)
517
517
string (REGEX REPLACE ".*MONO_API_VERSION ([0-9]+)" "\\ 1" llvm_api_version ${llvm_api_version_line} )
518
518
519
519
# llvm-config --cflags
520
- set (llvm_cflags "-I${LLVM_PREFIX} /include" )
521
- set (llvm_cxxflags "-I${LLVM_PREFIX} /include" )
520
+ set (llvm_cflags "" )
521
+ set (llvm_cxxflags "" )
522
+ set (llvm_includedir "${LLVM_PREFIX} /include" )
522
523
523
524
# llvm-config --system-libs
524
525
set (llvm_system_libs "-lz" "-lrt" "-ldl" "-lpthread" "-lm" )
@@ -533,6 +534,8 @@ if(LLVM_PREFIX)
533
534
endif ()
534
535
535
536
set (llvm_libs ${llvm_core_libs} ${llvm_extra} )
537
+ list (TRANSFORM llvm_libs PREPEND "${LLVM_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} " )
538
+ list (TRANSFORM llvm_libs APPEND "${CMAKE_STATIC_LIBRARY_SUFFIX} " )
536
539
else ()
537
540
set (LLVM_CONFIG ${LLVM_PREFIX} /bin/llvm-config${EXE_SUFFIX} )
538
541
if (NOT EXISTS ${LLVM_CONFIG} )
@@ -545,8 +548,9 @@ if(LLVM_PREFIX)
545
548
endif ()
546
549
execute_process (COMMAND ${LLVM_CONFIG} --cflags OUTPUT_VARIABLE llvm_cflags OUTPUT_STRIP_TRAILING_WHITESPACE)
547
550
execute_process (COMMAND ${LLVM_CONFIG} --cxxflags OUTPUT_VARIABLE llvm_cxxflags OUTPUT_STRIP_TRAILING_WHITESPACE)
551
+ execute_process (COMMAND ${LLVM_CONFIG} --includedir OUTPUT_VARIABLE llvm_includedir OUTPUT_STRIP_TRAILING_WHITESPACE)
548
552
execute_process (COMMAND ${LLVM_CONFIG} --system -libs OUTPUT_VARIABLE llvm_system_libs_space_separated OUTPUT_STRIP_TRAILING_WHITESPACE)
549
- execute_process (COMMAND ${LLVM_CONFIG} --libs analysis core bitwriter mcjit orcjit ${llvm_codegen_libs} OUTPUT_VARIABLE llvm_libs_space_separated OUTPUT_STRIP_TRAILING_WHITESPACE)
553
+ execute_process (COMMAND ${LLVM_CONFIG} --libfiles analysis core bitwriter mcjit orcjit ${llvm_codegen_libs} OUTPUT_VARIABLE llvm_libs_space_separated OUTPUT_STRIP_TRAILING_WHITESPACE)
550
554
separate_arguments (llvm_system_libs NATIVE_COMMAND ${llvm_system_libs_space_separated} )
551
555
separate_arguments (llvm_libs NATIVE_COMMAND ${llvm_libs_space_separated} )
552
556
endif ()
@@ -559,6 +563,7 @@ if(LLVM_PREFIX)
559
563
set (ENABLE_LLVM_RUNTIME 1)
560
564
set (LLVM_LIBS ${llvm_libs} ${llvm_system_libs} )
561
565
set (LLVM_LIBDIR "${LLVM_PREFIX} /lib" )
566
+ set (LLVM_INCLUDEDIR "${llvm_includedir} " )
562
567
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${llvm_cflags} " )
563
568
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${llvm_cxxflags} -fexceptions -fno-rtti" )
564
569
add_definitions (-DLLVM_API_VERSION=${llvm_api_version} )
0 commit comments