1*83a54b2fSSadaf Ebrahimi// Copyright (C) 2016 The Android Open Source Project 2*83a54b2fSSadaf Ebrahimi// 3*83a54b2fSSadaf Ebrahimi// Licensed under the Apache License, Version 2.0 (the "License"); 4*83a54b2fSSadaf Ebrahimi// you may not use this file except in compliance with the License. 5*83a54b2fSSadaf Ebrahimi// You may obtain a copy of the License at 6*83a54b2fSSadaf Ebrahimi// 7*83a54b2fSSadaf Ebrahimi// http://www.apache.org/licenses/LICENSE-2.0 8*83a54b2fSSadaf Ebrahimi// 9*83a54b2fSSadaf Ebrahimi// Unless required by applicable law or agreed to in writing, software 10*83a54b2fSSadaf Ebrahimi// distributed under the License is distributed on an "AS IS" BASIS, 11*83a54b2fSSadaf Ebrahimi// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*83a54b2fSSadaf Ebrahimi// See the License for the specific language governing permissions and 13*83a54b2fSSadaf Ebrahimi// limitations under the License. 14*83a54b2fSSadaf Ebrahimi// 15*83a54b2fSSadaf Ebrahimi 16*83a54b2fSSadaf Ebrahimi// 17*83a54b2fSSadaf Ebrahimi// Build support for testng within the Android Open Source Project 18*83a54b2fSSadaf Ebrahimi// See https://source.android.com/source/building.html for more information 19*83a54b2fSSadaf Ebrahimi// 20*83a54b2fSSadaf Ebrahimi// 21*83a54b2fSSadaf Ebrahimi// The following optional support has been disabled: 22*83a54b2fSSadaf Ebrahimi// - ant 23*83a54b2fSSadaf Ebrahimi// - bsh 24*83a54b2fSSadaf Ebrahimi// 25*83a54b2fSSadaf Ebrahimi// JUnit support is enabled, but needs to be explicitly added in with LOCAL_STATIC_JAVA_LIBRARIES 26*83a54b2fSSadaf Ebrahimi// by whichever app/library is also including testng. 27*83a54b2fSSadaf Ebrahimi 28*83a54b2fSSadaf Ebrahimi// These files don't exist in the source tree, they need to be generated during the build. 29*83a54b2fSSadaf Ebrahimipackage { 30*83a54b2fSSadaf Ebrahimi default_applicable_licenses: ["external_testng_license"], 31*83a54b2fSSadaf Ebrahimi} 32*83a54b2fSSadaf Ebrahimi 33*83a54b2fSSadaf Ebrahimi// Added automatically by a large-scale-change that took the approach of 34*83a54b2fSSadaf Ebrahimi// 'apply every license found to every target'. While this makes sure we respect 35*83a54b2fSSadaf Ebrahimi// every license restriction, it may not be entirely correct. 36*83a54b2fSSadaf Ebrahimi// 37*83a54b2fSSadaf Ebrahimi// e.g. GPL in an MIT project might only apply to the contrib/ directory. 38*83a54b2fSSadaf Ebrahimi// 39*83a54b2fSSadaf Ebrahimi// Please consider splitting the single license below into multiple licenses, 40*83a54b2fSSadaf Ebrahimi// taking care not to lose any license_kind information, and overriding the 41*83a54b2fSSadaf Ebrahimi// default license using the 'licenses: [...]' property on targets as needed. 42*83a54b2fSSadaf Ebrahimi// 43*83a54b2fSSadaf Ebrahimi// For unused files, consider creating a 'fileGroup' with "//visibility:private" 44*83a54b2fSSadaf Ebrahimi// to attach the license to, and including a comment whether the files may be 45*83a54b2fSSadaf Ebrahimi// used in the current project. 46*83a54b2fSSadaf Ebrahimi// 47*83a54b2fSSadaf Ebrahimi// large-scale-change included anything that looked like it might be a license 48*83a54b2fSSadaf Ebrahimi// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 49*83a54b2fSSadaf Ebrahimi// 50*83a54b2fSSadaf Ebrahimi// Please consider removing redundant or irrelevant files from 'license_text:'. 51*83a54b2fSSadaf Ebrahimi// See: http://go/android-license-faq 52*83a54b2fSSadaf Ebrahimilicense { 53*83a54b2fSSadaf Ebrahimi name: "external_testng_license", 54*83a54b2fSSadaf Ebrahimi visibility: [":__subpackages__"], 55*83a54b2fSSadaf Ebrahimi license_kinds: [ 56*83a54b2fSSadaf Ebrahimi "SPDX-license-identifier-Apache-2.0", 57*83a54b2fSSadaf Ebrahimi "SPDX-license-identifier-CPL-1.0", 58*83a54b2fSSadaf Ebrahimi ], 59*83a54b2fSSadaf Ebrahimi license_text: [ 60*83a54b2fSSadaf Ebrahimi "LICENSE.txt", 61*83a54b2fSSadaf Ebrahimi "NOTICE", 62*83a54b2fSSadaf Ebrahimi ], 63*83a54b2fSSadaf Ebrahimi} 64*83a54b2fSSadaf Ebrahimi 65*83a54b2fSSadaf Ebrahimigenrule { 66*83a54b2fSSadaf Ebrahimi name: "testng-generated-srcs", 67*83a54b2fSSadaf Ebrahimi tool_files: [ 68*83a54b2fSSadaf Ebrahimi "generate-version-file", 69*83a54b2fSSadaf Ebrahimi "kobalt/src/Build.kt", 70*83a54b2fSSadaf Ebrahimi ], 71*83a54b2fSSadaf Ebrahimi srcs: [ 72*83a54b2fSSadaf Ebrahimi "src/main/resources/org/testng/internal/VersionTemplateJava", 73*83a54b2fSSadaf Ebrahimi ], 74*83a54b2fSSadaf Ebrahimi cmd: "$(location generate-version-file) $(in) @version@ $(location kobalt/src/Build.kt) VERSION > $(out)", 75*83a54b2fSSadaf Ebrahimi out: ["src/generated/java/org/testng/internal/Version.java"], 76*83a54b2fSSadaf Ebrahimi} 77*83a54b2fSSadaf Ebrahimi 78*83a54b2fSSadaf Ebrahimijava_library { 79*83a54b2fSSadaf Ebrahimi name: "testng", 80*83a54b2fSSadaf Ebrahimi host_supported: true, 81*83a54b2fSSadaf Ebrahimi hostdex: true, 82*83a54b2fSSadaf Ebrahimi sdk_version: "core_current", 83*83a54b2fSSadaf Ebrahimi 84*83a54b2fSSadaf Ebrahimi srcs: [ 85*83a54b2fSSadaf Ebrahimi "src/main/**/*.java", 86*83a54b2fSSadaf Ebrahimi ":testng-generated-srcs", 87*83a54b2fSSadaf Ebrahimi // Android-specific replacements of some of the excluded files. 88*83a54b2fSSadaf Ebrahimi "android-src/**/*.java", 89*83a54b2fSSadaf Ebrahimi ], 90*83a54b2fSSadaf Ebrahimi exclude_srcs: [ 91*83a54b2fSSadaf Ebrahimi // These files don't build on Android, either due to missing java.* APIs or due to missing dependencies (see above). 92*83a54b2fSSadaf Ebrahimi "src/main/java/com/beust/testng/TestNGAntTask.java", 93*83a54b2fSSadaf Ebrahimi "src/main/java/org/testng/TestNGAntTask.java", 94*83a54b2fSSadaf Ebrahimi "src/main/java/org/testng/internal/Bsh.java", 95*83a54b2fSSadaf Ebrahimi "src/main/java/org/testng/internal/PropertyUtils.java", 96*83a54b2fSSadaf Ebrahimi "src/main/java/org/testng/internal/PathUtils.java", 97*83a54b2fSSadaf Ebrahimi ], 98*83a54b2fSSadaf Ebrahimi 99*83a54b2fSSadaf Ebrahimi static_libs: [ 100*83a54b2fSSadaf Ebrahimi "jcommander", 101*83a54b2fSSadaf Ebrahimi "snakeyaml", 102*83a54b2fSSadaf Ebrahimi "guice", 103*83a54b2fSSadaf Ebrahimi ], 104*83a54b2fSSadaf Ebrahimi libs: ["junit"], 105*83a54b2fSSadaf Ebrahimi 106*83a54b2fSSadaf Ebrahimi errorprone: { 107*83a54b2fSSadaf Ebrahimi javacflags: [ 108*83a54b2fSSadaf Ebrahimi "-Xep:ComparableType:WARN", 109*83a54b2fSSadaf Ebrahimi "-Xep:NonRuntimeAnnotation:WARN", 110*83a54b2fSSadaf Ebrahimi "-Xep:GetClassOnAnnotation:WARN", 111*83a54b2fSSadaf Ebrahimi "-Xep:RandomModInteger:WARN", 112*83a54b2fSSadaf Ebrahimi "-Xep:FormatString:WARN", 113*83a54b2fSSadaf Ebrahimi "-Xep:DoubleBraceInitialization:WARN", 114*83a54b2fSSadaf Ebrahimi "-Xep:UnusedCollectionModifiedInPlace:WARN", 115*83a54b2fSSadaf Ebrahimi ], 116*83a54b2fSSadaf Ebrahimi }, 117*83a54b2fSSadaf Ebrahimi} 118*83a54b2fSSadaf Ebrahimi 119*83a54b2fSSadaf Ebrahimi// TODO: also add the tests once we have testng working. 120