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