Drop external annotations support in build tools
External annotations will only be considered in the IDE for additional
inspections based on more precise types in Java libraries
Original commit: 13c54a2678
This commit is contained in:
committed by
Dmitry Jemerov
parent
eec9d11a86
commit
1dcc772f45
-36
@@ -33,14 +33,6 @@ import org.jetbrains.jps.builders.logging.ProjectBuilderLogger;
|
||||
import org.jetbrains.jps.incremental.CompileContext;
|
||||
import org.jetbrains.jps.incremental.ModuleBuildTarget;
|
||||
import org.jetbrains.jps.incremental.ProjectBuildException;
|
||||
import org.jetbrains.jps.model.java.JpsAnnotationRootType;
|
||||
import org.jetbrains.jps.model.java.JpsJavaSdkType;
|
||||
import org.jetbrains.jps.model.library.JpsLibrary;
|
||||
import org.jetbrains.jps.model.library.sdk.JpsSdk;
|
||||
import org.jetbrains.jps.model.library.sdk.JpsSdkType;
|
||||
import org.jetbrains.jps.model.module.JpsDependencyElement;
|
||||
import org.jetbrains.jps.model.module.JpsModule;
|
||||
import org.jetbrains.jps.model.module.JpsSdkDependency;
|
||||
import org.jetbrains.kotlin.config.IncrementalCompilation;
|
||||
import org.jetbrains.kotlin.modules.KotlinModuleXmlBuilder;
|
||||
|
||||
@@ -92,7 +84,6 @@ public class KotlinBuilderModuleScriptGenerator {
|
||||
moduleSources,
|
||||
findSourceRoots(context, target),
|
||||
findClassPathRoots(target),
|
||||
findAnnotationRoots(target),
|
||||
(JavaModuleBuildTargetType) targetType,
|
||||
// this excludes the output directories from the class path, to be removed for true incremental compilation
|
||||
outputDirs
|
||||
@@ -149,33 +140,6 @@ public class KotlinBuilderModuleScriptGenerator {
|
||||
return result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static List<File> findAnnotationRoots(@NotNull ModuleBuildTarget target) {
|
||||
LinkedHashSet<File> annotationRootFiles = new LinkedHashSet<File>();
|
||||
|
||||
JpsModule module = target.getModule();
|
||||
JpsSdk sdk = module.getSdk(getSdkType(module));
|
||||
if (sdk != null) {
|
||||
annotationRootFiles.addAll(sdk.getParent().getFiles(JpsAnnotationRootType.INSTANCE));
|
||||
}
|
||||
|
||||
for (JpsLibrary library : getAllDependencies(target).getLibraries()) {
|
||||
annotationRootFiles.addAll(library.getFiles(JpsAnnotationRootType.INSTANCE));
|
||||
}
|
||||
|
||||
// JDK is stored locally on user's machine, so its configuration, including external annotation paths
|
||||
// is not available on TeamCity. When running on TeamCity, one has to provide extra path to JDK annotations
|
||||
String extraAnnotationsPaths = System.getProperty("jps.kotlin.extra.annotation.paths");
|
||||
if (extraAnnotationsPaths != null) {
|
||||
String[] paths = extraAnnotationsPaths.split(";");
|
||||
for (String path : paths) {
|
||||
annotationRootFiles.add(new File(path));
|
||||
}
|
||||
}
|
||||
|
||||
return CollectionsKt.toList(annotationRootFiles);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static JpsSdkType getSdkType(@NotNull JpsModule module) {
|
||||
for (JpsDependencyElement dependency : module.getDependenciesList().getDependencies()) {
|
||||
|
||||
@@ -45,7 +45,6 @@ public class KotlinModuleXmlBuilder {
|
||||
List<File> sourceFiles,
|
||||
List<File> javaSourceRoots,
|
||||
Collection<File> classpathRoots,
|
||||
List<File> annotationRoots,
|
||||
JavaModuleBuildTargetType targetType,
|
||||
Set<File> directoriesToFilterOut
|
||||
) {
|
||||
@@ -71,7 +70,6 @@ public class KotlinModuleXmlBuilder {
|
||||
|
||||
processJavaSourceRoots(javaSourceRoots);
|
||||
processClasspath(classpathRoots, directoriesToFilterOut);
|
||||
processAnnotationRoots(annotationRoots);
|
||||
|
||||
closeTag(p, MODULE);
|
||||
return this;
|
||||
@@ -102,13 +100,6 @@ public class KotlinModuleXmlBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
private void processAnnotationRoots(@NotNull List<File> files) {
|
||||
p.println("<!-- External annotations -->");
|
||||
for (File file : files) {
|
||||
p.println("<", EXTERNAL_ANNOTATIONS, " ", PATH, "=\"", getEscapedPath(file), "\"/>");
|
||||
}
|
||||
}
|
||||
|
||||
private void processJavaSourceRoots(@NotNull List<File> files) {
|
||||
p.println("<!-- Java source roots -->");
|
||||
for (File file : files) {
|
||||
|
||||
@@ -22,7 +22,6 @@ import org.jetbrains.jps.builders.JpsBuildTestCase;
|
||||
import org.jetbrains.jps.model.JpsDummyElement;
|
||||
import org.jetbrains.jps.model.JpsModuleRootModificationUtil;
|
||||
import org.jetbrains.jps.model.JpsProject;
|
||||
import org.jetbrains.jps.model.java.JpsAnnotationRootType;
|
||||
import org.jetbrains.jps.model.java.JpsJavaDependencyScope;
|
||||
import org.jetbrains.jps.model.java.JpsJavaLibraryType;
|
||||
import org.jetbrains.jps.model.java.JpsJavaSdkType;
|
||||
@@ -73,7 +72,6 @@ public abstract class AbstractKotlinJpsBuildTestCase extends JpsBuildTestCase {
|
||||
String versionString = System.getProperty("java.version");
|
||||
JpsTypedLibrary<JpsSdk<JpsDummyElement>> jdk = myModel.getGlobal().addSdk(name, homePath, versionString, JpsJavaSdkType.INSTANCE);
|
||||
jdk.addRoot(JpsPathUtil.pathToUrl(path), JpsOrderRootType.COMPILED);
|
||||
jdk.addRoot(JpsPathUtil.pathToUrl(PathUtil.getKotlinPathsForDistDirectory().getJdkAnnotationsPath().getAbsolutePath()), JpsAnnotationRootType.INSTANCE);
|
||||
return jdk.getProperties();
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,6 @@ public class ClasspathOrderTest : TestCaseWithTmpdir() {
|
||||
listOf(sourceDir),
|
||||
listOf(sourceDir),
|
||||
listOf(PathUtil.getKotlinPathsForDistDirectory().getRuntimePath()),
|
||||
listOf(),
|
||||
JavaModuleBuildTargetType.PRODUCTION,
|
||||
setOf()
|
||||
).asText().toString()
|
||||
|
||||
@@ -32,7 +32,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
|
||||
Arrays.asList(new File("s1"), new File("s2")),
|
||||
Collections.singletonList(new File("java")),
|
||||
Arrays.asList(new File("cp1"), new File("cp2")),
|
||||
Arrays.asList(new File("a1/f1"), new File("a2")),
|
||||
JavaModuleBuildTargetType.PRODUCTION,
|
||||
Collections.<File>emptySet()
|
||||
).asText().toString();
|
||||
@@ -46,7 +45,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
|
||||
Arrays.asList(new File("s1"), new File("s2")),
|
||||
Collections.<File>emptyList(),
|
||||
Arrays.asList(new File("cp1"), new File("cp2")),
|
||||
Arrays.asList(new File("a1/f1"), new File("a2")),
|
||||
JavaModuleBuildTargetType.PRODUCTION,
|
||||
Collections.singleton(new File("cp1"))
|
||||
).asText().toString();
|
||||
@@ -61,7 +59,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
|
||||
Arrays.asList(new File("s1"), new File("s2")),
|
||||
Collections.<File>emptyList(),
|
||||
Arrays.asList(new File("cp1"), new File("cp2")),
|
||||
Arrays.asList(new File("a1/f1"), new File("a2")),
|
||||
JavaModuleBuildTargetType.PRODUCTION,
|
||||
Collections.singleton(new File("cp1"))
|
||||
);
|
||||
@@ -71,7 +68,6 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
|
||||
Arrays.asList(new File("s12"), new File("s22")),
|
||||
Collections.<File>emptyList(),
|
||||
Arrays.asList(new File("cp12"), new File("cp22")),
|
||||
Arrays.asList(new File("a12/f12"), new File("a22")),
|
||||
JavaModuleBuildTargetType.TEST,
|
||||
Collections.singleton(new File("cp12"))
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user