xref: /aosp_15_r20/external/perfmark/build.gradle (revision 27e8546d0ef5f99cf83d5252272c7dd38d18d29a)
1*27e8546dSMatt Gilbrideplugins {
2*27e8546dSMatt Gilbride    id "net.ltgt.errorprone" version "3.0.1" apply false
3*27e8546dSMatt Gilbride    id "me.champeau.jmh" version "0.6.8" apply false
4*27e8546dSMatt Gilbride    id "io.github.reyerizo.gradle.jcstress" version "0.8.14" apply false
5*27e8546dSMatt Gilbride}
6*27e8546dSMatt Gilbride
7*27e8546dSMatt Gilbridesubprojects {
8*27e8546dSMatt Gilbride    apply plugin: "checkstyle"
9*27e8546dSMatt Gilbride    apply plugin: "java-library"
10*27e8546dSMatt Gilbride    apply plugin: 'maven-publish'
11*27e8546dSMatt Gilbride    apply plugin: "idea"
12*27e8546dSMatt Gilbride    apply plugin: "signing"
13*27e8546dSMatt Gilbride    apply plugin: "net.ltgt.errorprone"
14*27e8546dSMatt Gilbride
15*27e8546dSMatt Gilbride    repositories {
16*27e8546dSMatt Gilbride        maven {
17*27e8546dSMatt Gilbride            url "https://maven-central.storage-download.googleapis.com/repos/central/data/" }
18*27e8546dSMatt Gilbride        mavenCentral()
19*27e8546dSMatt Gilbride    }
20*27e8546dSMatt Gilbride
21*27e8546dSMatt Gilbride    java {
22*27e8546dSMatt Gilbride        toolchain {
23*27e8546dSMatt Gilbride            languageVersion = JavaLanguageVersion.of(17)
24*27e8546dSMatt Gilbride        }
25*27e8546dSMatt Gilbride    }
26*27e8546dSMatt Gilbride
27*27e8546dSMatt Gilbride    task javadocJar(type: Jar) {
28*27e8546dSMatt Gilbride        classifier = 'javadoc'
29*27e8546dSMatt Gilbride        from javadoc
30*27e8546dSMatt Gilbride    }
31*27e8546dSMatt Gilbride
32*27e8546dSMatt Gilbride    task sourcesJar(type: Jar) {
33*27e8546dSMatt Gilbride        classifier = 'sources'
34*27e8546dSMatt Gilbride        from sourceSets.main.allSource
35*27e8546dSMatt Gilbride    }
36*27e8546dSMatt Gilbride
37*27e8546dSMatt Gilbride    checkstyle {
38*27e8546dSMatt Gilbride        configDirectory = file("$rootDir/buildscripts")
39*27e8546dSMatt Gilbride        toolVersion = "6.17"
40*27e8546dSMatt Gilbride        ignoreFailures = false
41*27e8546dSMatt Gilbride        if (rootProject.hasProperty("checkstyle.ignoreFailures")) {
42*27e8546dSMatt Gilbride            ignoreFailures = rootProject.properties["checkstyle.ignoreFailures"].toBoolean()
43*27e8546dSMatt Gilbride        }
44*27e8546dSMatt Gilbride    }
45*27e8546dSMatt Gilbride
46*27e8546dSMatt Gilbride    afterEvaluate {
47*27e8546dSMatt Gilbride        jar {
48*27e8546dSMatt Gilbride            manifest {
49*27e8546dSMatt Gilbride                attributes  ('Automatic-Module-Name': moduleName,
50*27e8546dSMatt Gilbride                    "Implementation-Version": archiveVersion.get(),
51*27e8546dSMatt Gilbride                    "Implementation-Title": "PerfMark",
52*27e8546dSMatt Gilbride                    "Implementation-Vendor": "Carl Mastrangelo",
53*27e8546dSMatt Gilbride                    "Implementation-URL": "https://www.perfmark.io/",
54*27e8546dSMatt Gilbride                    "Carl-Is-Awesome": "true")
55*27e8546dSMatt Gilbride            }
56*27e8546dSMatt Gilbride
57*27e8546dSMatt Gilbride        }
58*27e8546dSMatt Gilbride    }
59*27e8546dSMatt Gilbride
60*27e8546dSMatt Gilbride
61*27e8546dSMatt Gilbride    publishing {
62*27e8546dSMatt Gilbride        publications {
63*27e8546dSMatt Gilbride            maven(MavenPublication) {
64*27e8546dSMatt Gilbride                from components.java
65*27e8546dSMatt Gilbride
66*27e8546dSMatt Gilbride                artifact javadocJar
67*27e8546dSMatt Gilbride                artifact sourcesJar
68*27e8546dSMatt Gilbride
69*27e8546dSMatt Gilbride                pom {
70*27e8546dSMatt Gilbride                    name = project.group + ":" + project.name
71*27e8546dSMatt Gilbride                    url = 'https://github.com/perfmark/perfmark'
72*27e8546dSMatt Gilbride                    afterEvaluate {
73*27e8546dSMatt Gilbride                        // description is not available until evaluated.
74*27e8546dSMatt Gilbride                        description = project.description
75*27e8546dSMatt Gilbride                    }
76*27e8546dSMatt Gilbride
77*27e8546dSMatt Gilbride                    scm {
78*27e8546dSMatt Gilbride                        connection = 'scm:git:https://github.com/perfmark/perfmark.git'
79*27e8546dSMatt Gilbride                        developerConnection = 'scm:[email protected]:perfmark/perfmark.git'
80*27e8546dSMatt Gilbride                        url = 'https://github.com/perfmark/perfmark'
81*27e8546dSMatt Gilbride                    }
82*27e8546dSMatt Gilbride
83*27e8546dSMatt Gilbride                    licenses {
84*27e8546dSMatt Gilbride                        license {
85*27e8546dSMatt Gilbride                            name = 'Apache 2.0'
86*27e8546dSMatt Gilbride                            url = 'https://opensource.org/licenses/Apache-2.0'
87*27e8546dSMatt Gilbride                        }
88*27e8546dSMatt Gilbride                    }
89*27e8546dSMatt Gilbride
90*27e8546dSMatt Gilbride                    developers {
91*27e8546dSMatt Gilbride                        developer {
92*27e8546dSMatt Gilbride                            id = "carl-mastrangelo"
93*27e8546dSMatt Gilbride                            name = "Carl Mastrangelo"
94*27e8546dSMatt Gilbride                            email = "[email protected]"
95*27e8546dSMatt Gilbride                            url = "https://www.perfmark.io/"
96*27e8546dSMatt Gilbride                        }
97*27e8546dSMatt Gilbride                    }
98*27e8546dSMatt Gilbride                }
99*27e8546dSMatt Gilbride            }
100*27e8546dSMatt Gilbride        }
101*27e8546dSMatt Gilbride
102*27e8546dSMatt Gilbride        repositories {
103*27e8546dSMatt Gilbride             maven {
104*27e8546dSMatt Gilbride                 def stagingUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
105*27e8546dSMatt Gilbride                 def releaseUrl = stagingUrl
106*27e8546dSMatt Gilbride                 def snapshotUrl = 'https://oss.sonatype.org/content/repositories/snapshots/'
107*27e8546dSMatt Gilbride                 url = version.endsWith('SNAPSHOT') ? snapshotUrl : releaseUrl
108*27e8546dSMatt Gilbride                 credentials {
109*27e8546dSMatt Gilbride                     if (rootProject.hasProperty('ossrhUsername')
110*27e8546dSMatt Gilbride                             && rootProject.hasProperty('ossrhPassword')) {
111*27e8546dSMatt Gilbride                         username = rootProject.ossrhUsername
112*27e8546dSMatt Gilbride                         password = rootProject.ossrhPassword
113*27e8546dSMatt Gilbride                     }
114*27e8546dSMatt Gilbride                 }
115*27e8546dSMatt Gilbride            }
116*27e8546dSMatt Gilbride        }
117*27e8546dSMatt Gilbride    }
118*27e8546dSMatt Gilbride
119*27e8546dSMatt Gilbride    signing {
120*27e8546dSMatt Gilbride        required false
121*27e8546dSMatt Gilbride        sign publishing.publications.maven
122*27e8546dSMatt Gilbride    }
123*27e8546dSMatt Gilbride
124*27e8546dSMatt Gilbride    [publishMavenPublicationToMavenRepository, publishMavenPublicationToMavenLocal]*.onlyIf {
125*27e8546dSMatt Gilbride        !name.contains("perfmark-examples") && !name.contains("perfmark-api-testing")
126*27e8546dSMatt Gilbride                && !name.contains("perfmark-testing") && !name.contains("perfmark-agent")
127*27e8546dSMatt Gilbride    }
128*27e8546dSMatt Gilbride
129*27e8546dSMatt Gilbride    [javadoc]*.onlyIf {
130*27e8546dSMatt Gilbride        !name.contains("perfmark-java9") && !name.contains("perfmark-examples")
131*27e8546dSMatt Gilbride                && !name.contains("perfmark-api-testing") && !name.contains("perfmark-testing")
132*27e8546dSMatt Gilbride    }
133*27e8546dSMatt Gilbride
134*27e8546dSMatt Gilbride    if (rootProject.properties.get('errorProne', true)) {
135*27e8546dSMatt Gilbride        dependencies {
136*27e8546dSMatt Gilbride            errorprone 'com.google.errorprone:error_prone_core:2.16'
137*27e8546dSMatt Gilbride            errorproneJavac 'com.google.errorprone:javac:9+181-r4173-1'
138*27e8546dSMatt Gilbride        }
139*27e8546dSMatt Gilbride    } else {
140*27e8546dSMatt Gilbride        // Disable Error Prone
141*27e8546dSMatt Gilbride        allprojects {
142*27e8546dSMatt Gilbride            afterEvaluate { project ->
143*27e8546dSMatt Gilbride                project.tasks.withType(JavaCompile) {
144*27e8546dSMatt Gilbride                    options.errorprone.enabled = false
145*27e8546dSMatt Gilbride                }
146*27e8546dSMatt Gilbride            }
147*27e8546dSMatt Gilbride        }
148*27e8546dSMatt Gilbride    }
149*27e8546dSMatt Gilbride
150*27e8546dSMatt Gilbride    group = "io.perfmark"
151*27e8546dSMatt Gilbride    version = "0.26.0"
152*27e8546dSMatt Gilbride
153*27e8546dSMatt Gilbride    dependencies {
154*27e8546dSMatt Gilbride        testImplementation libs.junit
155*27e8546dSMatt Gilbride    }
156*27e8546dSMatt Gilbride}
157