1ba9d5cf9SNico Weberimport("//clang/lib/ARCMigrate/enable.gni") 2fc969613SNico Weberimport("//llvm/utils/gn/build/symbol_exports.gni") 3ba9d5cf9SNico Weberimport("//llvm/version.gni") 4ba9d5cf9SNico Weber 5ba9d5cf9SNico Weber# This build file is just enough to get check-clang to pass, it's missing 6ba9d5cf9SNico Weber# several things from the CMake build: 7c01e15edSNico Weber# - a build target copying the Python bindings 8ba9d5cf9SNico Weber# - the GN build doesn't have LIBCLANG_BUILD_STATIC 9ba9d5cf9SNico Weber 1058d630fbSNico Weberaction("linker_script_to_exports") { 1158d630fbSNico Weber script = "linker-script-to-export-list.py" 1258d630fbSNico Weber inputs = [ "libclang.map" ] 1358d630fbSNico Weber outputs = [ "$target_gen_dir/libclang.exports" ] 1458d630fbSNico Weber args = [ 1558d630fbSNico Weber rebase_path(inputs[0], root_build_dir), 1658d630fbSNico Weber rebase_path(outputs[0], root_build_dir), 1758d630fbSNico Weber ] 1858d630fbSNico Weber} 1958d630fbSNico Weber 20fc969613SNico Webersymbol_exports("exports") { 2158d630fbSNico Weber deps = [ ":linker_script_to_exports" ] 2258d630fbSNico Weber exports_file = "$target_gen_dir/libclang.exports" 23e3029335SNico Weber} 24fc969613SNico Weber 25b2e77cd0SPeter Collingbourneshared_library("libclang") { 26ba9d5cf9SNico Weber configs += [ "//llvm/utils/gn/build:clang_code" ] 27ba9d5cf9SNico Weber deps = [ 28ba9d5cf9SNico Weber "//clang/include/clang/Config", 29ba9d5cf9SNico Weber "//clang/lib/AST", 30ba9d5cf9SNico Weber "//clang/lib/Basic", 31ae2e60a8SNico Weber "//clang/lib/ExtractAPI", 32ba9d5cf9SNico Weber "//clang/lib/Frontend", 33ba9d5cf9SNico Weber "//clang/lib/Headers", 34ba9d5cf9SNico Weber "//clang/lib/Index", 35ba9d5cf9SNico Weber "//clang/lib/Lex", 36ba9d5cf9SNico Weber "//clang/lib/Sema", 37ba9d5cf9SNico Weber "//clang/lib/Tooling", 38ba9d5cf9SNico Weber "//llvm/include/llvm/Config:llvm-config", 39ba9d5cf9SNico Weber "//llvm/lib/IR", 40ba9d5cf9SNico Weber "//llvm/lib/Support", 41ba9d5cf9SNico Weber "//llvm/lib/Target:TargetsToBuild", 42*2aa998d2SNico Weber "//llvm/lib/TargetParser", 43ba9d5cf9SNico Weber ] 4458d630fbSNico Weber if (current_os == "win" || current_os == "mac") { 4558d630fbSNico Weber deps += [ ":exports" ] 4658d630fbSNico Weber } else { 4758d630fbSNico Weber inputs = [ "libclang.map" ] 4858d630fbSNico Weber ldflags = 4958d630fbSNico Weber [ "-Wl,--version-script," + rebase_path(inputs[0], root_build_dir) ] 5058d630fbSNico Weber } 51ba9d5cf9SNico Weber if (clang_enable_arcmt) { 52ba9d5cf9SNico Weber deps += [ "//clang/lib/ARCMigrate" ] 53ba9d5cf9SNico Weber } 54ba9d5cf9SNico Weber 552859bbb3SNico Weber defines = [] 562859bbb3SNico Weber 57ba9d5cf9SNico Weber if (host_os == "win") { 589968331aSNico Weber defines += [ "_CINDEX_LIB_" ] 59ba9d5cf9SNico Weber } 60ba9d5cf9SNico Weber 61ba9d5cf9SNico Weber sources = [ 62584e7486SNico Weber "../../include/clang-c/Index.h", 63ba9d5cf9SNico Weber "ARCMigrate.cpp", 64ba9d5cf9SNico Weber "BuildSystem.cpp", 65ba9d5cf9SNico Weber "CIndex.cpp", 66ba9d5cf9SNico Weber "CIndexCXX.cpp", 67ba9d5cf9SNico Weber "CIndexCodeCompletion.cpp", 68ba9d5cf9SNico Weber "CIndexDiagnostic.cpp", 69ba9d5cf9SNico Weber "CIndexDiagnostic.h", 70ba9d5cf9SNico Weber "CIndexHigh.cpp", 71ba9d5cf9SNico Weber "CIndexInclusionStack.cpp", 72ba9d5cf9SNico Weber "CIndexUSRs.cpp", 73ba9d5cf9SNico Weber "CIndexer.cpp", 74ba9d5cf9SNico Weber "CIndexer.h", 75ba9d5cf9SNico Weber "CXComment.cpp", 76ba9d5cf9SNico Weber "CXCompilationDatabase.cpp", 77ba9d5cf9SNico Weber "CXCursor.cpp", 78ba9d5cf9SNico Weber "CXCursor.h", 79ae2e60a8SNico Weber "CXExtractAPI.cpp", 80ba9d5cf9SNico Weber "CXIndexDataConsumer.cpp", 81ba9d5cf9SNico Weber "CXLoadedDiagnostic.cpp", 82ba9d5cf9SNico Weber "CXLoadedDiagnostic.h", 83ba9d5cf9SNico Weber "CXSourceLocation.cpp", 84ba9d5cf9SNico Weber "CXSourceLocation.h", 85ba9d5cf9SNico Weber "CXStoredDiagnostic.cpp", 86ba9d5cf9SNico Weber "CXString.cpp", 87ba9d5cf9SNico Weber "CXString.h", 88ba9d5cf9SNico Weber "CXTranslationUnit.h", 89ba9d5cf9SNico Weber "CXType.cpp", 90ba9d5cf9SNico Weber "CXType.h", 91b6f4a7a1SNico Weber "FatalErrorHandler.cpp", 92ba9d5cf9SNico Weber "Index_Internal.h", 93ba9d5cf9SNico Weber "Indexing.cpp", 94b07cbccfSLLVM GN Syncbot "Rewrite.cpp", 95ba9d5cf9SNico Weber ] 96ba9d5cf9SNico Weber if (host_os == "mac") { 97ba9d5cf9SNico Weber ldflags = [ 98ba9d5cf9SNico Weber "-Wl,-compatibility_version,1", 99ba9d5cf9SNico Weber "-Wl,-current_version,$llvm_version", 100c01e15edSNico Weber 101c01e15edSNico Weber # See llvm_setup_rpath() in CMake. 102ba9d5cf9SNico Weber "-Wl,-install_name,@rpath/libclang.dylib", 103c01e15edSNico Weber "-Wl,-rpath,@loader_path/../lib", 104ba9d5cf9SNico Weber ] 105ba9d5cf9SNico Weber } 106ba9d5cf9SNico Weber} 107