ProjectExt.kt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package org.mjdev.gradle.extensions
  2. import org.gradle.accessors.dm.LibrariesForLibs
  3. import org.gradle.api.*
  4. import org.gradle.internal.impldep.jakarta.xml.bind.DatatypeConverter
  5. import org.gradle.kotlin.dsl.extra
  6. import org.gradle.kotlin.dsl.the
  7. @Suppress("HasPlatformType", "unused", "MemberVisibilityCanBePrivate")
  8. object ProjectExt {
  9. val Project.androidStudioVersion
  10. get() = project.extra.properties["android.studio.version"]
  11. val Project.runningFromAndroidStudio
  12. get() = DatatypeConverter.parseBoolean(project.extra.properties["android.injected.invoked.from.ide"].toString())
  13. val Project.isAndroidStudio
  14. get() = project.extra.properties.keys.contains("android.studio.version")
  15. val Project.libs
  16. get() = the<LibrariesForLibs>()
  17. // fun Project.apply(plugin: Provider<*>) =
  18. // project.plugins.apply(plugin.get().toString())
  19. // fun Project.apply(plugin: String) =
  20. // project.plugins.apply(plugin)
  21. // fun <T : Task> Project.createTask(name: String, configureAction: T.() -> Unit) = tasks.create(name).apply {
  22. // configureAction.invoke(this as T)
  23. // }
  24. fun Project.createTask(
  25. name: String,
  26. group: String = "mjdev",
  27. description: String = "",
  28. configureAction: Task.() -> Unit
  29. ) = tasks.create(name).apply {
  30. this.group = group
  31. this.description = description
  32. configureAction.invoke(this)
  33. }
  34. // inline fun <reified T : Plugin<Project>> Project.apply() =
  35. // project.plugins.apply(T::class.java)
  36. }