Merge "Start targetting Java 11 for host projects" into androidx-main
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
index 0a1bfd2..223e991 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
@@ -56,6 +56,7 @@
import com.android.build.gradle.internal.tasks.ListingFileRedirectTask
import org.gradle.api.GradleException
import org.gradle.api.JavaVersion.VERSION_1_8
+import org.gradle.api.JavaVersion.VERSION_11
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
@@ -261,13 +262,18 @@
extension: AndroidXExtension,
plugin: KotlinBasePluginWrapper
) {
- project.tasks.withType(KotlinCompile::class.java).configureEach { task ->
- task.kotlinOptions.jvmTarget = "1.8"
- task.kotlinOptions.freeCompilerArgs += listOf(
- "-Xskip-metadata-version-check"
- )
- }
project.afterEvaluate {
+ project.tasks.withType(KotlinCompile::class.java).configureEach { task ->
+ if (extension.type.compilationTarget == CompilationTarget.HOST) {
+ task.kotlinOptions.jvmTarget = "11"
+ } else {
+ task.kotlinOptions.jvmTarget = "1.8"
+ }
+ task.kotlinOptions.freeCompilerArgs += listOf(
+ "-Xskip-metadata-version-check"
+ )
+ }
+
val isAndroidProject = project.plugins.hasPlugin(LibraryPlugin::class.java) ||
project.plugins.hasPlugin(AppPlugin::class.java)
// Explicit API mode is broken for Android projects
@@ -434,9 +440,18 @@
// Force Java 1.8 source- and target-compatibility for all Java libraries.
val javaExtension = project.extensions.getByType<JavaPluginExtension>()
- javaExtension.apply {
- sourceCompatibility = VERSION_1_8
- targetCompatibility = VERSION_1_8
+ project.afterEvaluate {
+ if (extension.type.compilationTarget == CompilationTarget.HOST) {
+ javaExtension.apply {
+ sourceCompatibility = VERSION_11
+ targetCompatibility = VERSION_11
+ }
+ } else {
+ javaExtension.apply {
+ sourceCompatibility = VERSION_1_8
+ targetCompatibility = VERSION_1_8
+ }
+ }
}
project.configureJavaCompilationWarnings(extension)
diff --git a/buildSrc/public/src/main/kotlin/androidx/build/LibraryType.kt b/buildSrc/public/src/main/kotlin/androidx/build/LibraryType.kt
index ac1dbf34..f34089e 100644
--- a/buildSrc/public/src/main/kotlin/androidx/build/LibraryType.kt
+++ b/buildSrc/public/src/main/kotlin/androidx/build/LibraryType.kt
@@ -81,6 +81,7 @@
val SAMPLES = Samples()
val LINT = Lint()
val COMPILER_DAEMON = CompilerDaemon()
+ val COMPILER_DAEMON_TEST = CompilerDaemonTest()
val COMPILER_PLUGIN = CompilerPlugin()
val GRADLE_PLUGIN = GradlePlugin()
val ANNOTATION_PROCESSOR = AnnotationProcessor()
@@ -127,6 +128,12 @@
RunApiTasks.No("Compiler Daemon (Host-only)"),
CompilationTarget.HOST
)
+ class CompilerDaemonTest : LibraryType(
+ Publish.NONE,
+ sourceJars = false,
+ RunApiTasks.No("Compiler Daemon (Host-only) Test"),
+ CompilationTarget.HOST
+ )
class CompilerPlugin : LibraryType(
Publish.SNAPSHOT_AND_RELEASE,
diff --git a/compose/compiler/compiler-daemon/integration-tests/build.gradle b/compose/compiler/compiler-daemon/integration-tests/build.gradle
index 09ac009..afda48a 100644
--- a/compose/compiler/compiler-daemon/integration-tests/build.gradle
+++ b/compose/compiler/compiler-daemon/integration-tests/build.gradle
@@ -13,7 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import androidx.build.Publish
+
+import androidx.build.LibraryType
plugins {
id("AndroidXPlugin")
@@ -30,7 +31,7 @@
androidx {
name = "AndroidX Compiler Daemon CLI Tests"
- publish = Publish.NONE
+ type = LibraryType.COMPILER_DAEMON_TEST
inceptionYear = "2021"
description = "Contains test for the compose compiler daemon"
}