| import("//clang/lib/ARCMigrate/enable.gni") |
| import("//llvm/version.gni") |
| |
| # This build file is just enough to get check-clang to pass, it's missing |
| # several things from the CMake build: |
| # - linking in clangTidyPlugin and clangIncludeFixerPlugin from |
| # clang-tools-extra (which doesn't have any GN build files yet) |
| # - using libclang.exports |
| # - a build target copying the Python bindings |
| # - the GN linux build always builds without -fPIC (as if LLVM_ENABLE_PIC=OFF |
| # in the CMake build), so libclang is always a static library on linux |
| # - the GN build doesn't have LIBCLANG_BUILD_STATIC |
| |
| libclang_target_type = "shared_library" |
| if (host_os != "win" && host_os != "mac") { |
| # ELF targets need -fPIC to build shared libs but they aren't on by default. |
| # For now, make libclang a static lib there. |
| libclang_target_type = "static_library" |
| } |
| |
| target(libclang_target_type, "libclang") { |
| configs += [ "//llvm/utils/gn/build:clang_code" ] |
| deps = [ |
| "//clang/include/clang/Config", |
| "//clang/lib/AST", |
| "//clang/lib/Basic", |
| "//clang/lib/Frontend", |
| "//clang/lib/Headers", |
| "//clang/lib/Index", |
| "//clang/lib/Lex", |
| "//clang/lib/Sema", |
| "//clang/lib/Tooling", |
| "//llvm/include/llvm/Config:llvm-config", |
| "//llvm/lib/IR", |
| "//llvm/lib/Support", |
| "//llvm/lib/Target:TargetsToBuild", |
| ] |
| if (clang_enable_arcmt) { |
| deps += [ "//clang/lib/ARCMigrate" ] |
| } |
| |
| if (host_os == "win") { |
| defines = [ "_CINDEX_LIB_" ] |
| } |
| |
| sources = [ |
| "ARCMigrate.cpp", |
| "BuildSystem.cpp", |
| "CIndex.cpp", |
| "CIndexCXX.cpp", |
| "CIndexCodeCompletion.cpp", |
| "CIndexDiagnostic.cpp", |
| "CIndexDiagnostic.h", |
| "CIndexHigh.cpp", |
| "CIndexInclusionStack.cpp", |
| "CIndexUSRs.cpp", |
| "CIndexer.cpp", |
| "CIndexer.h", |
| "CXComment.cpp", |
| "CXCompilationDatabase.cpp", |
| "CXCursor.cpp", |
| "CXCursor.h", |
| "CXIndexDataConsumer.cpp", |
| "CXLoadedDiagnostic.cpp", |
| "CXLoadedDiagnostic.h", |
| "CXSourceLocation.cpp", |
| "CXSourceLocation.h", |
| "CXStoredDiagnostic.cpp", |
| "CXString.cpp", |
| "CXString.h", |
| "CXTranslationUnit.h", |
| "CXType.cpp", |
| "CXType.h", |
| "Index_Internal.h", |
| "Indexing.cpp", |
| ] |
| if (host_os == "mac") { |
| ldflags = [ |
| "-Wl,-compatibility_version,1", |
| "-Wl,-current_version,$llvm_version", |
| |
| # See llvm_setup_rpath() in CMake. |
| "-Wl,-install_name,@rpath/libclang.dylib", |
| "-Wl,-rpath,@loader_path/../lib", |
| ] |
| } |
| |
| # FIXME: Use libclang.exports |
| } |