• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1if(ENABLE_LLVM_SHARED)
2set(llvm_libs "LLVM")
3else()
4set(llvm_raw_libs bitwriter bpfcodegen debuginfodwarf irreader linker
5  mcjit objcarcopts option passes nativecodegen lto)
6list(FIND LLVM_AVAILABLE_LIBS "LLVMCoverage" _llvm_coverage)
7if (${_llvm_coverage} GREATER -1)
8  list(APPEND llvm_raw_libs coverage)
9endif()
10list(FIND LLVM_AVAILABLE_LIBS "LLVMCoroutines" _llvm_coroutines)
11if (${_llvm_coroutines} GREATER -1)
12  list(APPEND llvm_raw_libs coroutines)
13endif()
14if (${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)
17endif()
18llvm_map_components_to_libnames(_llvm_libs ${llvm_raw_libs})
19llvm_expand_dependencies(llvm_libs ${_llvm_libs})
20endif()
21
22# order is important
23set(clang_libs
24  ${libclangFrontend}
25  ${libclangSerialization}
26  ${libclangDriver})
27
28if (${LLVM_PACKAGE_VERSION} VERSION_EQUAL 8 OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER 8)
29  list(APPEND clang_libs ${libclangASTMatchers})
30endif()
31
32list(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
44set(_exclude_flags)
45foreach(_lib ${clang_libs})
46  get_filename_component(_lib ${_lib} NAME)
47  set(_exclude_flags "${_exclude_flags} -Wl,--exclude-libs=${_lib}")
48endforeach(_lib)
49set(clang_lib_exclude_flags "${_exclude_flags}")
50
51set(_exclude_flags)
52foreach(_lib ${llvm_libs})
53  get_filename_component(_lib ${_lib} NAME)
54  set(_exclude_flags "${_exclude_flags} -Wl,--exclude-libs=lib${_lib}.a")
55endforeach(_lib)
56set(llvm_lib_exclude_flags "${_exclude_flags}")
57