| import("//clang/utils/TableGen/clang_tablegen.gni") |
| import("//llvm/utils/gn/build/write_cmake_config.gni") |
| import("//llvm/version.gni") |
| |
| # Version header. |
| |
| write_cmake_config("version") { |
| input = "Version.inc.in" |
| output = "$target_gen_dir/Version.inc" |
| values = [ |
| "CLANG_VERSION=$llvm_version", |
| "CLANG_VERSION_MAJOR=$llvm_version_major", |
| "CLANG_VERSION_MINOR=$llvm_version_minor", |
| "CLANG_VERSION_PATCHLEVEL=$llvm_version_patch", |
| ] |
| } |
| |
| # Diagnostics. |
| |
| diag_groups = [ |
| "Analysis", |
| "AST", |
| "Comment", |
| "Common", |
| "CrossTU", |
| "Driver", |
| "Frontend", |
| "Lex", |
| "Parse", |
| "Refactoring", |
| "Sema", |
| "Serialization", |
| ] |
| foreach(diag_group, diag_groups) { |
| clang_tablegen("Diagnostic${diag_group}Kinds") { |
| args = [ |
| "-gen-clang-diags-defs", |
| "-clang-component=${diag_group}", |
| ] |
| td_file = "Diagnostic.td" |
| } |
| } |
| group("diags_tablegen") { |
| # DiagnosticGroups and DiagnosticIndexName are intentionally not part of this |
| # group. Much of clang depends on the DiagKinds.inc files transitively, |
| # but almost nothing needs DiagnosticGroups.inc or DiagnosticIndexName.inc. |
| public_deps = [] |
| foreach(diag_group, diag_groups) { |
| public_deps += [ ":Diagnostic${diag_group}Kinds" ] |
| } |
| } |
| |
| clang_tablegen("DiagnosticGroups") { |
| args = [ "-gen-clang-diag-groups" ] |
| td_file = "Diagnostic.td" |
| } |
| |
| clang_tablegen("DiagnosticIndexName") { |
| args = [ "-gen-clang-diags-index-name" ] |
| td_file = "Diagnostic.td" |
| } |
| |
| # Attributes |
| |
| clang_tablegen("AttrList") { |
| args = [ |
| "-gen-clang-attr-list", |
| "-I", |
| rebase_path("../..", root_out_dir), |
| ] |
| td_file = "Attr.td" |
| } |
| |
| clang_tablegen("AttrSubMatchRulesList") { |
| args = [ |
| "-gen-clang-attr-subject-match-rule-list", |
| "-I", |
| rebase_path("../..", root_out_dir), |
| ] |
| td_file = "Attr.td" |
| } |
| |
| clang_tablegen("AttrHasAttributeImpl") { |
| args = [ |
| "-gen-clang-attr-has-attribute-impl", |
| "-I", |
| rebase_path("../..", root_out_dir), |
| ] |
| td_file = "Attr.td" |
| } |
| |
| # Misc |
| |
| clang_tablegen("arm_neon") { |
| args = [ "-gen-arm-neon-sema" ] |
| } |
| |
| clang_tablegen("arm_fp16") { |
| args = [ "-gen-arm-neon-sema" ] |
| } |