提交 438525df 编写于 作者: I Ilya Chernikov

Proper import of the gradle part:

- using non-shadowed libs
- stop preshgadowing plugins
- switch to project dependencies
- add annotation processing module
上级 3caa426b
......@@ -12,10 +12,13 @@ dependencies {
// Use this dependency instead when building apart from the other modules:
// compile "org.jetbrains.kotlin:kotlin-gradle-plugin-api:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
compile project(':kotlin-test::kotlin-test-junit')
compileOnly "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compileOnly "org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlin_version"
compileOnly project(':compiler')
compileOnly project(':compiler:plugin-api')
compileOnly project(':compiler:cli-common')
compileOnly project(':compiler:cli')
compileOnly "org.jetbrains.kotlin:gradle-api:1.6"
}
\ No newline at end of file
......@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.compiler.plugin.CliOption
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.compiler.plugin.CliOptionProcessingException
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
import org.jetbrains.kotlin.com.intellij.mock.MockProject
import com.intellij.mock.MockProject
public object ExampleConfigurationKeys {
public val EXAMPLE_KEY: CompilerConfigurationKey<String> = CompilerConfigurationKey.create<String>("example argument")
......
......@@ -12,27 +12,28 @@ repositories {
dependencies {
compile project(':kotlin-gradle-plugin-api')
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compileOnly "org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlin_version"
compile project(':kotlin-stdlib')
compileOnly project(path: ':compiler', configuration: 'embeddableCompilerJar')
compile project(':plugins:allopen-cli')
compileOnly 'org.jetbrains.kotlin:gradle-api:1.6'
}
def originalSrc = "$kotlin_root/plugins/allopen/allopen-cli/src"
def targetSrc = file("$buildDir/allopen-target-src")
//def targetSrc = file("$buildDir/allopen-target-src")
//
//task preprocessSources(type: Copy) {
// from originalSrc
// into targetSrc
// filter { it.replaceAll('(?<!\\.)com\\.intellij', 'org.jetbrains.kotlin.com.intellij') }
//}
task preprocessSources(type: Copy) {
from originalSrc
into targetSrc
filter { it.replaceAll('(?<!\\.)com\\.intellij', 'org.jetbrains.kotlin.com.intellij') }
}
sourceSets.main.java.srcDirs += targetSrc
//sourceSets.main.java.srcDirs += originalSrc
compileKotlin.dependsOn preprocessSources
//compileKotlin.dependsOn preprocessSources
jar {
from(targetSrc) { include("META-INF/**") }
from(originalSrc) { include("META-INF/**") }
}
pluginBundle {
......
/*
* 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.
*/
/*
* 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.
*/
apply { plugin("kotlin") }
dependencies {
val compile by configurations
val compileOnly by configurations
val testCompile by configurations
val testCompileOnly by configurations
val testRuntime by configurations
compile(project(":plugins:kapt3"))
compileOnly("org.jetbrains.kotlin:gradle-api:1.6")
compileOnly("com.android.tools.build:gradle:1.1.0")
compile(project(":kotlin-stdlib"))
testCompile(commonDep("junit:junit"))
}
configureKotlinProjectSourcesDefault()
configureKotlinProjectTestsDefault()
tasks.withType<Test> {
workingDir = projectDir
systemProperty("idea.is.unit.test", "true")
environment("NO_FS_ROOTS_ACCESS_CHECK", "true")
ignoreFailures = true
}
......@@ -10,7 +10,7 @@ repositories {
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile project(':kotlin-stdlib')
compileOnly 'org.jetbrains.kotlin:gradle-api:1.6'
compileOnly 'com.android.tools.build:gradle:0.4.2'
......
......@@ -14,10 +14,10 @@ dependencies {
testCompile project(':kotlin-gradle-subplugin-example')
testCompile project(':kotlin-allopen')
testCompile project (path: ':examples:annotation-processor-example')
testCompile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
testCompile "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
testCompile project (path: ':build-common', configuration: 'tests-jar')
testCompile project(path: ':examples:annotation-processor-example')
testCompile project(':kotlin-stdlib-jre8')
testCompile project(':plugins:android-extensions-compiler')
testCompile project(path: ':build-common', configuration: 'tests-jar')
testCompile 'org.jetbrains.kotlin:gradle-api:2.2'
}
......
......@@ -29,11 +29,14 @@ configurations {
dependencies {
compile project(':kotlin-gradle-plugin-api')
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-compiler-runner:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-annotation-processing:$kotlin_version"
compile project(':kotlin-stdlib')
compile project(':plugins:android-extensions-compiler')
// compile project(path: ':compiler', configuration: 'embeddableCompilerJar')
compile project(':build-common')
compile project(':compiler:compiler-runner')
compile project(":compiler:incremental-compilation-impl")
compile project(":compiler")
compile project(':kotlin-annotation-processing')
compileOnly 'com.android.tools.build:gradle:2.0.0'
compileOnly 'org.codehaus.groovy:groovy-all:2.3.9'
......@@ -44,7 +47,7 @@ dependencies {
agp25CompileOnly gradleApi()
testCompile project (path: ':build-common', configuration: 'tests-jar')
testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
testCompile project(':kotlin-test::kotlin-test-junit')
testCompile "junit:junit:4.12"
}
......
......@@ -8,7 +8,7 @@ import com.android.ide.common.res2.ResourceSet
import org.gradle.api.Project
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.compile.AbstractCompile
import org.jetbrains.kotlin.com.intellij.util.ReflectionUtil
import com.intellij.util.ReflectionUtil
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin
import org.jetbrains.kotlin.gradle.internal.Kapt3KotlinGradleSubplugin
import org.jetbrains.kotlin.gradle.internal.KaptTask
......
......@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.config.Services
import org.jetbrains.kotlin.daemon.client.CompileServiceSession
import org.jetbrains.kotlin.daemon.common.*
......
......@@ -27,7 +27,7 @@ import org.gradle.api.Project
import org.gradle.api.UnknownDomainObjectException
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.compile.AbstractCompile
import org.jetbrains.kotlin.com.intellij.openapi.util.text.StringUtil.*
import com.intellij.openapi.util.text.StringUtil.*
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.android.AndroidGradleWrapper
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
......
......@@ -22,14 +22,14 @@ import org.gradle.api.UnknownDomainObjectException
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.com.intellij.lang.Language
import org.jetbrains.kotlin.com.intellij.openapi.util.Disposer
import org.jetbrains.kotlin.com.intellij.psi.PsiFileFactory
import org.jetbrains.kotlin.com.intellij.psi.PsiJavaFile
import org.jetbrains.kotlin.com.intellij.psi.impl.PsiFileFactoryImpl
import org.jetbrains.kotlin.config.CompilerConfiguration
//import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
//import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
//import com.intellij.lang.Language
//import com.intellij.openapi.util.Disposer
//import com.intellij.psi.PsiFileFactory
//import com.intellij.psi.PsiJavaFile
//import com.intellij.psi.impl.PsiFileFactoryImpl
//import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
......@@ -75,9 +75,9 @@ internal fun Project.initKapt(
kotlinAfterJavaTask.source(kaptManager.aptOutputDir)
subpluginEnvironment.addSubpluginOptions(this, kotlinAfterJavaTask, javaTask, null, androidProjectHandler, null)
javaTask.doLast {
moveGeneratedJavaFilesToCorrespondingDirectories(kaptManager.aptOutputDir)
}
// javaTask.doLast {
// moveGeneratedJavaFilesToCorrespondingDirectories(kaptManager.aptOutputDir)
// }
} else {
kotlinAfterJavaTask = null
kotlinTask.logger.kotlinDebug("kapt: Class file stubs are not used")
......@@ -392,27 +392,27 @@ class AnnotationProcessingManager(
// Previously this worked because generated files were added to classpath.
// However in that case incremental compilation worked unreliable with generated files.
// The solution is to post-process generated java files and move them to corresponding packages
fun moveGeneratedJavaFilesToCorrespondingDirectories(generatedJavaSourceRoot: File) {
val javaFiles = generatedJavaSourceRoot.walk().filter { it.extension.equals("java", ignoreCase = true) }.toList()
if (javaFiles.isEmpty()) return
val rootDisposable = Disposer.newDisposable()
val configuration = CompilerConfiguration()
val environment = KotlinCoreEnvironment.createForProduction(rootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)
val project = environment.project
val psiFileFactory = PsiFileFactory.getInstance(project) as PsiFileFactoryImpl
for (javaFile in javaFiles) {
val psiFile = psiFileFactory.createFileFromText(javaFile.nameWithoutExtension, Language.findLanguageByID("JAVA")!!, javaFile.readText())
val packageName = (psiFile as? PsiJavaFile)?.packageName ?: continue
val expectedDir = File(generatedJavaSourceRoot, packageName.replace('.', '/'))
val expectedFile = File(expectedDir, javaFile.name)
if (javaFile != expectedFile) {
expectedFile.parentFile.mkdirs()
javaFile.copyTo(expectedFile, overwrite = true)
javaFile.delete()
}
}
}
\ No newline at end of file
//fun moveGeneratedJavaFilesToCorrespondingDirectories(generatedJavaSourceRoot: File) {
// val javaFiles = generatedJavaSourceRoot.walk().filter { it.extension.equals("java", ignoreCase = true) }.toList()
//
// if (javaFiles.isEmpty()) return
//
// val rootDisposable = Disposer.newDisposable()
// val configuration = CompilerConfiguration()
// val environment = KotlinCoreEnvironment.createForProduction(rootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)
// val project = environment.project
// val psiFileFactory = PsiFileFactory.getInstance(project) as PsiFileFactoryImpl
//
// for (javaFile in javaFiles) {
// val psiFile = psiFileFactory.createFileFromText(javaFile.nameWithoutExtension, Language.findLanguageByID("JAVA")!!, javaFile.readText())
// val packageName = (psiFile as? PsiJavaFile)?.packageName ?: continue
// val expectedDir = File(generatedJavaSourceRoot, packageName.replace('.', '/'))
// val expectedFile = File(expectedDir, javaFile.name)
//
// if (javaFile != expectedFile) {
// expectedFile.parentFile.mkdirs()
// javaFile.copyTo(expectedFile, overwrite = true)
// javaFile.delete()
// }
// }
//}
\ No newline at end of file
......@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.gradle.internal
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.SourceTask
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
import org.jetbrains.kotlin.gradle.tasks.FilteringSourceRootsContainer
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
......
......@@ -7,7 +7,7 @@ import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment
import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl
......
......@@ -21,8 +21,8 @@ import org.gradle.BuildResult
import org.gradle.api.invocation.Gradle
import org.gradle.api.logging.Logging
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.com.intellij.openapi.vfs.impl.ZipHandler
import org.jetbrains.kotlin.com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
import com.intellij.openapi.vfs.impl.ZipHandler
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
import org.jetbrains.kotlin.compilerRunner.DELETED_SESSION_FILE_PREFIX
import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
......
......@@ -23,9 +23,9 @@ import org.gradle.api.tasks.SourceSetOutput
import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.com.intellij.openapi.util.text.StringUtil.compareVersionNumbers
import org.jetbrains.kotlin.com.intellij.util.ReflectionUtil
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.text.StringUtil.compareVersionNumbers
import com.intellij.util.ReflectionUtil
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl
import org.jetbrains.kotlin.gradle.internal.*
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.getKaptGeneratedClassesDir
......
......@@ -3,7 +3,7 @@ package org.jetbrains.kotlin.gradle.tasks
import org.gradle.api.file.FileTree
import org.gradle.api.file.SourceDirectorySet
import org.gradle.api.logging.Logger
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
import org.jetbrains.kotlin.incremental.isJavaFile
import org.jetbrains.kotlin.incremental.isKotlinFile
......
......@@ -23,7 +23,7 @@ import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
import org.gradle.api.tasks.incremental.InputFileDetails
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil.isAncestor
import com.intellij.openapi.util.io.FileUtil.isAncestor
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
import java.io.File
import java.io.ObjectInputStream
......
......@@ -18,6 +18,6 @@ package org.jetbrains.kotlin.gradle.utils
import java.util.*
// Based on org.jetbrains.kotlin.com.intellij.openapi.util.SystemInfoRt from Intellij platform
// Based on com.intellij.openapi.util.SystemInfoRt from Intellij platform
internal val isWindows: Boolean =
System.getProperty("os.name")?.toLowerCase(Locale.US)?.startsWith("windows") ?: false
......@@ -21,7 +21,7 @@ import org.gradle.api.Task
import org.gradle.api.logging.Logger
import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistryProvider
......
......@@ -16,7 +16,7 @@
package org.jetbrains.kotlin.incremental.multiproject
import org.jetbrains.kotlin.com.intellij.util.io.DataExternalizer
import com.intellij.util.io.DataExternalizer
import org.jetbrains.kotlin.incremental.DirtyData
import org.jetbrains.kotlin.incremental.LookupSymbol
import org.jetbrains.kotlin.incremental.storage.BasicStringMap
......
......@@ -18,27 +18,28 @@ repositories {
dependencies {
compile project(':kotlin-gradle-plugin-api')
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compileOnly "org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlin_version"
compile project(':kotlin-stdlib')
compileOnly project(':compiler')
compile project(':plugins:noarg-cli')
compileOnly 'org.jetbrains.kotlin:gradle-api:1.6'
}
def originalSrc = "$kotlin_root/plugins/noarg/noarg-cli/src"
def targetSrc = file("$buildDir/noarg-target-src")
//def targetSrc = file("$buildDir/noarg-target-src")
//
//task preprocessSources(type: Copy) {
// from originalSrc
// into targetSrc
// filter { it.replaceAll('(?<!\\.)com\\.intellij', 'org.jetbrains.kotlin.com.intellij') }
//}
task preprocessSources(type: Copy) {
from originalSrc
into targetSrc
filter { it.replaceAll('(?<!\\.)com\\.intellij', 'org.jetbrains.kotlin.com.intellij') }
}
sourceSets.main.java.srcDirs += targetSrc
//sourceSets.main.java.srcDirs += originalSrc
compileKotlin.dependsOn preprocessSources
//compileKotlin.dependsOn preprocessSources
jar {
from(targetSrc) { include("META-INF/**") }
from(originalSrc) { include("META-INF/**") }
}
pluginBundle {
......
......@@ -18,25 +18,26 @@ repositories {
dependencies {
compile project(':kotlin-gradle-plugin-api')
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compileOnly "org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlin_version"
compile project(':kotlin-stdlib')
compileOnly project(':compiler')
compile project(':plugins:sam-with-receiver-cli')
compileOnly 'org.jetbrains.kotlin:gradle-api:1.6'
}
def originalSrc = "$kotlin_root/plugins/sam-with-receiver/sam-with-receiver-cli/src"
def targetSrc = file("$buildDir/sam-with-receiver-target-src")
//def targetSrc = file("$buildDir/sam-with-receiver-target-src")
//
//task preprocessSources(type: Copy) {
// from originalSrc
// into targetSrc
// filter { it.replaceAll('(?<!\\.)com\\.intellij', 'org.jetbrains.kotlin.com.intellij') }
//}
task preprocessSources(type: Copy) {
from originalSrc
into targetSrc
filter { it.replaceAll('(?<!\\.)com\\.intellij', 'org.jetbrains.kotlin.com.intellij') }
}
sourceSets.main.java.srcDirs += targetSrc
//sourceSets.main.java.srcDirs += originalSrc
compileKotlin.dependsOn preprocessSources
//compileKotlin.dependsOn preprocessSources
jar {
from(targetSrc) { include("META-INF/**") }
from(originalSrc) { include("META-INF/**") }
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册