package { default_applicable_licenses: ["external_clang_license"], } // Added automatically by a large-scale-change that took the approach of // 'apply every license found to every target'. While this makes sure we respect // every license restriction, it may not be entirely correct. // // e.g. GPL in an MIT project might only apply to the contrib/ directory. // // Please consider splitting the single license below into multiple licenses, // taking care not to lose any license_kind information, and overriding the // default license using the 'licenses: [...]' property on targets as needed. // // For unused files, consider creating a 'fileGroup' with "//visibility:private" // to attach the license to, and including a comment whether the files may be // used in the current project. // // large-scale-change included anything that looked like it might be a license // text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. // // Please consider removing redundant or irrelevant files from 'license_text:'. // // large-scale-change filtered out the below license kinds as false-positives: // SPDX-license-identifier-GPL // See: http://go/android-license-faq license { name: "external_clang_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", "SPDX-license-identifier-BSD", "SPDX-license-identifier-MIT", "SPDX-license-identifier-NCSA", ], license_text: [ "LICENSE.TXT", "NOTICE", ], } cc_defaults { name: "clang-defaults", defaults: [ "llvm-defaults", ], header_libs: ["clang-headers"], cflags: [ "-pedantic", "-Wno-cast-qual", "-Wno-long-long", "-Wno-unreachable-code-loop-increment", "-Wno-unused-lambda-capture", "-Wno-unused-private-field", ], include_dirs: [ "external/clang/include", "external/clang/lib/CodeGen", ], tidy_checks: [ "-google-runtime-member-string-references", ], target: { windows: { enabled: true, cflags: [ // This triggers an assertion on cross Windows builds. "-Wno-error=uninitialized", ], }, not_windows: { cflags: [ "-Wno-unused-lambda-capture", ], }, }, } clang_generated_headers = [ "clang-gen-options", "clang-gen-attributes", "clang-gen-checkers", "clang-gen-comment-commands", "clang-gen-comment-html-named-character-references", "clang-gen-html-tags", "clang-gen-comment-nodes", "clang-gen-diagnostics", "clang-gen-declnodes", "clang-gen-statnodes", "clang-gen-arm-neon", "clang-version", "llvm-gen-attributes", "llvm-gen-intrinsics", ] cc_library_headers { name: "clang-headers", vendor_available: true, product_available: true, host_supported: true, // TODO(b/153609531): remove when no longer needed. native_bridge_supported: true, generated_headers: clang_generated_headers, export_include_dirs: ["include"], export_generated_headers: clang_generated_headers, target: { windows: { enabled: true, }, }, } llvm_tblgen { name: "clang-gen-options", in: "include/clang/Driver/Options.td", outs: ["clang/Driver/Options.inc"], } clang_tblgen { name: "clang-gen-attributes", in: "include/clang/Basic/Attr.td", outs: [ "clang/AST/AttrDump.inc", "clang/AST/AttrImpl.inc", "clang/AST/Attrs.inc", "clang/AST/AttrVisitor.inc", "clang/Basic/AttrHasAttributeImpl.inc", "clang/Basic/AttrList.inc", "clang/Parse/AttrParserStringSwitches.inc", "clang/Sema/AttrParsedAttrImpl.inc", "clang/Sema/AttrParsedAttrKinds.inc", "clang/Sema/AttrParsedAttrList.inc", "clang/Sema/AttrSpellingListIndex.inc", "clang/Sema/AttrTemplateInstantiate.inc", "clang/Serialization/AttrPCHRead.inc", "clang/Serialization/AttrPCHWrite.inc", ], } clang_tblgen { name: "clang-gen-checkers", in: "include/clang/StaticAnalyzer/Checkers/Checkers.td", outs: ["clang/StaticAnalyzer/Checkers/Checkers.inc"], } clang_tblgen { name: "clang-gen-comment-commands", in: "include/clang/AST/CommentCommands.td", outs: [ "clang/AST/CommentCommandInfo.inc", "clang/AST/CommentCommandList.inc", ], } clang_tblgen { name: "clang-gen-comment-html-named-character-references", in: "include/clang/AST/CommentHTMLNamedCharacterReferences.td", outs: ["clang/AST/CommentHTMLNamedCharacterReferences.inc"], } clang_tblgen { name: "clang-gen-html-tags", in: "include/clang/AST/CommentHTMLTags.td", outs: [ "clang/AST/CommentHTMLTagsProperties.inc", "clang/AST/CommentHTMLTags.inc", ], } clang_tblgen { name: "clang-gen-comment-nodes", in: "include/clang/Basic/CommentNodes.td", outs: ["clang/AST/CommentNodes.inc"], } clang_tblgen { name: "clang-gen-diagnostics", in: "include/clang/Basic/Diagnostic.td", outs: [ "clang/Basic/DiagnosticAnalysisKinds.inc", "clang/Basic/DiagnosticASTKinds.inc", "clang/Basic/DiagnosticCommentKinds.inc", "clang/Basic/DiagnosticCommonKinds.inc", "clang/Basic/DiagnosticDriverKinds.inc", "clang/Basic/DiagnosticFrontendKinds.inc", "clang/Basic/DiagnosticLexKinds.inc", "clang/Basic/DiagnosticParseKinds.inc", "clang/Basic/DiagnosticSemaKinds.inc", "clang/Basic/DiagnosticSerializationKinds.inc", "clang/Basic/DiagnosticGroups.inc", "clang/Basic/DiagnosticIndexName.inc", ], } clang_tblgen { name: "clang-gen-declnodes", in: "include/clang/Basic/DeclNodes.td", outs: ["clang/AST/DeclNodes.inc"], } clang_tblgen { name: "clang-gen-statnodes", in: "include/clang/Basic/StmtNodes.td", outs: ["clang/AST/StmtNodes.inc"], } clang_tblgen { name: "clang-gen-arm-neon", in: "include/clang/Basic/arm_neon.td", outs: [ "clang/Basic/arm_neon.inc", "clang/Basic/arm_neon.h", ], } genrule { name: "clang-version", cmd: "$(location) $(in) > $(out)", tool_files: [ "clang-version-inc.py", "version.py", ], srcs: [ "include/clang/Basic/Version.inc.in", ], out: ["clang/Basic/Version.inc"], } cc_library_shared { name: "libclang_android", defaults: [ "clang-defaults", "force_build_llvm_components", ], host_supported: true, whole_static_libs: [ "libclangAnalysis", "libclangAST", "libclangASTMatchers", "libclangBasic", "libclangCodeGen", "libclangDriver", "libclangEdit", "libclangFormat", "libclangFrontend", "libclangIndex", "libclangLex", "libclangLibclang", "libclangParse", "libclangRewrite", "libclangRewriteFrontend", "libclangSema", "libclangSerialization", "libclangTooling", "libclangToolingCore", ], export_shared_lib_headers: ["libLLVM_android"], shared_libs: ["libLLVM_android"], export_header_lib_headers: ["clang-headers"], target: { windows: { host_ldlibs: [ "-limagehlp", "-lpsapi", "-lversion", ], }, not_windows: { shared_libs: ["libc++"], }, }, product_variables: { unbundled_build: { // Don't build the library in unbundled branches. enabled: false, }, }, } genrule { name: "renderscript-clang-include", visibility: ["//development/build"], tools: ["soong_zip"], cmd: "$(location soong_zip) -o $(out) -P renderscript/clang-include " + "-C $$(dirname $(location LICENSE.TXT))/lib/Headers -D $$(dirname $(location LICENSE.TXT))/lib/Headers " + "-C $$(dirname $(location LICENSE.TXT)) -f $(location LICENSE.TXT)", srcs: [ "lib/Headers/**/*", "LICENSE.TXT", ], out: ["clang-include.zip"], }