@@ -136,22 +136,46 @@ tasks.named<DependencyUpdatesTask>("dependencyUpdates").configure {
136136kotlin {
137137 jvmToolchain(21 )
138138 compilerOptions {
139- jvmTarget = JvmTarget .JVM_11
139+ jvmTarget = JvmTarget .JVM_1_8
140140 }
141141}
142142
143+ // DataFrame targets Java 8 for maximum compatibility.
144+ // This is, however, not always possible thanks to external dependencies.
145+ // In those cases, we default to Java 11.
146+ val modulesUsingJava11 = with (projects) {
147+ setOf (
148+ dataframeJupyter,
149+ dataframeGeo,
150+ examples.ideaExamples.titanic,
151+ )
152+ }.map { it.path }
153+
143154allprojects {
144- tasks.withType<KotlinCompile > {
145- compilerOptions {
146- jvmTarget = JvmTarget .JVM_11
147- freeCompilerArgs.add(" -Xjdk-release=11" )
155+ if (path in modulesUsingJava11) {
156+ tasks.withType<KotlinCompile > {
157+ compilerOptions {
158+ jvmTarget = JvmTarget .JVM_11
159+ freeCompilerArgs.add(" -Xjdk-release=11" )
160+ }
161+ }
162+ tasks.withType<JavaCompile > {
163+ sourceCompatibility = JavaVersion .VERSION_11 .toString()
164+ targetCompatibility = JavaVersion .VERSION_11 .toString()
165+ options.release.set(11 )
166+ }
167+ } else {
168+ tasks.withType<KotlinCompile > {
169+ compilerOptions {
170+ jvmTarget = JvmTarget .JVM_1_8
171+ freeCompilerArgs.add(" -Xjdk-release=8" )
172+ }
173+ }
174+ tasks.withType<JavaCompile > {
175+ sourceCompatibility = JavaVersion .VERSION_1_8 .toString()
176+ targetCompatibility = JavaVersion .VERSION_1_8 .toString()
177+ options.release.set(8 )
148178 }
149- }
150-
151- tasks.withType<JavaCompile > {
152- sourceCompatibility = JavaVersion .VERSION_11 .toString()
153- targetCompatibility = JavaVersion .VERSION_11 .toString()
154- options.release.set(11 )
155179 }
156180
157181 // Attempts to configure ktlint for each sub-project that uses the plugin
0 commit comments