mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-99822 Make: Reload java source in different encoding does not trigger incremental make; passing ProjectDescriptor instead of Context object as BuildTarget configuration calculation depends on model only
This commit is contained in:
@@ -18,6 +18,7 @@ package org.jetbrains.jps.builders;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.builders.storage.BuildDataPaths;
|
||||
import org.jetbrains.jps.cmdline.ProjectDescriptor;
|
||||
import org.jetbrains.jps.incremental.CompileContext;
|
||||
import org.jetbrains.jps.indices.IgnoredFileIndex;
|
||||
import org.jetbrains.jps.indices.ModuleExcludeIndex;
|
||||
@@ -46,7 +47,7 @@ public abstract class BuildTarget<R extends BuildRootDescriptor> {
|
||||
|
||||
public abstract Collection<BuildTarget<?>> computeDependencies(BuildTargetRegistry targetRegistry, TargetOutputIndex outputIndex);
|
||||
|
||||
public void writeConfiguration(CompileContext context, PrintWriter out) {
|
||||
public void writeConfiguration(ProjectDescriptor pd, PrintWriter out) {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.jetbrains.jps.builders.java.ExcludedJavaSourceRootProvider;
|
||||
import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType;
|
||||
import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor;
|
||||
import org.jetbrains.jps.builders.storage.BuildDataPaths;
|
||||
import org.jetbrains.jps.cmdline.ProjectDescriptor;
|
||||
import org.jetbrains.jps.indices.IgnoredFileIndex;
|
||||
import org.jetbrains.jps.indices.ModuleExcludeIndex;
|
||||
import org.jetbrains.jps.model.JpsModel;
|
||||
@@ -156,7 +157,7 @@ public final class ModuleBuildTarget extends JVMModuleBuildTarget<JavaSourceRoot
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeConfiguration(CompileContext context, PrintWriter out) {
|
||||
public void writeConfiguration(ProjectDescriptor pd, PrintWriter out) {
|
||||
final JpsModule module = getModule();
|
||||
|
||||
int fingerprint = getDependenciesFingerprint();
|
||||
@@ -172,7 +173,7 @@ public final class ModuleBuildTarget extends JVMModuleBuildTarget<JavaSourceRoot
|
||||
fingerprint += bytecodeTarget.hashCode();
|
||||
}
|
||||
|
||||
final CompilerEncodingConfiguration encodingConfig = context.getProjectDescriptor().getEncodingConfiguration();
|
||||
final CompilerEncodingConfiguration encodingConfig = pd.getEncodingConfiguration();
|
||||
final String encoding = encodingConfig.getPreferredModuleEncoding(module);
|
||||
if (encoding != null) {
|
||||
fingerprint += encoding.hashCode();
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.jetbrains.jps.builders.java.ExcludedJavaSourceRootProvider;
|
||||
import org.jetbrains.jps.builders.java.ResourceRootDescriptor;
|
||||
import org.jetbrains.jps.builders.java.ResourcesTargetType;
|
||||
import org.jetbrains.jps.builders.storage.BuildDataPaths;
|
||||
import org.jetbrains.jps.cmdline.ProjectDescriptor;
|
||||
import org.jetbrains.jps.indices.IgnoredFileIndex;
|
||||
import org.jetbrains.jps.indices.ModuleExcludeIndex;
|
||||
import org.jetbrains.jps.model.JpsModel;
|
||||
@@ -116,9 +117,9 @@ public final class ResourcesTarget extends JVMModuleBuildTarget<ResourceRootDesc
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeConfiguration(CompileContext context, PrintWriter out) {
|
||||
public void writeConfiguration(ProjectDescriptor pd, PrintWriter out) {
|
||||
int fingerprint = 0;
|
||||
final BuildRootIndex rootIndex = context.getProjectDescriptor().getBuildRootIndex();
|
||||
final BuildRootIndex rootIndex = pd.getBuildRootIndex();
|
||||
final List<ResourceRootDescriptor> roots = rootIndex.getTargetRoots(this, null);
|
||||
for (ResourceRootDescriptor root : roots) {
|
||||
fingerprint += FileUtil.fileHashCode(root.getRootFile());
|
||||
|
||||
+3
-2
@@ -22,6 +22,7 @@ import com.intellij.util.SmartList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.builders.*;
|
||||
import org.jetbrains.jps.builders.storage.BuildDataPaths;
|
||||
import org.jetbrains.jps.cmdline.ProjectDescriptor;
|
||||
import org.jetbrains.jps.incremental.CompileContext;
|
||||
import org.jetbrains.jps.incremental.artifacts.builders.LayoutElementBuildersRegistry;
|
||||
import org.jetbrains.jps.incremental.artifacts.impl.JpsArtifactUtil;
|
||||
@@ -106,9 +107,9 @@ public class ArtifactBuildTarget extends BuildTarget<ArtifactRootDescriptor> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeConfiguration(CompileContext context, PrintWriter out) {
|
||||
public void writeConfiguration(ProjectDescriptor pd, PrintWriter out) {
|
||||
out.println(StringUtil.notNullize(myArtifact.getOutputPath()));
|
||||
final BuildRootIndex rootIndex = context.getProjectDescriptor().getBuildRootIndex();
|
||||
final BuildRootIndex rootIndex = pd.getBuildRootIndex();
|
||||
for (ArtifactRootDescriptor descriptor : rootIndex.getTargetRoots(this, null)) {
|
||||
descriptor.writeConfiguration(out);
|
||||
}
|
||||
|
||||
+1
-1
@@ -126,7 +126,7 @@ public class BuildTargetConfiguration {
|
||||
private String saveToString(CompileContext context) {
|
||||
StringWriter out = new StringWriter();
|
||||
//noinspection IOResourceOpenedButNotSafelyClosed
|
||||
myTarget.writeConfiguration(context, new PrintWriter(out));
|
||||
myTarget.writeConfiguration(context.getProjectDescriptor(), new PrintWriter(out));
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.builders.*;
|
||||
import org.jetbrains.jps.builders.storage.BuildDataPaths;
|
||||
import org.jetbrains.jps.cmdline.ProjectDescriptor;
|
||||
import org.jetbrains.jps.incremental.CompileContext;
|
||||
import org.jetbrains.jps.indices.IgnoredFileIndex;
|
||||
import org.jetbrains.jps.indices.ModuleExcludeIndex;
|
||||
@@ -141,8 +142,8 @@ public class MavenResourcesTarget extends ModuleBasedTarget<MavenResourceRootDes
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeConfiguration(CompileContext context, PrintWriter out) {
|
||||
final BuildDataPaths dataPaths = context.getProjectDescriptor().getTargetsState().getDataPaths();
|
||||
public void writeConfiguration(ProjectDescriptor pd, PrintWriter out) {
|
||||
final BuildDataPaths dataPaths = pd.getTargetsState().getDataPaths();
|
||||
final MavenModuleResourceConfiguration configuration = getModuleResourcesConfiguration(dataPaths);
|
||||
if (configuration != null) {
|
||||
out.write(Integer.toHexString(configuration.computeConfigurationHash(isTests())));
|
||||
|
||||
Reference in New Issue
Block a user