• 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 lto)
6if(ENABLE_LLVM_NATIVECODEGEN)
7set(llvm_raw_libs ${llvm_raw_libs} nativecodegen)
8endif()
9list(FIND LLVM_AVAILABLE_LIBS "LLVMCoverage" _llvm_coverage)
10if (${_llvm_coverage} GREATER -1)
11  list(APPEND llvm_raw_libs coverage)
12endif()
13list(FIND LLVM_AVAILABLE_LIBS "LLVMCoroutines" _llvm_coroutines)
14if (${_llvm_coroutines} GREATER -1)
15  list(APPEND llvm_raw_libs coroutines)
16endif()
17list(FIND LLVM_AVAILABLE_LIBS "LLVMFrontendOpenMP" _llvm_frontendOpenMP)
18if (${_llvm_frontendOpenMP} GREATER -1)
19  list(APPEND llvm_raw_libs frontendopenmp)
20endif()
21if (${LLVM_PACKAGE_VERSION} VERSION_EQUAL 6 OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER 6)
22  list(APPEND llvm_raw_libs bpfasmparser)
23  list(APPEND llvm_raw_libs bpfdisassembler)
24endif()
25if (${LLVM_PACKAGE_VERSION} VERSION_EQUAL 15 OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER 15)
26  list(APPEND llvm_raw_libs windowsdriver)
27endif()
28llvm_map_components_to_libnames(_llvm_libs ${llvm_raw_libs})
29llvm_expand_dependencies(llvm_libs ${_llvm_libs})
30endif()
31
32if(ENABLE_LLVM_SHARED AND NOT libclang-shared STREQUAL "libclang-shared-NOTFOUND")
33set(clang_libs ${libclang-shared})
34else()
35# order is important
36set(clang_libs
37  ${libclangFrontend}
38  ${libclangSerialization}
39  ${libclangDriver})
40
41if (${LLVM_PACKAGE_VERSION} VERSION_EQUAL 8 OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER 8)
42  list(APPEND clang_libs ${libclangASTMatchers})
43endif()
44
45list(APPEND clang_libs
46  ${libclangParse}
47  ${libclangSema}
48  ${libclangCodeGen}
49  ${libclangAnalysis}
50  ${libclangRewrite}
51  ${libclangEdit}
52  ${libclangAST}
53  ${libclangLex}
54  ${libclangBasic})
55endif()
56
57# prune unused llvm static library stuff when linking into the new .so
58set(_exclude_flags)
59foreach(_lib ${clang_libs})
60  get_filename_component(_lib ${_lib} NAME)
61  set(_exclude_flags "${_exclude_flags} -Wl,--exclude-libs=${_lib}")
62endforeach(_lib)
63set(clang_lib_exclude_flags "${_exclude_flags}")
64
65set(_exclude_flags)
66foreach(_lib ${llvm_libs})
67  get_filename_component(_lib ${_lib} NAME)
68  set(_exclude_flags "${_exclude_flags} -Wl,--exclude-libs=lib${_lib}.a")
69endforeach(_lib)
70set(llvm_lib_exclude_flags "${_exclude_flags}")
71