diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CompilerOptionsProjectIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CompilerOptionsProjectIT.kt index e706e2e3ff4..3b2a10a113e 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CompilerOptionsProjectIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CompilerOptionsProjectIT.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.gradle.testbase.* import org.junit.jupiter.api.DisplayName import kotlin.io.path.appendText +@DisplayName("Project level compiler options DSL") class CompilerOptionsProjectIT : KGPBaseTest() { @DisplayName("Jvm project compiler options are passed to compilation") @@ -213,4 +214,43 @@ class CompilerOptionsProjectIT : KGPBaseTest() { } } } + + @DisplayName("Project level DSL is available in android project") + @AndroidGradlePluginTests + @GradleAndroidTest + fun androidProject( + gradleVersion: GradleVersion, + agpVersion: String, + jdk: JdkVersions.ProvidedJdk + ) { + project( + "AndroidSimpleApp", + gradleVersion, + buildJdk = jdk.location, + buildOptions = defaultBuildOptions.copy(androidVersion = agpVersion, logLevel = LogLevel.DEBUG) + ) { + buildGradle.appendText( + //language=Groovy + """ + | + |kotlin { + | compilerOptions { + | javaParameters = true + | } + |} + """.trimMargin() + ) + + build("compileDebugKotlin") { + assertTasksExecuted(":compileDebugKotlin") + + val compilationArgs = output.lineSequence().first { it.contains("Kotlin compiler args:") } + + assert(compilationArgs.contains("-java-parameters")) { + printBuildOutput() + "Compiler arguments does not contain '-java-parameters': $compilationArgs" + } + } + } + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/build.gradle deleted file mode 100644 index 2d1a756563a..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/build.gradle +++ /dev/null @@ -1,51 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -dependencies { - implementation project(':Lib') - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - testImplementation'junit:junit:4.13.2' -} - -android { - compileSdkVersion 22 - - sourceSets { - main.java.srcDirs += 'src/main/java2' - main.kotlin.srcDirs += 'root/kotlin' - test.kotlin.srcDirs += 'src/test/kotlin' - } - - defaultConfig { - minSdkVersion 7 - targetSdkVersion 22 - - jackOptions { enabled true } - } - - buildTypes { - jnidebug.initWith(buildTypes.debug) - jnidebug { - applicationIdSuffix ".jnidebug" - jniDebuggable true - } - } - - productFlavors { - flavor1 { - applicationId "com.example.flavor1" - versionCode 20 - } - - flavor2 { - applicationId "com.example.flavor2" - minSdkVersion 14 - } - } - - publishNonDefault true - - kotlinOptions { - noJdk = true - } -} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/root/kotlin/org/jetbrains/kotlin/gradle/test/androidalfa/MainActivity2.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/root/kotlin/org/jetbrains/kotlin/gradle/test/androidalfa/MainActivity2.kt deleted file mode 100644 index b9002bbcb86..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/root/kotlin/org/jetbrains/kotlin/gradle/test/androidalfa/MainActivity2.kt +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.gradle.test.androidalfa - -import android.content.Intent -import android.os.Bundle -import android.app.Activity -import android.view.Menu -import android.view.View -import android.widget.Button -import org.jetbrains.kotlin.gradle.test.androidalfa.R -import lib.* - -open class MainActivity2: Activity() { - - protected override fun onCreate(savedInstanceState: Bundle?): Unit { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main2) - libUtil() - - var next: Button = findViewById(R.id.Button02) as Button - next.setOnClickListener(object: View.OnClickListener { - public override fun onClick(view: View): Unit { - val intent: Intent = Intent() - setResult(Activity.RESULT_OK, intent) - finish() - } - }) - } - - public override fun onCreateOptionsMenu(menu: Menu?): Boolean { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.main_activity2, menu); - return true - } - -} - -fun foo() { - bar() -} - -fun bar() { - -} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/androidTest/java/org/jetbrains/kotlin/gradle/InternalDummyApplicationTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/androidTest/java/org/jetbrains/kotlin/gradle/InternalDummyApplicationTest.kt deleted file mode 100644 index 95e0e22de67..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/androidTest/java/org/jetbrains/kotlin/gradle/InternalDummyApplicationTest.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.gradle - -import android.app.Application -import android.test.ApplicationTestCase - -class InternalDummyApplicationTest : ApplicationTestCase(Application::class.java) { - init { - val dummy = InternalDummy("World") - assert("Hello World!" == dummy.greeting) { "Expected: 'Hello World!'. Actual value: ${dummy.greeting}" } - - // Check that the Java sources from the tested variant are available - val bar = foo.FooJavaClass() - } -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/AndroidManifest.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/AndroidManifest.xml deleted file mode 100644 index 377e183029c..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/AndroidManifest.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/foo/FooJavaClass.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/foo/FooJavaClass.java deleted file mode 100644 index 63188d67900..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/foo/FooJavaClass.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package foo; - -import bar.*; - -public class FooJavaClass { - void f() { - new FooKotlinClass(); - new BarJavaClass(); - new BarKotlinClass(); - } -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/foo/FooKotlinClass.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/foo/FooKotlinClass.kt deleted file mode 100644 index 2b2d30a4afc..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/foo/FooKotlinClass.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package foo - -import bar.* - -class FooKotlinClass { - fun f() { - FooJavaClass() - BarJavaClass() - BarKotlinClass() - } -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/org/jetbrains/kotlin/gradle/InternalDummy.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/org/jetbrains/kotlin/gradle/InternalDummy.kt deleted file mode 100644 index a1704259dfa..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/org/jetbrains/kotlin/gradle/InternalDummy.kt +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.gradle - -internal class InternalDummy(private val name: String) { - internal val greeting: String - get() = "Hello $name!" -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/org/jetbrains/kotlin/gradle/test/androidalfa/MainActivity.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/org/jetbrains/kotlin/gradle/test/androidalfa/MainActivity.java deleted file mode 100644 index 38f3ff2000c..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java/org/jetbrains/kotlin/gradle/test/androidalfa/MainActivity.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.gradle.test.androidalfa; - -import android.content.Intent; -import android.os.Bundle; -import android.app.Activity; -import android.view.Menu; -import android.view.View; -import android.widget.Button; - -import org.jetbrains.kotlin.gradle.test.androidalfa.R; - -public class MainActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - Button next = (Button) findViewById(R.id.Button01); - next.setOnClickListener(new View.OnClickListener() { - public void onClick(View view) { - Intent myIntent = new Intent(view.getContext(), MainActivity2.class); - startActivityForResult(myIntent, 0); - } - }); - } - - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.main, menu); - return true; - } - -} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java2/bar/BarJavaClass.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java2/bar/BarJavaClass.java deleted file mode 100644 index a3012ee2d80..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java2/bar/BarJavaClass.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package bar; - -import foo.*; - -public class BarJavaClass { - void f() { - new BarKotlinClass(); - new FooJavaClass(); - new FooKotlinClass(); - } -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java2/bar/BarKotlinClass.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java2/bar/BarKotlinClass.kt deleted file mode 100644 index b14ebaa1e17..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/java2/bar/BarKotlinClass.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package bar - -import foo.* - -class BarKotlinClass { - fun f() { - BarJavaClass() - FooJavaClass() - FooKotlinClass() - } -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/layout/activity_main.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/layout/activity_main.xml deleted file mode 100644 index ede57c3902f..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/layout/activity_main2.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/layout/activity_main2.xml deleted file mode 100644 index d707536a92f..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/layout/activity_main2.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/menu/main.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/menu/main.xml deleted file mode 100644 index f3b10b6c021..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/menu/main.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/menu/main_activity2.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/menu/main_activity2.xml deleted file mode 100644 index f3b10b6c021..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/menu/main_activity2.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/values/dimens.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/values/dimens.xml deleted file mode 100644 index 47c82246738..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/values/dimens.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 16dp - 16dp - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/values/strings.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/values/strings.xml deleted file mode 100644 index afffaa8a836..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/values/strings.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - AndroidAlfa - Settings - Hello world! - MainActivity1 - MainActivity2 - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/values/styles.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/values/styles.xml deleted file mode 100644 index 6ce89c7ba43..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/main/res/values/styles.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/test/kotlin/org/jetbrains/kotlin/gradle/InternalDummyTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/test/kotlin/org/jetbrains/kotlin/gradle/InternalDummyTest.kt deleted file mode 100644 index 47f1e3a35ec..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Android/src/test/kotlin/org/jetbrains/kotlin/gradle/InternalDummyTest.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.gradle - -import org.junit.Assert -import org.junit.Test - -class InternalDummyTest { - @Test - fun testInternalDummy() { - val dummy = InternalDummy("World") - Assert.assertEquals("Hello World!", dummy.greeting) - } -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/build.gradle deleted file mode 100644 index 064139bb035..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' - -dependencies { - implementation files('libs/android-support-v4.jar') - // unused but needed for IncrementalCompilationMultiProjectIT.testAndroid to check if non-local dependency affects IC - implementation 'io.reactivex:rxjava:1.1.9' - implementation 'com.loopj.android:android-async-http:1.4.9' -} - -android { - compileSdkVersion 22 - - defaultConfig { - minSdkVersion 7 - targetSdkVersion 22 - } -} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/libs/android-support-v4.jar b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/libs/android-support-v4.jar deleted file mode 100644 index 428bdbc02a1..00000000000 Binary files a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/libs/android-support-v4.jar and /dev/null differ diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/AndroidManifest.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/AndroidManifest.xml deleted file mode 100644 index 2912d2b0ef7..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/ic_launcher-web.png b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/ic_launcher-web.png deleted file mode 100644 index 4b14629c415..00000000000 Binary files a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/ic_launcher-web.png and /dev/null differ diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/java/org/jetbrains/kotlin/gradle/test/android/libalfa/LibMainActivity.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/java/org/jetbrains/kotlin/gradle/test/android/libalfa/LibMainActivity.java deleted file mode 100644 index 4c2b245d2da..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/java/org/jetbrains/kotlin/gradle/test/android/libalfa/LibMainActivity.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.gradle.test.android.libalfa; - -import android.os.Bundle; -import android.app.Activity; -import android.view.Menu; - -public class LibMainActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.lib_activity_main); - } - - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.lib_main, menu); - return true; - } - -} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/kotlin/lib/libUtil.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/kotlin/lib/libUtil.kt deleted file mode 100644 index 3b1c9b02be4..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/kotlin/lib/libUtil.kt +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package lib - -fun libUtil(): String = "libUtil" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-hdpi/ic_launcher.png b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-hdpi/ic_launcher.png deleted file mode 100644 index c1b44ccc80f..00000000000 Binary files a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-hdpi/ic_launcher.png and /dev/null differ diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-mdpi/ic_launcher.png b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-mdpi/ic_launcher.png deleted file mode 100644 index a1bf709d3b4..00000000000 Binary files a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-mdpi/ic_launcher.png and /dev/null differ diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-xhdpi/ic_launcher.png b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-xhdpi/ic_launcher.png deleted file mode 100644 index 3b5ae5b2add..00000000000 Binary files a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-xhdpi/ic_launcher.png and /dev/null differ diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-xxhdpi/ic_launcher.png b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-xxhdpi/ic_launcher.png deleted file mode 100644 index b7df51b1eec..00000000000 Binary files a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/drawable-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/layout/lib_activity_main.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/layout/lib_activity_main.xml deleted file mode 100644 index 99e19f3803c..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/layout/lib_activity_main.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/menu/lib_main.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/menu/lib_main.xml deleted file mode 100644 index f3b10b6c021..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/menu/lib_main.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-sw600dp/dimens.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-sw600dp/dimens.xml deleted file mode 100644 index 886b05fa964..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-sw600dp/dimens.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-sw720dp-land/dimens.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-sw720dp-land/dimens.xml deleted file mode 100644 index 00059fc5c3f..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-sw720dp-land/dimens.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 128dp - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-v11/styles.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-v11/styles.xml deleted file mode 100644 index 3c02242ad04..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-v11/styles.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-v14/styles.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-v14/styles.xml deleted file mode 100644 index a91fd0372b2..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values-v14/styles.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values/dimens.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values/dimens.xml deleted file mode 100644 index 47c82246738..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values/dimens.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 16dp - 16dp - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values/strings.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values/strings.xml deleted file mode 100644 index 4a866fdadcb..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values/strings.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - LibAlfa - Settings - Hello world! - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values/styles.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values/styles.xml deleted file mode 100644 index 6ce89c7ba43..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/Lib/src/main/res/values/styles.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/build.gradle deleted file mode 100644 index c261a0d740b..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - } - - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "com.android.tools.build:gradle:$android_tools_version" - } -} - -allprojects { - repositories { - mavenLocal() - mavenCentral() - } -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/gradle.properties deleted file mode 100644 index 59b261a6689..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -org.gradle.jvmargs=-XX:MaxPermSize=512m \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/settings.gradle deleted file mode 100644 index d399c228f26..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidJackProject/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':Android', ':Lib' diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidProject/Android/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidProject/Android/build.gradle index 04b6a8c50e4..9f7ad578ad9 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidProject/Android/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidProject/Android/build.gradle @@ -40,11 +40,6 @@ android { } publishNonDefault true - - kotlinOptions { - noJdk = true - } - lintOptions.abortOnError = false } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidSimpleApp/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidSimpleApp/build.gradle index 32c3c5a1a39..b00ba0036ad 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidSimpleApp/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidSimpleApp/build.gradle @@ -5,6 +5,7 @@ plugins { repositories { mavenLocal() + google() mavenCentral() } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt index ffc34291848..ce55d0c6d3b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt @@ -406,6 +406,17 @@ abstract class KotlinAndroidProjectExtension(project: Project) : KotlinSingleTar internal set open fun target(body: KotlinAndroidTarget.() -> Unit) = target.run(body) + + val compilerOptions: KotlinJvmCompilerOptions = + project.objects.newInstance(KotlinJvmCompilerOptionsDefault::class.java) + + fun compilerOptions(configure: Action) { + configure.execute(compilerOptions) + } + + fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) { + configure(compilerOptions) + } } enum class NativeCacheKind(val produce: String?, val outputKind: CompilerOutputKind?) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinAndroidPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinAndroidPlugin.kt index 521cc081742..84cdb4c5a8a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinAndroidPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinAndroidPlugin.kt @@ -5,14 +5,18 @@ package org.jetbrains.kotlin.gradle.plugin +import com.android.build.gradle.BaseExtension import org.gradle.api.GradleException import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.internal.customizeKotlinDependencies import org.jetbrains.kotlin.gradle.model.builder.KotlinModelBuilder +import org.jetbrains.kotlin.gradle.plugin.KotlinJvmPlugin.Companion.configureCompilerOptionsForTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget import org.jetbrains.kotlin.gradle.plugin.mpp.applyUserDefinedAttributes import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider @@ -32,8 +36,21 @@ internal open class KotlinAndroidPlugin( KotlinAndroidTarget::class.java, "", project - ).also { - (project.kotlinExtension as KotlinAndroidProjectExtension).target = it + ).also { target -> + val kotlinAndroidExtension = project.kotlinExtension as KotlinAndroidProjectExtension + kotlinAndroidExtension.target = target + project.configureCompilerOptionsForTarget( + kotlinAndroidExtension.compilerOptions, + target.compilations + ) + kotlinAndroidExtension.compilerOptions.noJdk.value(true).disallowChanges() + + @Suppress("DEPRECATION") val kotlinOptions = object : KotlinJvmOptions { + override val options: KotlinJvmCompilerOptions + get() = kotlinAndroidExtension.compilerOptions + } + val ext = project.extensions.getByName("android") as BaseExtension + ext.addExtension(KOTLIN_OPTIONS_DSL_NAME, kotlinOptions) } } ) { androidTarget -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJvmPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJvmPlugin.kt index 75771756a73..c2f0e70e6bf 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJvmPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJvmPlugin.kt @@ -5,36 +5,51 @@ package org.jetbrains.kotlin.gradle.plugin -import com.android.build.gradle.* import org.gradle.api.* import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin -import org.jetbrains.kotlin.gradle.targets.js.ir.* import org.jetbrains.kotlin.gradle.tasks.* -import org.jetbrains.kotlin.gradle.tasks.configuration.* -import org.jetbrains.kotlin.gradle.utils.* const val PLUGIN_CLASSPATH_CONFIGURATION_NAME = "kotlinCompilerPluginClasspath" const val NATIVE_COMPILER_PLUGIN_CLASSPATH_CONFIGURATION_NAME = "kotlinNativeCompilerPluginClasspath" internal const val COMPILER_CLASSPATH_CONFIGURATION_NAME = "kotlinCompilerClasspath" internal const val KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME = "kotlinKlibCommonizerClasspath" -val KOTLIN_DSL_NAME = "kotlin" +const val KOTLIN_DSL_NAME = "kotlin" @Deprecated("Should be removed with 'platform.js' plugin removal") -val KOTLIN_JS_DSL_NAME = "kotlin2js" -val KOTLIN_OPTIONS_DSL_NAME = "kotlinOptions" - +const val KOTLIN_JS_DSL_NAME = "kotlin2js" +const val KOTLIN_OPTIONS_DSL_NAME = "kotlinOptions" internal open class KotlinJvmPlugin( registry: ToolingModelBuilderRegistry ) : AbstractKotlinPlugin(KotlinTasksProvider(), registry) { - companion object { + internal companion object { private const val targetName = "" // use empty suffix for the task names + + internal fun Project.configureCompilerOptionsForTarget( + extensionCompilerOptions: KotlinJvmCompilerOptions, + @Suppress("DEPRECATION") compilationsContainer: NamedDomainObjectContainer> + ) { + extensionCompilerOptions.verbose.convention(logger.isDebugEnabled) + compilationsContainer.configureEach { + val jvmCompilerOptions = it.compilerOptions.options as KotlinJvmCompilerOptions + KotlinJvmCompilerOptionsHelper.syncOptionsAsConvention( + from = extensionCompilerOptions, + into = jvmCompilerOptions + ) + jvmCompilerOptions.moduleName.convention( + extensionCompilerOptions.moduleName.orElse( + @Suppress("DEPRECATION") + project.providers.provider { it.moduleName } + ) + ) + } + } } override fun buildSourceSetProcessor(project: Project, compilation: KotlinCompilation<*>) = @@ -65,19 +80,10 @@ internal open class KotlinJvmPlugin( val kotlinExtension = project.kotlinExtension as KotlinJvmProjectExtension kotlinExtension.target = target - kotlinExtension.compilerOptions.verbose.convention(project.logger.isDebugEnabled) - target.compilations.configureEach { - KotlinJvmCompilerOptionsHelper.syncOptionsAsConvention( - from = kotlinExtension.compilerOptions, - into = it.compilerOptions.options - ) - it.compilerOptions.options.moduleName.convention( - kotlinExtension.compilerOptions.moduleName.orElse( - @Suppress("DEPRECATION") - project.providers.provider { it.moduleName } - ) - ) - } + project.configureCompilerOptionsForTarget( + kotlinExtension.compilerOptions, + target.compilations + ) super.apply(project) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidProjectHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidProjectHandler.kt index b4c205bf421..7ccb442e17c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidProjectHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidProjectHandler.kt @@ -59,14 +59,6 @@ internal class AndroidProjectHandler( applyKotlinAndroidSourceSetLayout(kotlinAndroidTarget) - val androidExtensionCompilerOptions = project.objects.newInstance() - androidExtensionCompilerOptions.noJdk.value(true).finalizeValueOnRead() - @Suppress("DEPRECATION") val kotlinOptions = object : KotlinJvmOptions { - override val options: KotlinJvmCompilerOptions - get() = androidExtensionCompilerOptions - } - ext.addExtension(KOTLIN_OPTIONS_DSL_NAME, kotlinOptions) - val plugin = androidPluginIds .asSequence() .mapNotNull { project.plugins.findPlugin(it) as? BasePlugin } @@ -84,11 +76,6 @@ internal class AndroidProjectHandler( // handlers might break when fired on a compilation that is not yet properly configured (e.g. KT-29964): compilationFactory.create(variantName).let { compilation -> setUpDependencyResolution(variant, compilation) - project.wireExtensionOptionsToCompilation( - androidExtensionCompilerOptions, - compilation.compilerOptions.options as KotlinJvmCompilerOptions - ) - preprocessVariant(variant, compilation, project, kotlinTasksProvider) @Suppress("UNCHECKED_CAST") @@ -115,38 +102,6 @@ internal class AndroidProjectHandler( addAndroidUnitTestTasksAsDependenciesToAllTest(project) } - private fun Project.wireExtensionOptionsToCompilation( - extensionCompilerOptions: KotlinJvmCompilerOptions, - compilationCompilerOptions: KotlinJvmCompilerOptions - ) { - // CompilerCommonToolOptions - compilationCompilerOptions.allWarningsAsErrors.convention(extensionCompilerOptions.allWarningsAsErrors) - compilationCompilerOptions.suppressWarnings.convention(extensionCompilerOptions.suppressWarnings) - compilationCompilerOptions.verbose.convention(extensionCompilerOptions.verbose) - compilationCompilerOptions.freeCompilerArgs.addAll(extensionCompilerOptions.freeCompilerArgs) - - // CompilerCommonOptions - compilationCompilerOptions.apiVersion.convention(extensionCompilerOptions.apiVersion) - compilationCompilerOptions.languageVersion.convention(extensionCompilerOptions.languageVersion) - compilationCompilerOptions.useK2.convention(extensionCompilerOptions.useK2) - - // CompilerJvmOptions - compilationCompilerOptions.javaParameters.convention(extensionCompilerOptions.javaParameters) - compilationCompilerOptions.noJdk.value(extensionCompilerOptions.noJdk).finalizeValue() - - // Special handling of jvmTarget to correctly override convention set by DefaultJavaToolchainSetter - // plus for 'moduleName' which could be overriden either by compilation or by task itself - // TODO: fix it once proper extension DSL will be available - afterEvaluate { - if (extensionCompilerOptions.jvmTarget.isPresent) { - compilationCompilerOptions.jvmTarget.set(extensionCompilerOptions.jvmTarget) - } - if (extensionCompilerOptions.moduleName.isPresent) { - compilationCompilerOptions.moduleName.set(extensionCompilerOptions.moduleName) - } - } - } - /** * The Android variants have their configurations extendsFrom relation set up in a way that only some of the configurations of the * variants propagate the dependencies from production variants to test ones. To make this dependency propagation work for the Kotlin diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt index 10e5c493612..023684ca8a0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt @@ -43,6 +43,7 @@ internal class KaptGenerateStubsConfig : BaseKotlinCompileConfig