xref: /aosp_15_r20/external/mobly-snippet-lib/third_party/sl4a/build.gradle (revision ae5b1ec8a57d9cd6259556f14d3f2bb4f9fb3a85)
1*ae5b1ec8SZiwei Zhangbuildscript {
2*ae5b1ec8SZiwei Zhang    repositories {
3*ae5b1ec8SZiwei Zhang        mavenCentral()
4*ae5b1ec8SZiwei Zhang        google()
5*ae5b1ec8SZiwei Zhang    }
6*ae5b1ec8SZiwei Zhang}
7*ae5b1ec8SZiwei Zhang
8*ae5b1ec8SZiwei Zhangplugins {
9*ae5b1ec8SZiwei Zhang    id 'com.github.sherter.google-java-format' version '0.9'
10*ae5b1ec8SZiwei Zhang    id 'maven-publish'
11*ae5b1ec8SZiwei Zhang    id 'signing'
12*ae5b1ec8SZiwei Zhang}
13*ae5b1ec8SZiwei Zhang
14*ae5b1ec8SZiwei Zhangapply plugin: 'com.android.library'
15*ae5b1ec8SZiwei Zhang
16*ae5b1ec8SZiwei Zhangandroid {
17*ae5b1ec8SZiwei Zhang    compileSdkVersion 31
18*ae5b1ec8SZiwei Zhang
19*ae5b1ec8SZiwei Zhang    defaultConfig {
20*ae5b1ec8SZiwei Zhang        minSdkVersion 26
21*ae5b1ec8SZiwei Zhang        targetSdkVersion 31
22*ae5b1ec8SZiwei Zhang        versionCode VERSION_CODE.toInteger()
23*ae5b1ec8SZiwei Zhang        versionName VERSION_NAME
24*ae5b1ec8SZiwei Zhang
25*ae5b1ec8SZiwei Zhang        // Need to set up some project properties to publish to bintray.
26*ae5b1ec8SZiwei Zhang        project.group = GROUP_ID
27*ae5b1ec8SZiwei Zhang        project.archivesBaseName = ARTIFACT_ID
28*ae5b1ec8SZiwei Zhang        project.version = VERSION_NAME
29*ae5b1ec8SZiwei Zhang    }
30*ae5b1ec8SZiwei Zhang
31*ae5b1ec8SZiwei Zhang    splits {
32*ae5b1ec8SZiwei Zhang        abi {
33*ae5b1ec8SZiwei Zhang          enable true
34*ae5b1ec8SZiwei Zhang          reset()
35*ae5b1ec8SZiwei Zhang          // Specifies a list of ABIs that Gradle should create APKs for.
36*ae5b1ec8SZiwei Zhang          include "arm64-v8a", "armeabi-v7a", "armeabi"
37*ae5b1ec8SZiwei Zhang          universalApk true
38*ae5b1ec8SZiwei Zhang        }
39*ae5b1ec8SZiwei Zhang    }
40*ae5b1ec8SZiwei Zhang
41*ae5b1ec8SZiwei Zhang    lintOptions {
42*ae5b1ec8SZiwei Zhang        abortOnError false
43*ae5b1ec8SZiwei Zhang        checkAllWarnings true
44*ae5b1ec8SZiwei Zhang        warningsAsErrors true
45*ae5b1ec8SZiwei Zhang        disable 'HardwareIds','MissingApplicationIcon','GoogleAppIndexingWarning','InvalidPackage','OldTargetApi'
46*ae5b1ec8SZiwei Zhang    }
47*ae5b1ec8SZiwei Zhang
48*ae5b1ec8SZiwei Zhang    compileOptions {
49*ae5b1ec8SZiwei Zhang        sourceCompatibility JavaVersion.VERSION_1_8
50*ae5b1ec8SZiwei Zhang        targetCompatibility JavaVersion.VERSION_1_8
51*ae5b1ec8SZiwei Zhang    }
52*ae5b1ec8SZiwei Zhang}
53*ae5b1ec8SZiwei Zhang
54*ae5b1ec8SZiwei Zhangdependencies {
55*ae5b1ec8SZiwei Zhang    implementation 'junit:junit:4.13.2'
56*ae5b1ec8SZiwei Zhang    implementation 'androidx.test:runner:1.4.0'
57*ae5b1ec8SZiwei Zhang}
58*ae5b1ec8SZiwei Zhang
59*ae5b1ec8SZiwei ZhanggoogleJavaFormat {
60*ae5b1ec8SZiwei Zhang    options style: 'AOSP'
61*ae5b1ec8SZiwei Zhang}
62*ae5b1ec8SZiwei Zhang
63*ae5b1ec8SZiwei Zhangtask sourcesJar(type: Jar) {
64*ae5b1ec8SZiwei Zhang    from android.sourceSets.main.java.srcDirs
65*ae5b1ec8SZiwei Zhang    classifier = 'sources'
66*ae5b1ec8SZiwei Zhang}
67*ae5b1ec8SZiwei Zhang
68*ae5b1ec8SZiwei Zhangtask javadoc(type: Javadoc) {
69*ae5b1ec8SZiwei Zhang    source = android.sourceSets.main.java.srcDirs
70*ae5b1ec8SZiwei Zhang    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
71*ae5b1ec8SZiwei Zhang    options.addStringOption('Xdoclint:none', '-quiet')
72*ae5b1ec8SZiwei Zhang    options.addStringOption('encoding', 'UTF-8')
73*ae5b1ec8SZiwei Zhang    options.addStringOption('charSet', 'UTF-8')
74*ae5b1ec8SZiwei Zhang    failOnError false
75*ae5b1ec8SZiwei Zhang}
76*ae5b1ec8SZiwei Zhang
77*ae5b1ec8SZiwei Zhangtask javadocJar(type: Jar, dependsOn: javadoc) {
78*ae5b1ec8SZiwei Zhang    classifier = 'javadoc'
79*ae5b1ec8SZiwei Zhang    from javadoc.destinationDir
80*ae5b1ec8SZiwei Zhang}
81*ae5b1ec8SZiwei Zhang
82*ae5b1ec8SZiwei Zhangartifacts {
83*ae5b1ec8SZiwei Zhang    archives javadocJar
84*ae5b1ec8SZiwei Zhang    archives sourcesJar
85*ae5b1ec8SZiwei Zhang}
86*ae5b1ec8SZiwei Zhang
87*ae5b1ec8SZiwei Zhang
88*ae5b1ec8SZiwei ZhangafterEvaluate {
89*ae5b1ec8SZiwei Zhang    publishing {
90*ae5b1ec8SZiwei Zhang        publications {
91*ae5b1ec8SZiwei Zhang            release(MavenPublication) {
92*ae5b1ec8SZiwei Zhang                groupId GROUP_ID
93*ae5b1ec8SZiwei Zhang                artifactId ARTIFACT_ID
94*ae5b1ec8SZiwei Zhang                version VERSION_NAME
95*ae5b1ec8SZiwei Zhang                from components.release
96*ae5b1ec8SZiwei Zhang
97*ae5b1ec8SZiwei Zhang                artifact sourcesJar
98*ae5b1ec8SZiwei Zhang                artifact javadocJar
99*ae5b1ec8SZiwei Zhang
100*ae5b1ec8SZiwei Zhang                pom {
101*ae5b1ec8SZiwei Zhang                    name = ARTIFACT_ID
102*ae5b1ec8SZiwei Zhang                    description = 'Android library for triggering device-side ' +
103*ae5b1ec8SZiwei Zhang                                  'code from host-side Mobly tests.'
104*ae5b1ec8SZiwei Zhang                    url = 'https://github.com/google/mobly-snippet-lib'
105*ae5b1ec8SZiwei Zhang                    licenses {
106*ae5b1ec8SZiwei Zhang                        license {
107*ae5b1ec8SZiwei Zhang                            name = 'The Apache Software License, Version 2.0'
108*ae5b1ec8SZiwei Zhang                            url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
109*ae5b1ec8SZiwei Zhang                            distribution = 'repo'
110*ae5b1ec8SZiwei Zhang                        }
111*ae5b1ec8SZiwei Zhang                    }
112*ae5b1ec8SZiwei Zhang                    developers {
113*ae5b1ec8SZiwei Zhang                        developer {
114*ae5b1ec8SZiwei Zhang                            name = 'The Mobly Team'
115*ae5b1ec8SZiwei Zhang                        }
116*ae5b1ec8SZiwei Zhang                    }
117*ae5b1ec8SZiwei Zhang                    scm {
118*ae5b1ec8SZiwei Zhang                        connection = 'https://github.com/google/mobly-snippet-lib.git'
119*ae5b1ec8SZiwei Zhang                        url = 'https://github.com/google/mobly-snippet-lib'
120*ae5b1ec8SZiwei Zhang                    }
121*ae5b1ec8SZiwei Zhang                }
122*ae5b1ec8SZiwei Zhang            }
123*ae5b1ec8SZiwei Zhang        }
124*ae5b1ec8SZiwei Zhang
125*ae5b1ec8SZiwei Zhang        repositories {
126*ae5b1ec8SZiwei Zhang            maven {
127*ae5b1ec8SZiwei Zhang                def releasesRepoUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
128*ae5b1ec8SZiwei Zhang                def snapshotsRepoUrl = 'https://oss.sonatype.org/content/repositories/snapshots/'
129*ae5b1ec8SZiwei Zhang                url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
130*ae5b1ec8SZiwei Zhang                credentials {
131*ae5b1ec8SZiwei Zhang                    username ossrhUsername
132*ae5b1ec8SZiwei Zhang                    password ossrhPassword
133*ae5b1ec8SZiwei Zhang                }
134*ae5b1ec8SZiwei Zhang            }
135*ae5b1ec8SZiwei Zhang        }
136*ae5b1ec8SZiwei Zhang    }
137*ae5b1ec8SZiwei Zhang    signing {
138*ae5b1ec8SZiwei Zhang        sign publishing.publications.release
139*ae5b1ec8SZiwei Zhang    }
140*ae5b1ec8SZiwei Zhang}
141*ae5b1ec8SZiwei Zhang
142*ae5b1ec8SZiwei Zhang// Open lint's HTML report in your default browser or viewer.
143*ae5b1ec8SZiwei Zhangtask openLintReport(type: Exec) {
144*ae5b1ec8SZiwei Zhang    def lint_report = "build/reports/lint-results-debug.html"
145*ae5b1ec8SZiwei Zhang    def cmd = "cat"
146*ae5b1ec8SZiwei Zhang    def platform = System.getProperty('os.name').toLowerCase(Locale.ROOT)
147*ae5b1ec8SZiwei Zhang    if (platform.contains("linux")) {
148*ae5b1ec8SZiwei Zhang        cmd = "xdg-open"
149*ae5b1ec8SZiwei Zhang    } else if (platform.contains("mac os x")) {
150*ae5b1ec8SZiwei Zhang        cmd = "open"
151*ae5b1ec8SZiwei Zhang    } else if (platform.contains("windows")) {
152*ae5b1ec8SZiwei Zhang        cmd = "launch"
153*ae5b1ec8SZiwei Zhang    }
154*ae5b1ec8SZiwei Zhang    commandLine cmd, lint_report
155*ae5b1ec8SZiwei Zhang}
156*ae5b1ec8SZiwei Zhang
157*ae5b1ec8SZiwei Zhangtask presubmit {
158*ae5b1ec8SZiwei Zhang    dependsOn { ['googleJavaFormat', 'lint', 'openLintReport'] }
159*ae5b1ec8SZiwei Zhang    doLast {
160*ae5b1ec8SZiwei Zhang        println "Fix any lint issues you see. When it looks good, submit the pull request."
161*ae5b1ec8SZiwei Zhang    }
162*ae5b1ec8SZiwei Zhang}
163*ae5b1ec8SZiwei Zhang
164