Skip to content

Commit

Permalink
Issue eclipse-cdt#1058: Moved generation of the compile_commands.json
Browse files Browse the repository at this point in the history
Moved compile_commands.json file to performPrebuildGeneration, so the
file to be generated only when Makefiles generation is set to be on.
  • Loading branch information
alicetrifu committed Feb 3, 2025
1 parent 889a5f1 commit 839f30a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@

import java.io.FileReader;

import org.eclipse.cdt.managedbuilder.core.IBuilder;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
import org.eclipse.cdt.managedbuilder.core.IManagedProject;
import org.eclipse.cdt.managedbuilder.core.IToolChain;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.jsoncdb.CompilationDatabaseInformation;
import org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder;
import org.eclipse.cdt.managedbuilder.testplugin.AbstractBuilderTest;
Expand Down Expand Up @@ -199,4 +205,19 @@ public void testCompilerPath() throws Exception {
}
}
}

@Test
public void testMakeFileGenerationOff() throws Exception {
setWorkspace("regressions");
final IProject app = loadProject("helloworldC");
IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(app);
IManagedProject mProj = info.getManagedProject();
IConfiguration cfg = mProj.getConfigurations()[0];
IToolChain toolChain = cfg.getToolChain();
IBuilder builder = toolChain.getBuilder();
setGenerateFileOptionEnabled(true);
builder.setManagedBuildOn(false);
app.build(IncrementalProjectBuilder.FULL_BUILD, null);
assertFalse(app.getFile("Debug/compile_commands.json").exists());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -510,10 +510,6 @@ private IProject[] build(int kind, IProject project, IBuilder[] builders, boolea
}

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

protected BuildStatus performPrebuildGeneration(int kind, CfgBuildInfo bInfo, BuildStatus buildStatus,
IProgressMonitor monitor) throws CoreException {

if (isGenerateFileOptionEnabled()) {
CompilationDatabaseGenerator generator = new CompilationDatabaseGenerator(getProject(),
bInfo.getConfiguration());
generator.generate();
}
IBuilder builder = bInfo.getBuilder();
if (builder.isInternalBuilder())
return buildStatus;
Expand Down

0 comments on commit 839f30a

Please sign in to comment.