diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java
index ed49c353ccf..43bbc228fd5 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2016 Intel Corporation and others.
+ * Copyright (c) 2005, 2019 Intel Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -9,6 +9,7 @@
* Intel Corporation - Initial API and implementation
* IBM Corporation
* Marc-Andre Laperle
+ * EclipseSource
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.core;
@@ -128,6 +129,10 @@ public class AdditionalInput implements IAdditionalInput {
* @param additionalInput The existing AdditionalInput to clone.
*/
public AdditionalInput(IInputType parent, AdditionalInput additionalInput) {
+ this(parent, additionalInput, false);
+ }
+
+ public AdditionalInput(IInputType parent, AdditionalInput additionalInput, boolean retainRebuildState) {
this.fParent = parent;
fIsExtensionAdditionalInput = false;
@@ -140,8 +145,13 @@ public class AdditionalInput implements IAdditionalInput {
fKind = additionalInput.fKind;
}
- setDirty(true);
- setRebuildState(true);
+ if (retainRebuildState) {
+ setDirty(additionalInput.fIsDirty);
+ setRebuildState(additionalInput.fRebuildState);
+ } else {
+ setDirty(true);
+ setRebuildState(true);
+ }
}
/*
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputOrder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputOrder.java
index c2de80fc8cc..bf1a2e49889 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputOrder.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputOrder.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2016 Intel Corporation and others.
+ * Copyright (c) 2005, 2019 Intel Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -8,6 +8,7 @@
* Contributors:
* Intel Corporation - Initial API and implementation
* IBM Corporation
+ * EclipseSource
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.core;
@@ -90,6 +91,17 @@ public class InputOrder implements IInputOrder {
* @param inputOrder The existing InputOrder to clone.
*/
public InputOrder(IInputType parent, InputOrder inputOrder) {
+ this(parent, inputOrder, false);
+ }
+
+ /**
+ * Create an InputOrder
based upon an existing InputOrder.
+ *
+ * @param parent The IInputType
the InputOrder will be added to.
+ * @param inputOrder The existing InputOrder to clone.
+ * @param retainRebuildState Whether or not to retain the rebuildState
and dirty
state of inputOrder
.
+ */
+ public InputOrder(IInputType parent, InputOrder inputOrder, boolean retainRebuildState) {
this.fParent = parent;
fIsExtensionInputOrder = false;
@@ -106,8 +118,13 @@ public class InputOrder implements IInputOrder {
fExcluded = inputOrder.fExcluded;
}
- setDirty(true);
- setRebuildState(true);
+ if (retainRebuildState) {
+ setDirty(inputOrder.fIsDirty);
+ setRebuildState(inputOrder.fRebuildState);
+ } else {
+ setDirty(true);
+ setRebuildState(true);
+ }
}
/*
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java
index 67529585dc1..6ae00f3b06c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2016 Intel Corporation and others.
+ * Copyright (c) 2005, 2019 Intel Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -8,6 +8,7 @@
* Contributors:
* Intel Corporation - Initial API and implementation
* IBM Corporation
+ * EclipseSource
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.core;
@@ -229,7 +230,7 @@ public class InputType extends BuildObject implements IInputType {
if (inputType.sourceContentTypeIds != null) {
sourceContentTypeIds = inputType.sourceContentTypeIds.clone();
}
- if(inputType.sourceContentTypes != null) {
+ if (inputType.sourceContentTypes != null) {
sourceContentTypes = inputType.sourceContentTypes.clone();
}
if (inputType.inputExtensions != null) {
@@ -279,18 +280,18 @@ public class InputType extends BuildObject implements IInputType {
// Clone the children
if (inputType.inputOrderList != null) {
for (InputOrder inputOrder : inputType.getInputOrderList()) {
- InputOrder newInputOrder = new InputOrder(this, inputOrder);
+ InputOrder newInputOrder = new InputOrder(this, inputOrder, copyIds);
getInputOrderList().add(newInputOrder);
}
}
if (inputType.additionalInputList != null) {
for (AdditionalInput additionalInput : inputType.getAdditionalInputList()) {
- AdditionalInput newAdditionalInput = new AdditionalInput(this, additionalInput);
+ AdditionalInput newAdditionalInput = new AdditionalInput(this, additionalInput, copyIds);
getAdditionalInputList().add(newAdditionalInput);
}
}
- if (copyIds){
+ if (copyIds) {
isDirty = inputType.isDirty;
rebuildState = inputType.rebuildState;
} else {