1*67e74705SXin Lipackage { 2*67e74705SXin Li default_applicable_licenses: ["external_clang_license"], 3*67e74705SXin Li} 4*67e74705SXin Li 5*67e74705SXin Li// Added automatically by a large-scale-change that took the approach of 6*67e74705SXin Li// 'apply every license found to every target'. While this makes sure we respect 7*67e74705SXin Li// every license restriction, it may not be entirely correct. 8*67e74705SXin Li// 9*67e74705SXin Li// e.g. GPL in an MIT project might only apply to the contrib/ directory. 10*67e74705SXin Li// 11*67e74705SXin Li// Please consider splitting the single license below into multiple licenses, 12*67e74705SXin Li// taking care not to lose any license_kind information, and overriding the 13*67e74705SXin Li// default license using the 'licenses: [...]' property on targets as needed. 14*67e74705SXin Li// 15*67e74705SXin Li// For unused files, consider creating a 'fileGroup' with "//visibility:private" 16*67e74705SXin Li// to attach the license to, and including a comment whether the files may be 17*67e74705SXin Li// used in the current project. 18*67e74705SXin Li// 19*67e74705SXin Li// large-scale-change included anything that looked like it might be a license 20*67e74705SXin Li// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 21*67e74705SXin Li// 22*67e74705SXin Li// Please consider removing redundant or irrelevant files from 'license_text:'. 23*67e74705SXin Li// 24*67e74705SXin Li// large-scale-change filtered out the below license kinds as false-positives: 25*67e74705SXin Li// SPDX-license-identifier-GPL 26*67e74705SXin Li// See: http://go/android-license-faq 27*67e74705SXin Lilicense { 28*67e74705SXin Li name: "external_clang_license", 29*67e74705SXin Li visibility: [":__subpackages__"], 30*67e74705SXin Li license_kinds: [ 31*67e74705SXin Li "SPDX-license-identifier-Apache-2.0", 32*67e74705SXin Li "SPDX-license-identifier-BSD", 33*67e74705SXin Li "SPDX-license-identifier-MIT", 34*67e74705SXin Li "SPDX-license-identifier-NCSA", 35*67e74705SXin Li ], 36*67e74705SXin Li license_text: [ 37*67e74705SXin Li "LICENSE.TXT", 38*67e74705SXin Li "NOTICE", 39*67e74705SXin Li ], 40*67e74705SXin Li} 41*67e74705SXin Li 42*67e74705SXin Licc_defaults { 43*67e74705SXin Li name: "clang-defaults", 44*67e74705SXin Li defaults: [ 45*67e74705SXin Li "llvm-defaults", 46*67e74705SXin Li ], 47*67e74705SXin Li 48*67e74705SXin Li header_libs: ["clang-headers"], 49*67e74705SXin Li 50*67e74705SXin Li cflags: [ 51*67e74705SXin Li "-pedantic", 52*67e74705SXin Li "-Wno-cast-qual", 53*67e74705SXin Li "-Wno-long-long", 54*67e74705SXin Li "-Wno-unreachable-code-loop-increment", 55*67e74705SXin Li "-Wno-unused-lambda-capture", 56*67e74705SXin Li "-Wno-unused-private-field", 57*67e74705SXin Li ], 58*67e74705SXin Li 59*67e74705SXin Li include_dirs: [ 60*67e74705SXin Li "external/clang/include", 61*67e74705SXin Li "external/clang/lib/CodeGen", 62*67e74705SXin Li ], 63*67e74705SXin Li 64*67e74705SXin Li tidy_checks: [ 65*67e74705SXin Li "-google-runtime-member-string-references", 66*67e74705SXin Li ], 67*67e74705SXin Li 68*67e74705SXin Li target: { 69*67e74705SXin Li windows: { 70*67e74705SXin Li enabled: true, 71*67e74705SXin Li cflags: [ 72*67e74705SXin Li // This triggers an assertion on cross Windows builds. 73*67e74705SXin Li "-Wno-error=uninitialized", 74*67e74705SXin Li ], 75*67e74705SXin Li }, 76*67e74705SXin Li not_windows: { 77*67e74705SXin Li cflags: [ 78*67e74705SXin Li "-Wno-unused-lambda-capture", 79*67e74705SXin Li ], 80*67e74705SXin Li }, 81*67e74705SXin Li }, 82*67e74705SXin Li 83*67e74705SXin Li} 84*67e74705SXin Li 85*67e74705SXin Liclang_generated_headers = [ 86*67e74705SXin Li "clang-gen-options", 87*67e74705SXin Li "clang-gen-attributes", 88*67e74705SXin Li "clang-gen-checkers", 89*67e74705SXin Li "clang-gen-comment-commands", 90*67e74705SXin Li "clang-gen-comment-html-named-character-references", 91*67e74705SXin Li "clang-gen-html-tags", 92*67e74705SXin Li "clang-gen-comment-nodes", 93*67e74705SXin Li "clang-gen-diagnostics", 94*67e74705SXin Li "clang-gen-declnodes", 95*67e74705SXin Li "clang-gen-statnodes", 96*67e74705SXin Li "clang-gen-arm-neon", 97*67e74705SXin Li "clang-version", 98*67e74705SXin Li "llvm-gen-attributes", 99*67e74705SXin Li "llvm-gen-intrinsics", 100*67e74705SXin Li] 101*67e74705SXin Li 102*67e74705SXin Licc_library_headers { 103*67e74705SXin Li name: "clang-headers", 104*67e74705SXin Li vendor_available: true, 105*67e74705SXin Li product_available: true, 106*67e74705SXin Li host_supported: true, 107*67e74705SXin Li // TODO(b/153609531): remove when no longer needed. 108*67e74705SXin Li native_bridge_supported: true, 109*67e74705SXin Li generated_headers: clang_generated_headers, 110*67e74705SXin Li export_include_dirs: ["include"], 111*67e74705SXin Li export_generated_headers: clang_generated_headers, 112*67e74705SXin Li target: { 113*67e74705SXin Li windows: { 114*67e74705SXin Li enabled: true, 115*67e74705SXin Li }, 116*67e74705SXin Li }, 117*67e74705SXin Li} 118*67e74705SXin Li 119*67e74705SXin Lillvm_tblgen { 120*67e74705SXin Li name: "clang-gen-options", 121*67e74705SXin Li in: "include/clang/Driver/Options.td", 122*67e74705SXin Li outs: ["clang/Driver/Options.inc"], 123*67e74705SXin Li} 124*67e74705SXin Li 125*67e74705SXin Liclang_tblgen { 126*67e74705SXin Li name: "clang-gen-attributes", 127*67e74705SXin Li in: "include/clang/Basic/Attr.td", 128*67e74705SXin Li outs: [ 129*67e74705SXin Li "clang/AST/AttrDump.inc", 130*67e74705SXin Li "clang/AST/AttrImpl.inc", 131*67e74705SXin Li "clang/AST/Attrs.inc", 132*67e74705SXin Li "clang/AST/AttrVisitor.inc", 133*67e74705SXin Li "clang/Basic/AttrHasAttributeImpl.inc", 134*67e74705SXin Li "clang/Basic/AttrList.inc", 135*67e74705SXin Li "clang/Parse/AttrParserStringSwitches.inc", 136*67e74705SXin Li "clang/Sema/AttrParsedAttrImpl.inc", 137*67e74705SXin Li "clang/Sema/AttrParsedAttrKinds.inc", 138*67e74705SXin Li "clang/Sema/AttrParsedAttrList.inc", 139*67e74705SXin Li "clang/Sema/AttrSpellingListIndex.inc", 140*67e74705SXin Li "clang/Sema/AttrTemplateInstantiate.inc", 141*67e74705SXin Li "clang/Serialization/AttrPCHRead.inc", 142*67e74705SXin Li "clang/Serialization/AttrPCHWrite.inc", 143*67e74705SXin Li ], 144*67e74705SXin Li} 145*67e74705SXin Li 146*67e74705SXin Liclang_tblgen { 147*67e74705SXin Li name: "clang-gen-checkers", 148*67e74705SXin Li in: "include/clang/StaticAnalyzer/Checkers/Checkers.td", 149*67e74705SXin Li outs: ["clang/StaticAnalyzer/Checkers/Checkers.inc"], 150*67e74705SXin Li} 151*67e74705SXin Li 152*67e74705SXin Liclang_tblgen { 153*67e74705SXin Li name: "clang-gen-comment-commands", 154*67e74705SXin Li in: "include/clang/AST/CommentCommands.td", 155*67e74705SXin Li outs: [ 156*67e74705SXin Li "clang/AST/CommentCommandInfo.inc", 157*67e74705SXin Li "clang/AST/CommentCommandList.inc", 158*67e74705SXin Li ], 159*67e74705SXin Li} 160*67e74705SXin Li 161*67e74705SXin Liclang_tblgen { 162*67e74705SXin Li name: "clang-gen-comment-html-named-character-references", 163*67e74705SXin Li in: "include/clang/AST/CommentHTMLNamedCharacterReferences.td", 164*67e74705SXin Li outs: ["clang/AST/CommentHTMLNamedCharacterReferences.inc"], 165*67e74705SXin Li} 166*67e74705SXin Li 167*67e74705SXin Liclang_tblgen { 168*67e74705SXin Li name: "clang-gen-html-tags", 169*67e74705SXin Li in: "include/clang/AST/CommentHTMLTags.td", 170*67e74705SXin Li outs: [ 171*67e74705SXin Li "clang/AST/CommentHTMLTagsProperties.inc", 172*67e74705SXin Li "clang/AST/CommentHTMLTags.inc", 173*67e74705SXin Li ], 174*67e74705SXin Li} 175*67e74705SXin Li 176*67e74705SXin Liclang_tblgen { 177*67e74705SXin Li name: "clang-gen-comment-nodes", 178*67e74705SXin Li in: "include/clang/Basic/CommentNodes.td", 179*67e74705SXin Li outs: ["clang/AST/CommentNodes.inc"], 180*67e74705SXin Li} 181*67e74705SXin Li 182*67e74705SXin Liclang_tblgen { 183*67e74705SXin Li name: "clang-gen-diagnostics", 184*67e74705SXin Li in: "include/clang/Basic/Diagnostic.td", 185*67e74705SXin Li outs: [ 186*67e74705SXin Li "clang/Basic/DiagnosticAnalysisKinds.inc", 187*67e74705SXin Li "clang/Basic/DiagnosticASTKinds.inc", 188*67e74705SXin Li "clang/Basic/DiagnosticCommentKinds.inc", 189*67e74705SXin Li "clang/Basic/DiagnosticCommonKinds.inc", 190*67e74705SXin Li "clang/Basic/DiagnosticDriverKinds.inc", 191*67e74705SXin Li "clang/Basic/DiagnosticFrontendKinds.inc", 192*67e74705SXin Li "clang/Basic/DiagnosticLexKinds.inc", 193*67e74705SXin Li "clang/Basic/DiagnosticParseKinds.inc", 194*67e74705SXin Li "clang/Basic/DiagnosticSemaKinds.inc", 195*67e74705SXin Li "clang/Basic/DiagnosticSerializationKinds.inc", 196*67e74705SXin Li "clang/Basic/DiagnosticGroups.inc", 197*67e74705SXin Li "clang/Basic/DiagnosticIndexName.inc", 198*67e74705SXin Li ], 199*67e74705SXin Li} 200*67e74705SXin Li 201*67e74705SXin Liclang_tblgen { 202*67e74705SXin Li name: "clang-gen-declnodes", 203*67e74705SXin Li in: "include/clang/Basic/DeclNodes.td", 204*67e74705SXin Li outs: ["clang/AST/DeclNodes.inc"], 205*67e74705SXin Li} 206*67e74705SXin Li 207*67e74705SXin Liclang_tblgen { 208*67e74705SXin Li name: "clang-gen-statnodes", 209*67e74705SXin Li in: "include/clang/Basic/StmtNodes.td", 210*67e74705SXin Li outs: ["clang/AST/StmtNodes.inc"], 211*67e74705SXin Li} 212*67e74705SXin Li 213*67e74705SXin Liclang_tblgen { 214*67e74705SXin Li name: "clang-gen-arm-neon", 215*67e74705SXin Li in: "include/clang/Basic/arm_neon.td", 216*67e74705SXin Li outs: [ 217*67e74705SXin Li "clang/Basic/arm_neon.inc", 218*67e74705SXin Li "clang/Basic/arm_neon.h", 219*67e74705SXin Li ], 220*67e74705SXin Li} 221*67e74705SXin Li 222*67e74705SXin Ligenrule { 223*67e74705SXin Li name: "clang-version", 224*67e74705SXin Li cmd: "$(location) $(in) > $(out)", 225*67e74705SXin Li tool_files: [ 226*67e74705SXin Li "clang-version-inc.py", 227*67e74705SXin Li "version.py", 228*67e74705SXin Li ], 229*67e74705SXin Li srcs: [ 230*67e74705SXin Li "include/clang/Basic/Version.inc.in", 231*67e74705SXin Li ], 232*67e74705SXin Li out: ["clang/Basic/Version.inc"], 233*67e74705SXin Li} 234*67e74705SXin Li 235*67e74705SXin Licc_library_shared { 236*67e74705SXin Li name: "libclang_android", 237*67e74705SXin Li defaults: [ 238*67e74705SXin Li "clang-defaults", 239*67e74705SXin Li "force_build_llvm_components", 240*67e74705SXin Li ], 241*67e74705SXin Li 242*67e74705SXin Li host_supported: true, 243*67e74705SXin Li 244*67e74705SXin Li whole_static_libs: [ 245*67e74705SXin Li "libclangAnalysis", 246*67e74705SXin Li "libclangAST", 247*67e74705SXin Li "libclangASTMatchers", 248*67e74705SXin Li "libclangBasic", 249*67e74705SXin Li "libclangCodeGen", 250*67e74705SXin Li "libclangDriver", 251*67e74705SXin Li "libclangEdit", 252*67e74705SXin Li "libclangFormat", 253*67e74705SXin Li "libclangFrontend", 254*67e74705SXin Li "libclangIndex", 255*67e74705SXin Li "libclangLex", 256*67e74705SXin Li "libclangLibclang", 257*67e74705SXin Li "libclangParse", 258*67e74705SXin Li "libclangRewrite", 259*67e74705SXin Li "libclangRewriteFrontend", 260*67e74705SXin Li "libclangSema", 261*67e74705SXin Li "libclangSerialization", 262*67e74705SXin Li "libclangTooling", 263*67e74705SXin Li "libclangToolingCore", 264*67e74705SXin Li ], 265*67e74705SXin Li 266*67e74705SXin Li export_shared_lib_headers: ["libLLVM_android"], 267*67e74705SXin Li shared_libs: ["libLLVM_android"], 268*67e74705SXin Li export_header_lib_headers: ["clang-headers"], 269*67e74705SXin Li 270*67e74705SXin Li target: { 271*67e74705SXin Li windows: { 272*67e74705SXin Li host_ldlibs: [ 273*67e74705SXin Li "-limagehlp", 274*67e74705SXin Li "-lpsapi", 275*67e74705SXin Li "-lversion", 276*67e74705SXin Li ], 277*67e74705SXin Li }, 278*67e74705SXin Li not_windows: { 279*67e74705SXin Li shared_libs: ["libc++"], 280*67e74705SXin Li }, 281*67e74705SXin Li }, 282*67e74705SXin Li 283*67e74705SXin Li product_variables: { 284*67e74705SXin Li unbundled_build: { 285*67e74705SXin Li // Don't build the library in unbundled branches. 286*67e74705SXin Li enabled: false, 287*67e74705SXin Li }, 288*67e74705SXin Li }, 289*67e74705SXin Li} 290*67e74705SXin Li 291*67e74705SXin Ligenrule { 292*67e74705SXin Li name: "renderscript-clang-include", 293*67e74705SXin Li visibility: ["//development/build"], 294*67e74705SXin Li tools: ["soong_zip"], 295*67e74705SXin Li cmd: "$(location soong_zip) -o $(out) -P renderscript/clang-include " + 296*67e74705SXin Li "-C $$(dirname $(location LICENSE.TXT))/lib/Headers -D $$(dirname $(location LICENSE.TXT))/lib/Headers " + 297*67e74705SXin Li "-C $$(dirname $(location LICENSE.TXT)) -f $(location LICENSE.TXT)", 298*67e74705SXin Li srcs: [ 299*67e74705SXin Li "lib/Headers/**/*", 300*67e74705SXin Li "LICENSE.TXT", 301*67e74705SXin Li ], 302*67e74705SXin Li out: ["clang-include.zip"], 303*67e74705SXin Li} 304