Home | History | Annotate | Download | only in clang
      1 cc_defaults {
      2     name: "clang-defaults",
      3     defaults: [
      4         "llvm-defaults",
      5     ],
      6 
      7     header_libs: ["clang-headers"],
      8 
      9     cflags: [
     10         "-pedantic",
     11         "-Wno-cast-qual",
     12         "-Wno-long-long",
     13         "-Wno-unused-private-field",
     14         "-Wno-unused-lambda-capture",
     15     ],
     16 
     17     include_dirs: [
     18         "external/clang/include",
     19         "external/clang/lib/CodeGen",
     20     ],
     21 
     22     tidy_checks: [
     23         "-google-runtime-member-string-references",
     24     ],
     25 
     26     target: {
     27         windows: {
     28             enabled: true,
     29             cflags: [
     30                 // This triggers an assertion on cross Windows builds.
     31                 "-Wno-error=uninitialized",
     32             ],
     33         },
     34         not_windows: {
     35             cflags: [
     36                 "-Wno-unused-lambda-capture",
     37             ],
     38         },
     39     },
     40 
     41 }
     42 
     43 clang_generated_headers = [
     44     "clang-gen-options",
     45     "clang-gen-attributes",
     46     "clang-gen-checkers",
     47     "clang-gen-comment-commands",
     48     "clang-gen-comment-html-named-character-references",
     49     "clang-gen-html-tags",
     50     "clang-gen-comment-nodes",
     51     "clang-gen-diagnostics",
     52     "clang-gen-declnodes",
     53     "clang-gen-statnodes",
     54     "clang-gen-arm-neon",
     55     "clang-version",
     56     "llvm-gen-attributes",
     57     "llvm-gen-intrinsics",
     58 ]
     59 
     60 cc_library_headers {
     61     name: "clang-headers",
     62     vendor_available: true,
     63     host_supported: true,
     64     generated_headers: clang_generated_headers,
     65     export_include_dirs: ["include"],
     66     export_generated_headers: clang_generated_headers,
     67     target: {
     68         windows: {
     69             enabled: true,
     70         },
     71     },
     72 }
     73 
     74 llvm_tblgen {
     75     name: "clang-gen-options",
     76     in: "include/clang/Driver/Options.td",
     77     outs: ["clang/Driver/Options.inc"],
     78 }
     79 
     80 clang_tblgen {
     81     name: "clang-gen-attributes",
     82     in: "include/clang/Basic/Attr.td",
     83     outs: [
     84         "clang/AST/AttrDump.inc",
     85         "clang/AST/AttrImpl.inc",
     86         "clang/AST/Attrs.inc",
     87         "clang/AST/AttrVisitor.inc",
     88         "clang/Basic/AttrHasAttributeImpl.inc",
     89         "clang/Basic/AttrList.inc",
     90         "clang/Parse/AttrParserStringSwitches.inc",
     91         "clang/Sema/AttrParsedAttrImpl.inc",
     92         "clang/Sema/AttrParsedAttrKinds.inc",
     93         "clang/Sema/AttrParsedAttrList.inc",
     94         "clang/Sema/AttrSpellingListIndex.inc",
     95         "clang/Sema/AttrTemplateInstantiate.inc",
     96         "clang/Serialization/AttrPCHRead.inc",
     97         "clang/Serialization/AttrPCHWrite.inc",
     98     ],
     99 }
    100 
    101 clang_tblgen {
    102     name: "clang-gen-checkers",
    103     in: "include/clang/StaticAnalyzer/Checkers/Checkers.td",
    104     outs: ["clang/StaticAnalyzer/Checkers/Checkers.inc"],
    105 }
    106 
    107 clang_tblgen {
    108     name: "clang-gen-comment-commands",
    109     in: "include/clang/AST/CommentCommands.td",
    110     outs: [
    111         "clang/AST/CommentCommandInfo.inc",
    112         "clang/AST/CommentCommandList.inc",
    113     ],
    114 }
    115 
    116 clang_tblgen {
    117     name: "clang-gen-comment-html-named-character-references",
    118     in: "include/clang/AST/CommentHTMLNamedCharacterReferences.td",
    119     outs: ["clang/AST/CommentHTMLNamedCharacterReferences.inc"],
    120 }
    121 
    122 clang_tblgen {
    123     name: "clang-gen-html-tags",
    124     in: "include/clang/AST/CommentHTMLTags.td",
    125     outs: [
    126         "clang/AST/CommentHTMLTagsProperties.inc",
    127         "clang/AST/CommentHTMLTags.inc",
    128     ],
    129 }
    130 
    131 clang_tblgen {
    132     name: "clang-gen-comment-nodes",
    133     in: "include/clang/Basic/CommentNodes.td",
    134     outs: ["clang/AST/CommentNodes.inc"],
    135 }
    136 
    137 clang_tblgen {
    138     name: "clang-gen-diagnostics",
    139     in: "include/clang/Basic/Diagnostic.td",
    140     outs: [
    141         "clang/Basic/DiagnosticAnalysisKinds.inc",
    142         "clang/Basic/DiagnosticASTKinds.inc",
    143         "clang/Basic/DiagnosticCommentKinds.inc",
    144         "clang/Basic/DiagnosticCommonKinds.inc",
    145         "clang/Basic/DiagnosticDriverKinds.inc",
    146         "clang/Basic/DiagnosticFrontendKinds.inc",
    147         "clang/Basic/DiagnosticLexKinds.inc",
    148         "clang/Basic/DiagnosticParseKinds.inc",
    149         "clang/Basic/DiagnosticSemaKinds.inc",
    150         "clang/Basic/DiagnosticSerializationKinds.inc",
    151         "clang/Basic/DiagnosticGroups.inc",
    152         "clang/Basic/DiagnosticIndexName.inc",
    153     ],
    154 }
    155 
    156 clang_tblgen {
    157     name: "clang-gen-declnodes",
    158     in: "include/clang/Basic/DeclNodes.td",
    159     outs: ["clang/AST/DeclNodes.inc"],
    160 }
    161 
    162 clang_tblgen {
    163     name: "clang-gen-statnodes",
    164     in: "include/clang/Basic/StmtNodes.td",
    165     outs: ["clang/AST/StmtNodes.inc"],
    166 }
    167 
    168 clang_tblgen {
    169     name: "clang-gen-arm-neon",
    170     in: "include/clang/Basic/arm_neon.td",
    171     outs: [
    172         "clang/Basic/arm_neon.inc",
    173         "clang/Basic/arm_neon.h",
    174     ],
    175 }
    176 
    177 genrule {
    178     name: "clang-version",
    179     cmd: "$(location) $(in) > $(out)",
    180     tool_files: [
    181         "clang-version-inc.py",
    182         "version.py",
    183     ],
    184     srcs: [
    185         "include/clang/Basic/Version.inc.in",
    186     ],
    187     out: ["clang/Basic/Version.inc"],
    188 }
    189 
    190 cc_library_shared {
    191     name: "libclang_android",
    192     defaults: [
    193         "clang-defaults",
    194         "force_build_llvm_components",
    195     ],
    196 
    197     host_supported: true,
    198 
    199     whole_static_libs: [
    200         "libclangAnalysis",
    201         "libclangAST",
    202         "libclangASTMatchers",
    203         "libclangBasic",
    204         "libclangCodeGen",
    205         "libclangDriver",
    206         "libclangEdit",
    207         "libclangFormat",
    208         "libclangFrontend",
    209         "libclangIndex",
    210         "libclangLex",
    211         "libclangLibclang",
    212         "libclangParse",
    213         "libclangRewrite",
    214         "libclangRewriteFrontend",
    215         "libclangSema",
    216         "libclangSerialization",
    217         "libclangTooling",
    218         "libclangToolingCore",
    219     ],
    220 
    221     export_shared_lib_headers: ["libLLVM_android"],
    222     shared_libs: ["libLLVM_android"],
    223     export_header_lib_headers: ["clang-headers"],
    224 
    225     target: {
    226         windows: {
    227             host_ldlibs: [
    228                 "-limagehlp",
    229                 "-lpsapi",
    230                 "-lversion",
    231             ],
    232         },
    233         not_windows: {
    234             shared_libs: ["libc++"],
    235         },
    236     },
    237 
    238     product_variables: {
    239         unbundled_build: {
    240             // Don't build the library in unbundled branches.
    241             enabled: false,
    242         },
    243     },
    244 }
    245 
    246 subdirs = [
    247     "lib",
    248     "soong",
    249     "utils/TableGen",
    250     "tools/clang-check",
    251     "tools/clang-format",
    252     "tools/driver",
    253     "tools/libclang",
    254 ]
    255