mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote-tracking branch 'origin/master'
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(PrintWriter out, BuildDataPaths dataPaths, BuildRootIndex buildRootIndex) {
|
||||
public void writeConfiguration(ProjectDescriptor pd, PrintWriter out) {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -51,13 +51,13 @@ public class BuildOperations {
|
||||
if (context.isProjectRebuild()) {
|
||||
FSOperations.markDirtyFiles(context, target, timestamps, true, null, null);
|
||||
pd.fsState.markInitialScanPerformed(target);
|
||||
configuration.save();
|
||||
configuration.save(context);
|
||||
}
|
||||
else if (context.getScope().isRecompilationForced(target) || configuration.isTargetDirty(context) || configuration.outputRootWasDeleted(context)) {
|
||||
initTargetFSState(context, target, true);
|
||||
IncProjectBuilder.clearOutputFiles(context, target);
|
||||
pd.dataManager.cleanTargetStorages(target);
|
||||
configuration.save();
|
||||
configuration.save(context);
|
||||
}
|
||||
else if (!pd.fsState.isInitialScanPerformed(target)) {
|
||||
initTargetFSState(context, target, false);
|
||||
|
||||
@@ -23,11 +23,15 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.ProjectPaths;
|
||||
import org.jetbrains.jps.api.GlobalOptions;
|
||||
import org.jetbrains.jps.builders.*;
|
||||
import org.jetbrains.jps.builders.BuildTarget;
|
||||
import org.jetbrains.jps.builders.BuildTargetRegistry;
|
||||
import org.jetbrains.jps.builders.ModuleBasedTarget;
|
||||
import org.jetbrains.jps.builders.TargetOutputIndex;
|
||||
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;
|
||||
@@ -153,7 +157,7 @@ public final class ModuleBuildTarget extends JVMModuleBuildTarget<JavaSourceRoot
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeConfiguration(PrintWriter out, BuildDataPaths dataPaths, BuildRootIndex buildRootIndex) {
|
||||
public void writeConfiguration(ProjectDescriptor pd, PrintWriter out) {
|
||||
final JpsModule module = getModule();
|
||||
|
||||
int fingerprint = getDependenciesFingerprint();
|
||||
@@ -169,6 +173,12 @@ public final class ModuleBuildTarget extends JVMModuleBuildTarget<JavaSourceRoot
|
||||
fingerprint += bytecodeTarget.hashCode();
|
||||
}
|
||||
|
||||
final CompilerEncodingConfiguration encodingConfig = pd.getEncodingConfiguration();
|
||||
final String encoding = encodingConfig.getPreferredModuleEncoding(module);
|
||||
if (encoding != null) {
|
||||
fingerprint += encoding.hashCode();
|
||||
}
|
||||
|
||||
out.write(Integer.toHexString(fingerprint));
|
||||
}
|
||||
|
||||
|
||||
@@ -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,10 @@ public final class ResourcesTarget extends JVMModuleBuildTarget<ResourceRootDesc
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeConfiguration(PrintWriter out, BuildDataPaths dataPaths, BuildRootIndex buildRootIndex) {
|
||||
public void writeConfiguration(ProjectDescriptor pd, PrintWriter out) {
|
||||
int fingerprint = 0;
|
||||
final List<ResourceRootDescriptor> roots = buildRootIndex.getTargetRoots(this, null);
|
||||
final BuildRootIndex rootIndex = pd.getBuildRootIndex();
|
||||
final List<ResourceRootDescriptor> roots = rootIndex.getTargetRoots(this, null);
|
||||
for (ResourceRootDescriptor root : roots) {
|
||||
fingerprint += FileUtil.fileHashCode(root.getRootFile());
|
||||
fingerprint += root.getPackagePrefix().hashCode();
|
||||
|
||||
+4
-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,10 @@ public class ArtifactBuildTarget extends BuildTarget<ArtifactRootDescriptor> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeConfiguration(PrintWriter out, BuildDataPaths dataPaths, BuildRootIndex buildRootIndex) {
|
||||
public void writeConfiguration(ProjectDescriptor pd, PrintWriter out) {
|
||||
out.println(StringUtil.notNullize(myArtifact.getOutputPath()));
|
||||
for (ArtifactRootDescriptor descriptor : buildRootIndex.getTargetRoots(this, null)) {
|
||||
final BuildRootIndex rootIndex = pd.getBuildRootIndex();
|
||||
for (ArtifactRootDescriptor descriptor : rootIndex.getTargetRoots(this, null)) {
|
||||
descriptor.writeConfiguration(out);
|
||||
}
|
||||
}
|
||||
|
||||
+7
-7
@@ -65,7 +65,7 @@ public class BuildTargetConfiguration {
|
||||
}
|
||||
|
||||
public boolean isTargetDirty(CompileContext context) {
|
||||
final String currentState = getCurrentState();
|
||||
final String currentState = getCurrentState(context);
|
||||
if (!currentState.equals(myConfiguration)) {
|
||||
LOG.debug(myTarget + " configuration was changed:");
|
||||
LOG.debug("Old:");
|
||||
@@ -88,13 +88,13 @@ public class BuildTargetConfiguration {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void save() {
|
||||
public void save(CompileContext context) {
|
||||
try {
|
||||
File configFile = getConfigFile();
|
||||
FileUtil.createParentDirs(configFile);
|
||||
Writer out = new BufferedWriter(new FileWriter(configFile));
|
||||
try {
|
||||
String current = getCurrentState();
|
||||
String current = getCurrentState(context);
|
||||
out.write(current);
|
||||
myConfiguration = current;
|
||||
}
|
||||
@@ -115,18 +115,18 @@ public class BuildTargetConfiguration {
|
||||
return new File(myTargetsState.getDataPaths().getTargetDataRoot(myTarget), "nonexistent-outputs.dat");
|
||||
}
|
||||
|
||||
private String getCurrentState() {
|
||||
private String getCurrentState(CompileContext context) {
|
||||
String state = myCurrentState;
|
||||
if (state == null) {
|
||||
myCurrentState = state = saveToString();
|
||||
myCurrentState = state = saveToString(context);
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
private String saveToString() {
|
||||
private String saveToString(CompileContext context) {
|
||||
StringWriter out = new StringWriter();
|
||||
//noinspection IOResourceOpenedButNotSafelyClosed
|
||||
myTarget.writeConfiguration(new PrintWriter(out), myTargetsState.getDataPaths(), myTargetsState.getBuildRootIndex());
|
||||
myTarget.writeConfiguration(context.getProjectDescriptor(), new PrintWriter(out));
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
|
||||
+3
-4
@@ -10,10 +10,10 @@ import org.jetbrains.jps.android.AndroidJpsUtil;
|
||||
import org.jetbrains.jps.android.AndroidPlatform;
|
||||
import org.jetbrains.jps.android.model.JpsAndroidModuleExtension;
|
||||
import org.jetbrains.jps.builders.BuildRootDescriptor;
|
||||
import org.jetbrains.jps.builders.BuildRootIndex;
|
||||
import org.jetbrains.jps.builders.BuildTarget;
|
||||
import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType;
|
||||
import org.jetbrains.jps.builders.storage.BuildDataPaths;
|
||||
import org.jetbrains.jps.cmdline.ProjectDescriptor;
|
||||
import org.jetbrains.jps.incremental.CompileContext;
|
||||
import org.jetbrains.jps.incremental.ModuleBuildTarget;
|
||||
import org.jetbrains.jps.indices.IgnoredFileIndex;
|
||||
@@ -34,9 +34,8 @@ public class AndroidDexBuildTarget extends AndroidBuildTarget {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeConfiguration(PrintWriter out, BuildDataPaths dataPaths, BuildRootIndex buildRootIndex) {
|
||||
super.writeConfiguration(out, dataPaths, buildRootIndex);
|
||||
|
||||
public void writeConfiguration(ProjectDescriptor pd, PrintWriter out) {
|
||||
super.writeConfiguration(pd, out);
|
||||
// todo: write compiler settings
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@ import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.progress.Task;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.ThrowableComputable;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import git4idea.config.GitVcsApplicationSettings;
|
||||
@@ -42,6 +41,7 @@ import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/**
|
||||
* Various utility methods for the GutHub plugin.
|
||||
@@ -86,8 +86,8 @@ public class GithubUtil {
|
||||
|
||||
private static <T> T doAccessToGithubWithModalProgress(@NotNull final Project project,
|
||||
@NotNull final ThrowableComputable<T, IOException> computable) throws IOException {
|
||||
final Ref<T> result = new Ref<T>();
|
||||
final Ref<IOException> exception = new Ref<IOException>();
|
||||
final AtomicReference<T> result = new AtomicReference<T>();
|
||||
final AtomicReference<IOException> exception = new AtomicReference<IOException>();
|
||||
ProgressManager.getInstance().run(new Task.Modal(project, "Access to GitHub", true) {
|
||||
public void run(@NotNull ProgressIndicator indicator) {
|
||||
try {
|
||||
@@ -98,7 +98,8 @@ public class GithubUtil {
|
||||
}
|
||||
}
|
||||
});
|
||||
if (exception.isNull()) {
|
||||
//noinspection ThrowableResultOfMethodCallIgnored
|
||||
if (exception.get() == null) {
|
||||
return result.get();
|
||||
}
|
||||
throw exception.get();
|
||||
|
||||
+3
-1
@@ -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,7 +142,8 @@ public class MavenResourcesTarget extends ModuleBasedTarget<MavenResourceRootDes
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeConfiguration(PrintWriter out, BuildDataPaths dataPaths, BuildRootIndex buildRootIndex) {
|
||||
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