Skip to content

Commit b6d64ed

Browse files
authored
Issue #1058: Moved generation of the compile_commands.json (#1075)
Moved compile_commands.json file to performPrebuildGeneration, so the file to be generated only when Makefiles generation is set to be on.
1 parent c8e47b3 commit b6d64ed

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed

build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/CompilationDatabaseGenerationTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@
1717

1818
import java.io.FileReader;
1919

20+
import org.eclipse.cdt.managedbuilder.core.IBuilder;
21+
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
22+
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
23+
import org.eclipse.cdt.managedbuilder.core.IManagedProject;
24+
import org.eclipse.cdt.managedbuilder.core.IToolChain;
25+
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
2026
import org.eclipse.cdt.managedbuilder.core.jsoncdb.CompilationDatabaseInformation;
2127
import org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder;
2228
import org.eclipse.cdt.managedbuilder.testplugin.AbstractBuilderTest;
@@ -199,4 +205,19 @@ public void testCompilerPath() throws Exception {
199205
}
200206
}
201207
}
208+
209+
@Test
210+
public void testMakeFileGenerationOff() throws Exception {
211+
setWorkspace("regressions");
212+
final IProject app = loadProject("helloworldC");
213+
IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(app);
214+
IManagedProject mProj = info.getManagedProject();
215+
IConfiguration cfg = mProj.getConfigurations()[0];
216+
IToolChain toolChain = cfg.getToolChain();
217+
IBuilder builder = toolChain.getBuilder();
218+
setGenerateFileOptionEnabled(true);
219+
builder.setManagedBuildOn(false);
220+
app.build(IncrementalProjectBuilder.FULL_BUILD, null);
221+
assertFalse(app.getFile("Debug/compile_commands.json").exists());
222+
}
202223
}

build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -510,10 +510,6 @@ private IProject[] build(int kind, IProject project, IBuilder[] builders, boolea
510510
}
511511

512512
for (int i = 0; i < num; i++) {
513-
if (isGenerateFileOptionEnabled()) {
514-
CompilationDatabaseGenerator generator = new CompilationDatabaseGenerator(getProject(), activeCfg);
515-
generator.generate();
516-
}
517513
//bug 219337
518514
if (kind == INCREMENTAL_BUILD || kind == AUTO_BUILD) {
519515
if (buildConfigResourceChanges()) { //only build projects with project resource changes
@@ -883,6 +879,12 @@ protected BuildStatus performPostbuildGeneration(int kind, CfgBuildInfo bInfo, B
883879

884880
protected BuildStatus performPrebuildGeneration(int kind, CfgBuildInfo bInfo, BuildStatus buildStatus,
885881
IProgressMonitor monitor) throws CoreException {
882+
883+
if (isGenerateFileOptionEnabled()) {
884+
CompilationDatabaseGenerator generator = new CompilationDatabaseGenerator(getProject(),
885+
bInfo.getConfiguration());
886+
generator.generate();
887+
}
886888
IBuilder builder = bInfo.getBuilder();
887889
if (builder.isInternalBuilder())
888890
return buildStatus;

0 commit comments

Comments
 (0)