Guest User

pastebin ijinit.gradle

a guest
Jan 24th, 2022
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. import org.gradle.api.internal.project.ProjectInternal
  2. import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
  3. import org.gradle.util.GradleVersion
  4. import org.jetbrains.plugins.gradle.tooling.internal.ExtraModelBuilder
  5.  
  6. import java.util.concurrent.CopyOnWriteArrayList
  7.  
  8. initscript {
  9. dependencies {
  10. classpath files(["D:/Games/androidstudio/plugins/gradle/lib/gradle-tooling-extension-api.jar","D:/Games/androidstudio/lib/gson-2.8.6.jar","D:/Games/androidstudio/plugins/gradle/lib/gradle-tooling-extension-impl.jar","D:/Games/androidstudio/plugins/gradle/lib/gradle-api-impldep-6.8.jar","C:/Users/Louis KOMIWES/AppData/Roaming/Google/AndroidStudio2020.3/plugins/Kotlin/lib/kotlin-compiler-plugins-lombok.jar","D:/Games/androidstudio/lib/trove4j.jar","C:/Users/Louis KOMIWES/AppData/Roaming/Google/AndroidStudio2020.3/plugins/Kotlin/lib/kotlin-compiler-plugins-annotation-based-compiler-support.jar","D:/Games/androidstudio/lib/intellij-deps-fastutil-8.4.1-4.jar","D:/Games/androidstudio/lib/util.jar","C:/Users/Louis KOMIWES/AppData/Roaming/Google/AndroidStudio2020.3/plugins/Kotlin/lib/kotlin-gradle-gradle-tooling.jar","D:/Games/androidstudio/lib/ion-java-1.6.2-3.jar","D:/Games/androidstudio/lib/external-system-rt.jar","D:/Games/androidstudio/plugins/android/lib/android-extensions-ide.jar","D:/Games/androidstudio/lib/kotlin-stdlib-1.4.32.jar"])
  11. }
  12. }
  13.  
  14. apply plugin: JetGradlePlugin
  15.  
  16. class JetGradlePlugin implements Plugin<Gradle> {
  17. void apply(Gradle gradle) {
  18. def processor = new RegistryProcessor()
  19. gradle.addProjectEvaluationListener(processor)
  20. def projectEvaluationIsNotCalledForIncludedBuilds = GradleVersion.current() >= GradleVersion.version("3.1") &&
  21. GradleVersion.current() < GradleVersion.version("4.0")
  22. if (projectEvaluationIsNotCalledForIncludedBuilds) {
  23. gradle.rootProject {
  24. it.afterEvaluate {
  25. gradle.includedBuilds.each { included ->
  26. // included builds should be configured by now, so calling `configuredBuild` should be safe
  27. def toolingRegistry = (ToolingModelBuilderRegistry)included.configuredBuild.services.get(ToolingModelBuilderRegistry.class)
  28. processor.process(toolingRegistry)
  29. }
  30. }
  31. }
  32. }
  33. }
  34. }
  35.  
  36. /**
  37. * Adds a single extra model builder instance for each root of ToolingModelBuilderRegistry hierarchy<br>
  38. * Thread safe.
  39. */
  40. class RegistryProcessor implements ProjectEvaluationListener {
  41. def extraModelBuilderInstance =
  42. GradleVersion.current() >= GradleVersion.version("4.4")
  43. ? ExtraModelBuilder.class.classLoader.loadClass(ExtraModelBuilder.class.typeName + "\$ForGradle44").newInstance()
  44. : new ExtraModelBuilder();
  45.  
  46. CopyOnWriteArrayList<ToolingModelBuilderRegistry> processedRegistries = new CopyOnWriteArrayList<ToolingModelBuilderRegistry>()
  47.  
  48. @Override
  49. void beforeEvaluate(Project project) {
  50. def registry = (ToolingModelBuilderRegistry)((ProjectInternal)project).services.get(ToolingModelBuilderRegistry.class)
  51. process(registry)
  52. }
  53.  
  54. void process(ToolingModelBuilderRegistry registry) {
  55. ToolingModelBuilderRegistry rootRegistry = registry
  56. while (rootRegistry.hasProperty('parent') && rootRegistry.parent != null) {
  57. rootRegistry = rootRegistry.parent
  58. }
  59.  
  60. boolean alreadySeen = !processedRegistries.addIfAbsent(rootRegistry)
  61. if (alreadySeen || extraModelBuilderIsRegistered(rootRegistry)) {
  62. return
  63. }
  64. rootRegistry.register(extraModelBuilderInstance)
  65. }
  66.  
  67. private static boolean extraModelBuilderIsRegistered(registry) {
  68. registry.hasProperty('builders') && registry.builders instanceof Collection &&
  69. (registry.builders as Collection).find { it instanceof ExtraModelBuilder } != null
  70. }
  71.  
  72. @Override
  73. void afterEvaluate(Project project, ProjectState state) { }
  74. }
  75.  
Add Comment
Please, Sign In to add comment