import("//clang/lib/ARCMigrate/enable.gni") import("//clang/tools/libclang/include_clang_tools_extra.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: # - 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" ] } defines = [] # FIXME: Once the GN build has a way to select which bits to build, # only include this dependency if clang-tools-extra is part of the build. if (libclang_include_clang_tools_extra) { defines += [ "CLANG_TOOL_EXTRA_BUILD" ] deps += [ "//clang-tools-extra/clang-include-fixer/plugin", "//clang-tools-extra/clang-tidy/plugin", ] } if (host_os == "win") { defines += [ "_CINDEX_LIB_" ] } sources = [ "../../include/clang-c/Index.h", "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", "FatalErrorHandler.cpp", "Index_Internal.h", "Indexing.cpp", "Rewrite.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 }