diff --git a/jps/jps-builders/proto/cmdline_remote_proto.proto b/jps/jps-builders/proto/cmdline_remote_proto.proto index 8ccaa5e2e139..92f674e3b140 100644 --- a/jps/jps-builders/proto/cmdline_remote_proto.proto +++ b/jps/jps-builders/proto/cmdline_remote_proto.proto @@ -50,7 +50,7 @@ message Message { required string type_id = 1; optional bool all_targets = 2; repeated string target_id = 3; - optional bool force_build = 4; + required bool force_build = 4; } enum Type { diff --git a/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineRemoteProto.java b/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineRemoteProto.java index c14fdfaeaa48..7ccb74531275 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineRemoteProto.java +++ b/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineRemoteProto.java @@ -2385,7 +2385,7 @@ public final class CmdlineRemoteProto { int getTargetIdCount(); String getTargetId(int index); - // optional bool force_build = 4; + // required bool force_build = 4; boolean hasForceBuild(); boolean getForceBuild(); } @@ -2464,7 +2464,7 @@ public final class CmdlineRemoteProto { return targetId_.get(index); } - // optional bool force_build = 4; + // required bool force_build = 4; public static final int FORCE_BUILD_FIELD_NUMBER = 4; private boolean forceBuild_; public boolean hasForceBuild() { @@ -2489,6 +2489,10 @@ public final class CmdlineRemoteProto { memoizedIsInitialized = 0; return false; } + if (!hasForceBuild()) { + memoizedIsInitialized = 0; + return false; + } memoizedIsInitialized = 1; return true; } @@ -2731,6 +2735,10 @@ public final class CmdlineRemoteProto { return false; } + if (!hasForceBuild()) { + + return false; + } return true; } @@ -2890,7 +2898,7 @@ public final class CmdlineRemoteProto { } - // optional bool force_build = 4; + // required bool force_build = 4; private boolean forceBuild_ ; public boolean hasForceBuild() { return ((bitField0_ & 0x00000008) == 0x00000008); diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaBuilderUtil.java b/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaBuilderUtil.java index 6118b318b701..63773402e79b 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaBuilderUtil.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaBuilderUtil.java @@ -139,7 +139,7 @@ public class JavaBuilderUtil { for (File file : newlyAffectedFiles) { FSOperations.markDirtyIfNotDeleted(context, file); } - additionalPassRequired = !isForcedRecompilationJava(context) && chunkContainsAffectedFiles(context, chunk, newlyAffectedFiles); + additionalPassRequired = isCompileJavaIncrementally(context) && chunkContainsAffectedFiles(context, chunk, newlyAffectedFiles); } } else { @@ -147,7 +147,7 @@ public class JavaBuilderUtil { LOG.info("Non-incremental mode: " + messageText); context.processMessage(new ProgressMessage(messageText)); - additionalPassRequired = !isForcedRecompilationJava(context); + additionalPassRequired = isCompileJavaIncrementally(context); FSOperations.markDirtyRecursively(context, chunk); } } @@ -191,12 +191,13 @@ public class JavaBuilderUtil { public static boolean isForcedRecompilationAllJavaModules(CompileContext context) { CompileScope scope = context.getScope(); - return scope.isRecompilationForcedForAllTargets(JavaModuleBuildTargetType.PRODUCTION) && scope.isRecompilationForcedForAllTargets(JavaModuleBuildTargetType.TEST); + return scope.isBuildForcedForAllTargets(JavaModuleBuildTargetType.PRODUCTION) && scope.isBuildForcedForAllTargets( + JavaModuleBuildTargetType.TEST); } - public static boolean isForcedRecompilationJava(CompileContext context) { + public static boolean isCompileJavaIncrementally(CompileContext context) { CompileScope scope = context.getScope(); - return scope.isRecompilationForcedForTargetsOfType(JavaModuleBuildTargetType.PRODUCTION) && scope.isRecompilationForcedForTargetsOfType(JavaModuleBuildTargetType.TEST); + return scope.isBuildIncrementally(JavaModuleBuildTargetType.PRODUCTION) || scope.isBuildIncrementally(JavaModuleBuildTargetType.TEST); } private static List> checkAffectedFilesInCorrectModules(CompileContext context, diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java index b702b2d01c3e..07d424d4f9b3 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java @@ -53,7 +53,7 @@ public class BuildOperations { pd.fsState.markInitialScanPerformed(target); configuration.save(context); } - else if (context.getScope().isRecompilationForced(target) || configuration.isTargetDirty(context) || configuration.outputRootWasDeleted(context)) { + else if (context.getScope().isBuildForced(target) || configuration.isTargetDirty(context) || configuration.outputRootWasDeleted(context)) { initTargetFSState(context, target, true); IncProjectBuilder.clearOutputFiles(context, target); pd.dataManager.cleanTargetStorages(target); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java index 8c1fe8b68c6e..ab21ab49b475 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java @@ -32,7 +32,7 @@ public interface CompileContext extends UserDataHolder, MessageHandler { CompileScope getScope(); /** - * @deprecated use {@link org.jetbrains.jps.builders.java.JavaBuilderUtil#isForcedRecompilationJava(CompileContext)} for java-related usages + * @deprecated use {@link org.jetbrains.jps.builders.java.JavaBuilderUtil#isCompileJavaIncrementally(CompileContext)} for java-related usages */ boolean isMake(); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContextImpl.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContextImpl.java index a621595fcc28..51af7a008b5a 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContextImpl.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContextImpl.java @@ -74,7 +74,7 @@ public class CompileContextImpl extends UserDataHolderBase implements CompileCon @Override public boolean isMake() { - return !JavaBuilderUtil.isForcedRecompilationJava(this); + return JavaBuilderUtil.isCompileJavaIncrementally(this); } @Override diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScope.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScope.java index 1f1f5e73a8fc..4028622768d5 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScope.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScope.java @@ -30,9 +30,9 @@ public abstract class CompileScope { public abstract boolean isAffected(@NotNull BuildTarget target); - public abstract boolean isRecompilationForced(@NotNull BuildTarget target); + public abstract boolean isBuildForced(@NotNull BuildTarget target); - public abstract boolean isRecompilationForcedForAllTargets(@NotNull BuildTargetType targetType); + public abstract boolean isBuildForcedForAllTargets(@NotNull BuildTargetType targetType); - public abstract boolean isRecompilationForcedForTargetsOfType(@NotNull BuildTargetType targetType); + public abstract boolean isBuildIncrementally(@NotNull BuildTargetType targetType); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java index 136363819084..df6058728c3c 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java @@ -66,19 +66,19 @@ public class CompileScopeImpl extends CompileScope { } @Override - public boolean isRecompilationForced(@NotNull BuildTarget target) { + public boolean isBuildForced(@NotNull BuildTarget target) { BuildTargetType type = target.getTargetType(); return myTypesToForceBuild.contains(type) && (myTypes.contains(type) || myTargets.contains(target) || isAffectedByAssociatedModule(target)); } @Override - public boolean isRecompilationForcedForAllTargets(@NotNull BuildTargetType targetType) { + public boolean isBuildForcedForAllTargets(@NotNull BuildTargetType targetType) { return myTypesToForceBuild.contains(targetType) && myTypes.contains(targetType); } @Override - public boolean isRecompilationForcedForTargetsOfType(@NotNull BuildTargetType targetType) { - return myTypesToForceBuild.contains(targetType); + public boolean isBuildIncrementally(@NotNull BuildTargetType targetType) { + return !myTypesToForceBuild.contains(targetType); } @Override diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java index a3fedd494268..09fa6aaed46d 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java @@ -114,7 +114,7 @@ public class FSOperations { markDirtyFiles(context, target, timestamps, true, null, null); } - if (!JavaBuilderUtil.isForcedRecompilationJava(context)) { + if (JavaBuilderUtil.isCompileJavaIncrementally(context)) { // mark as non-incremental only the module that triggered non-incremental change for (ModuleBuildTarget target : targets) { context.markNonIncremental(target); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java index 411d0b550e6d..160b8aaaeed0 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java @@ -171,7 +171,7 @@ public class JavaBuilder extends ModuleLevelBuilder { } }); - if (!JavaBuilderUtil.isForcedRecompilationJava(context)) { + if (JavaBuilderUtil.isCompileJavaIncrementally(context)) { final ProjectBuilderLogger logger = context.getLoggingManager().getProjectBuilderLogger(); if (logger.isEnabled()) { if (filesToCompile.size() > 0) { diff --git a/plugins/ui-designer/jps-plugin/src/org/jetbrains/jps/uiDesigner/compiler/FormsInstrumenter.java b/plugins/ui-designer/jps-plugin/src/org/jetbrains/jps/uiDesigner/compiler/FormsInstrumenter.java index 9e3aa9651e3c..f2d2b9a05a02 100644 --- a/plugins/ui-designer/jps-plugin/src/org/jetbrains/jps/uiDesigner/compiler/FormsInstrumenter.java +++ b/plugins/ui-designer/jps-plugin/src/org/jetbrains/jps/uiDesigner/compiler/FormsInstrumenter.java @@ -79,7 +79,7 @@ public class FormsInstrumenter extends FormsBuilder { formsToCompile.addAll(files); } - if (!JavaBuilderUtil.isForcedRecompilationJava(context)) { + if (JavaBuilderUtil.isCompileJavaIncrementally(context)) { final ProjectBuilderLogger logger = context.getLoggingManager().getProjectBuilderLogger(); if (logger.isEnabled()) { logger.logCompiledFiles(formsToCompile, getPresentableName(), "Compiling forms:");