xref: /aosp_15_r20/external/bcc/cmake/clang_libs.cmake (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
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()
28if (${LLVM_PACKAGE_VERSION} VERSION_EQUAL 16 OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER 16)
29  list(APPEND llvm_raw_libs frontendhlsl)
30endif()
31
32llvm_map_components_to_libnames(_llvm_libs ${llvm_raw_libs})
33llvm_expand_dependencies(llvm_libs ${_llvm_libs})
34endif()
35
36if(ENABLE_LLVM_SHARED AND NOT libclang-shared STREQUAL "libclang-shared-NOTFOUND")
37set(clang_libs ${libclang-shared})
38else()
39# order is important
40set(clang_libs
41  ${libclangFrontend}
42  ${libclangSerialization}
43  ${libclangDriver})
44
45if (${LLVM_PACKAGE_VERSION} VERSION_EQUAL 8 OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER 8)
46  list(APPEND clang_libs ${libclangASTMatchers})
47endif()
48
49list(APPEND clang_libs
50  ${libclangParse}
51  ${libclangSema}
52  ${libclangCodeGen}
53  ${libclangAnalysis}
54  ${libclangRewrite}
55  ${libclangEdit}
56  ${libclangAST}
57  ${libclangLex})
58
59# if (${LLVM_PACKAGE_VERSION} VERSION_EQUAL 15 OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER 15)
60  list(APPEND clang_libs ${libclangSupport})
61# endif()
62
63list(APPEND clang_libs
64  ${libclangBasic})
65endif()
66
67# prune unused llvm static library stuff when linking into the new .so
68set(_exclude_flags)
69foreach(_lib ${clang_libs})
70  get_filename_component(_lib ${_lib} NAME)
71  set(_exclude_flags "${_exclude_flags} -Wl,--exclude-libs=${_lib}")
72endforeach(_lib)
73set(clang_lib_exclude_flags "${_exclude_flags}")
74
75set(_exclude_flags)
76foreach(_lib ${llvm_libs})
77  get_filename_component(_lib ${_lib} NAME)
78  set(_exclude_flags "${_exclude_flags} -Wl,--exclude-libs=lib${_lib}.a")
79endforeach(_lib)
80set(llvm_lib_exclude_flags "${_exclude_flags}")
81