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" ] td_file = "Attr.td" } clang_tablegen("AttrSubMatchRulesList") { args = [ "-gen-clang-attr-subject-match-rule-list" ] td_file = "Attr.td" } clang_tablegen("AttrHasAttributeImpl") { args = [ "-gen-clang-attr-has-attribute-impl" ] td_file = "Attr.td" } # ARM CDE, MVE, and NEON. clang_tablegen("arm_neon") { args = [ "-gen-arm-neon-sema" ] } clang_tablegen("arm_fp16") { args = [ "-gen-arm-neon-sema" ] } clang_tablegen("arm_mve_builtins") { args = [ "-gen-arm-mve-builtin-def" ] td_file = "arm_mve.td" } clang_tablegen("arm_mve_builtin_cg") { args = [ "-gen-arm-mve-builtin-codegen" ] td_file = "arm_mve.td" } clang_tablegen("arm_mve_builtin_sema") { args = [ "-gen-arm-mve-builtin-sema" ] td_file = "arm_mve.td" } clang_tablegen("arm_mve_builtin_aliases") { args = [ "-gen-arm-mve-builtin-aliases" ] td_file = "arm_mve.td" } clang_tablegen("arm_sve_builtins") { args = [ "-gen-arm-sve-builtins" ] td_file = "arm_sve.td" } clang_tablegen("arm_sve_builtin_cg") { args = [ "-gen-arm-sve-builtin-codegen" ] td_file = "arm_sve.td" } clang_tablegen("arm_sve_typeflags") { args = [ "-gen-arm-sve-typeflags" ] td_file = "arm_sve.td" } clang_tablegen("arm_sve_sema_rangechecks") { args = [ "-gen-arm-sve-sema-rangechecks" ] td_file = "arm_sve.td" } clang_tablegen("arm_cde_builtins") { args = [ "-gen-arm-cde-builtin-def" ] td_file = "arm_cde.td" } clang_tablegen("arm_cde_builtin_cg") { args = [ "-gen-arm-cde-builtin-codegen" ] td_file = "arm_cde.td" } clang_tablegen("arm_cde_builtin_sema") { args = [ "-gen-arm-cde-builtin-sema" ] td_file = "arm_cde.td" } clang_tablegen("arm_cde_builtin_aliases") { args = [ "-gen-arm-cde-builtin-aliases" ] td_file = "arm_cde.td" } # RISC-V clang_tablegen("riscv_vector_builtins") { args = [ "-gen-riscv-vector-builtins" ] td_file = "riscv_vector.td" } clang_tablegen("riscv_vector_builtin_cg") { args = [ "-gen-riscv-vector-builtin-codegen" ] td_file = "riscv_vector.td" } clang_tablegen("riscv_vector_builtin_sema") { args = [ "-gen-riscv-vector-builtin-sema" ] td_file = "riscv_vector.td" }