build.gradle 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
  3. * or more contributor license agreements. Licensed under the "Elastic License
  4. * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
  5. * Public License v 1"; you may not use this file except in compliance with, at
  6. * your election, the "Elastic License 2.0", the "GNU Affero General Public
  7. * License v3.0 only", or the "Server Side Public License, v 1".
  8. */
  9. import org.elasticsearch.gradle.OS
  10. import org.elasticsearch.gradle.VersionProperties
  11. import org.elasticsearch.gradle.internal.info.BuildParams
  12. apply plugin: 'elasticsearch.java'
  13. configurations {
  14. patch
  15. }
  16. dependencies {
  17. implementation 'org.ow2.asm:asm:9.7.1'
  18. implementation 'org.ow2.asm:asm-tree:9.7.1'
  19. }
  20. def outputDir = layout.buildDirectory.dir("jdk-patches")
  21. def generatePatch = tasks.register("generatePatch", JavaExec)
  22. generatePatch.configure {
  23. dependsOn tasks.named("compileJava")
  24. inputs.property("java-home-set", buildParams.getIsRuntimeJavaHomeSet())
  25. inputs.property("java-version", buildParams.runtimeJavaVersion)
  26. outputs.dir(outputDir)
  27. classpath = sourceSets.main.runtimeClasspath
  28. mainClass = 'org.elasticsearch.jdk.patch.ImmutableCollectionsPatcher'
  29. if (buildParams.getIsRuntimeJavaHomeSet()) {
  30. executable = "${buildParams.runtimeJavaHome.get()}/bin/java" + (OS.current() == OS.WINDOWS ? '.exe' : '')
  31. } else {
  32. javaLauncher = javaToolchains.launcherFor {
  33. languageVersion = JavaLanguageVersion.of(VersionProperties.bundledJdkMajorVersion)
  34. vendor = VersionProperties.bundledJdkVendor == "openjdk" ?
  35. JvmVendorSpec.ORACLE :
  36. JvmVendorSpec.matching(VersionProperties.bundledJdkVendor)
  37. }
  38. }
  39. doFirst {
  40. args outputDir.get().getAsFile().toString()
  41. }
  42. }
  43. artifacts.add("patch", generatePatch);