1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-03-28 14:56:28 +01:00

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.
This commit is contained in:
alicetrifu 2025-02-03 17:36:17 +02:00 committed by GitHub
parent c8e47b321d
commit b6d64ed76d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 4 deletions

View file

@ -17,6 +17,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
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;
@ -199,4 +205,19 @@ public class CompilationDatabaseGenerationTest extends AbstractBuilderTest {
}
}
}
@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());
}
}

View file

@ -510,10 +510,6 @@ public class CommonBuilder extends ACBuilder implements IIncrementalProjectBuild
}
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
@ -883,6 +879,12 @@ public class CommonBuilder extends ACBuilder implements IIncrementalProjectBuild
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;