Home | History | Annotate | Download | only in cmake
      1 if(ENABLE_LLVM_SHARED)
      2 set(llvm_libs "LLVM")
      3 else()
      4 set(llvm_raw_libs bitwriter bpfcodegen debuginfodwarf irreader linker
      5   mcjit objcarcopts option passes nativecodegen lto)
      6 list(FIND LLVM_AVAILABLE_LIBS "LLVMCoverage" _llvm_coverage)
      7 if (${_llvm_coverage} GREATER -1)
      8   list(APPEND llvm_raw_libs coverage)
      9 endif()
     10 list(FIND LLVM_AVAILABLE_LIBS "LLVMCoroutines" _llvm_coroutines)
     11 if (${_llvm_coroutines} GREATER -1)
     12   list(APPEND llvm_raw_libs coroutines)
     13 endif()
     14 if (${LLVM_PACKAGE_VERSION} VERSION_EQUAL 6 OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER 6)
     15   list(APPEND llvm_raw_libs bpfasmparser)
     16   list(APPEND llvm_raw_libs bpfdisassembler)
     17 endif()
     18 llvm_map_components_to_libnames(_llvm_libs ${llvm_raw_libs})
     19 llvm_expand_dependencies(llvm_libs ${_llvm_libs})
     20 endif()
     21 
     22 # order is important
     23 set(clang_libs
     24   ${libclangFrontend}
     25   ${libclangSerialization}
     26   ${libclangDriver})
     27 
     28 if (${LLVM_PACKAGE_VERSION} VERSION_EQUAL 8 OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER 8)
     29   list(APPEND clang_libs ${libclangASTMatchers})
     30 endif()
     31 
     32 list(APPEND clang_libs
     33   ${libclangParse}
     34   ${libclangSema}
     35   ${libclangCodeGen}
     36   ${libclangAnalysis}
     37   ${libclangRewrite}
     38   ${libclangEdit}
     39   ${libclangAST}
     40   ${libclangLex}
     41   ${libclangBasic})
     42 
     43 # prune unused llvm static library stuff when linking into the new .so
     44 set(_exclude_flags)
     45 foreach(_lib ${clang_libs})
     46   get_filename_component(_lib ${_lib} NAME)
     47   set(_exclude_flags "${_exclude_flags} -Wl,--exclude-libs=${_lib}")
     48 endforeach(_lib)
     49 set(clang_lib_exclude_flags "${_exclude_flags}")
     50 
     51 set(_exclude_flags)
     52 foreach(_lib ${llvm_libs})
     53   get_filename_component(_lib ${_lib} NAME)
     54   set(_exclude_flags "${_exclude_flags} -Wl,--exclude-libs=lib${_lib}.a")
     55 endforeach(_lib)
     56 set(llvm_lib_exclude_flags "${_exclude_flags}")
     57