diff --git a/utils/gn/secondary/clang/lib/Tooling/BUILD.gn b/utils/gn/secondary/clang/lib/Tooling/BUILD.gn index 5bc4241e474..3e9cf28aa34 100644 --- a/utils/gn/secondary/clang/lib/Tooling/BUILD.gn +++ b/utils/gn/secondary/clang/lib/Tooling/BUILD.gn @@ -1,7 +1,19 @@ +# FIXME: The cmake build runs DumpTool:clang-ast-dump to generate a json +# file and feeds it into this step in non-debug builds or if an option is set. +action("node_introspection_inc") { + script = "DumpTool/generate_cxx_src_locs.py" + outputs = [ "$target_gen_dir/clang/Tooling/NodeIntrospection.inc" ] + args = [ + "--empty-implementation=1", + "--output-file=" + rebase_path(outputs[0], root_build_dir), + ] +} + static_library("Tooling") { output_name = "clangTooling" configs += [ "//llvm/utils/gn/build:clang_code" ] deps = [ + ":node_introspection_inc", "//clang/include/clang/Driver:Options", "//clang/lib/AST", "//clang/lib/ASTMatchers", @@ -13,6 +25,7 @@ static_library("Tooling") { "//clang/lib/Rewrite", "//clang/lib/Tooling/Core", ] + include_dirs = [ target_gen_dir ] sources = [ "AllTUsExecution.cpp", "ArgumentsAdjusters.cpp", @@ -25,6 +38,7 @@ static_library("Tooling") { "GuessTargetAndModeCompilationDatabase.cpp", "InterpolatingCompilationDatabase.cpp", "JSONCompilationDatabase.cpp", + "NodeIntrospection.cpp", "Refactoring.cpp", "RefactoringCallbacks.cpp", "StandaloneExecution.cpp", diff --git a/utils/gn/secondary/clang/lib/Tooling/DumpTool/BUILD.gn b/utils/gn/secondary/clang/lib/Tooling/DumpTool/BUILD.gn new file mode 100644 index 00000000000..7d9d2113d45 --- /dev/null +++ b/utils/gn/secondary/clang/lib/Tooling/DumpTool/BUILD.gn @@ -0,0 +1,20 @@ +executable("clang-ast-dump") { + configs += [ "//llvm/utils/gn/build:clang_code" ] + deps = [ + "//clang/lib/AST", + "//clang/lib/ASTMatchers", + "//clang/lib/Basic", + "//clang/lib/Driver", + "//clang/lib/Format", + "//clang/lib/Frontend", + "//clang/lib/Lex", + "//clang/lib/Rewrite", + "//clang/lib/Serialization", + "//clang/lib/Tooling/Core", + ] + + sources = [ + "ASTSrcLocProcessor.cpp", + "ClangSrcLocDump.cpp", + ] +} diff --git a/utils/gn/secondary/clang/unittests/BUILD.gn b/utils/gn/secondary/clang/unittests/BUILD.gn index 23f5d2dfac8..1b8904c1502 100644 --- a/utils/gn/secondary/clang/unittests/BUILD.gn +++ b/utils/gn/secondary/clang/unittests/BUILD.gn @@ -12,6 +12,7 @@ group("unittests") { "Format:FormatTests", "Frontend:FrontendTests", "Index:IndexTests", + "Introspection:IntrospectionTests", "Lex:LexTests", "Rename:ClangRenameTests", "Rewrite:RewriteTests", diff --git a/utils/gn/secondary/clang/unittests/Introspection/BUILD.gn b/utils/gn/secondary/clang/unittests/Introspection/BUILD.gn new file mode 100644 index 00000000000..d42138c68c0 --- /dev/null +++ b/utils/gn/secondary/clang/unittests/Introspection/BUILD.gn @@ -0,0 +1,20 @@ +import("//llvm/utils/unittest/unittest.gni") + +unittest("IntrospectionTests") { + configs += [ "//llvm/utils/gn/build:clang_code" ] + deps = [ + "//clang/lib/AST", + "//clang/lib/ASTMatchers", + "//clang/lib/Basic", + "//clang/lib/Frontend", + "//clang/lib/Serialization", + "//clang/lib/Tooling", + "//llvm/lib/Support", + "//llvm/lib/Testing/Support", + ] + + + defines = [ "SKIP_INTROSPECTION_GENERATION" ] + + sources = [ "IntrospectionTest.cpp" ] +}