Skip to content

Commit fd6dfe9

Browse files
committed
fix #210: add support of fastbuild generator
1 parent 14341bb commit fd6dfe9

3 files changed

Lines changed: 23 additions & 7 deletions

File tree

de.marw.cmake4eclipse.mbs.ui/src/de/marw/cmake4eclipse/mbs/ui/preferences/AbstractBuildToolkitDialog.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -303,15 +303,13 @@ public void widgetDefaultSelected(SelectionEvent e) {
303303
/* package */ static CmakeGenerator[] getAvailableGenerators() {
304304
switch (Platform.getOS()) {
305305
case Platform.OS_WIN32:
306-
return new CmakeGenerator[] { CmakeGenerator.MinGWMakefiles, CmakeGenerator.Ninja, CmakeGenerator.MSYSMakefiles,
307-
CmakeGenerator.UnixMakefiles, CmakeGenerator.NMakeMakefiles, CmakeGenerator.NMakeMakefilesJOM,
308-
CmakeGenerator.BorlandMakefiles, CmakeGenerator.WatcomWMake };
306+
return new CmakeGenerator[] { CmakeGenerator.MinGWMakefiles, CmakeGenerator.Ninja, CmakeGenerator.FastBuild,
307+
CmakeGenerator.MSYSMakefiles, CmakeGenerator.UnixMakefiles, CmakeGenerator.NMakeMakefiles,
308+
CmakeGenerator.NMakeMakefilesJOM, CmakeGenerator.BorlandMakefiles, CmakeGenerator.WatcomWMake };
309309
default:
310310
// fall back to linux, if OS is unknown
311-
return new CmakeGenerator[] { CmakeGenerator.Ninja, CmakeGenerator.UnixMakefiles
312-
// see https://gitlab.kitware.com/cmake/cmake/-/issues/14793
313-
// , CmakeGenerator.WatcomWMake
314-
};
311+
return new CmakeGenerator[] { CmakeGenerator.Ninja, CmakeGenerator.UnixMakefiles, CmakeGenerator.FastBuild,
312+
CmakeGenerator.WatcomWMake };
315313
}
316314
}
317315

de.marw.cmake4eclipse.mbs/src/main/java/de/marw/cmake4eclipse/mbs/settings/CmakeGenerator.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,21 @@ public String getParallelBuildArg(int parallelizationNum) {
3636
return "-j " + parallelizationNum; // Unlimited or User specified
3737
}
3838
},
39+
FastBuild("FASTBuild", "-nostoponerror") {
40+
@Override
41+
public String getMakefileName(){
42+
return "fbuild.bff";
43+
}
44+
@Override
45+
public String getParallelBuildArg(int parallelizationNum) {
46+
if (parallelizationNum == 1)
47+
return "-j1"; // No parallel
48+
else if (parallelizationNum == Integer.MAX_VALUE)
49+
return "-j"; // Unlimited
50+
else
51+
return "-j" + parallelizationNum; // User specified
52+
}
53+
},
3954
// windows generators
4055
NMakeMakefilesJOM("NMake Makefiles JOM") {
4156
@Override

de.marw.cmake4eclipse.mbs/src/test/java/de/marw/cmake4eclipse/mbs/settings/CmakeGeneratorTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public void setUp() throws Exception {
3535
public void testGetParallelBuildArg_Off() {
3636
assertEquals(null, CmakeGenerator.UnixMakefiles.getParallelBuildArg(1));
3737
assertEquals("-j 1", CmakeGenerator.Ninja.getParallelBuildArg(1));
38+
assertEquals("-j1", CmakeGenerator.FastBuild.getParallelBuildArg(1));
3839
assertEquals(null, CmakeGenerator.MinGWMakefiles.getParallelBuildArg(1));
3940
assertEquals(null, CmakeGenerator.MSYSMakefiles.getParallelBuildArg(1));
4041
assertEquals(null, CmakeGenerator.NMakeMakefiles.getParallelBuildArg(1));
@@ -51,6 +52,7 @@ public void testGetParallelBuildArg_Off() {
5152
public void testGetParallelBuildArg_Unlimited() {
5253
assertEquals("-j", CmakeGenerator.UnixMakefiles.getParallelBuildArg(Integer.MAX_VALUE));
5354
assertEquals("-j " + Integer.MAX_VALUE, CmakeGenerator.Ninja.getParallelBuildArg(Integer.MAX_VALUE));
55+
assertEquals("-j", CmakeGenerator.FastBuild.getParallelBuildArg(1));
5456
assertEquals("-j", CmakeGenerator.MinGWMakefiles.getParallelBuildArg(Integer.MAX_VALUE));
5557
assertEquals("-j", CmakeGenerator.MSYSMakefiles.getParallelBuildArg(Integer.MAX_VALUE));
5658
assertEquals(null, CmakeGenerator.NMakeMakefiles.getParallelBuildArg(Integer.MAX_VALUE));
@@ -68,6 +70,7 @@ public void testGetParallelBuildArg_User() {
6870
int value = 123;
6971
assertEquals("-j " + value, CmakeGenerator.UnixMakefiles.getParallelBuildArg(value));
7072
assertEquals("-j " + value, CmakeGenerator.Ninja.getParallelBuildArg(value));
73+
assertEquals("-j" + value, CmakeGenerator.FastBuild.getParallelBuildArg(value));
7174
assertEquals("-j " + value, CmakeGenerator.MinGWMakefiles.getParallelBuildArg(value));
7275
assertEquals("-j " + value, CmakeGenerator.MSYSMakefiles.getParallelBuildArg(value));
7376
assertEquals(null, CmakeGenerator.NMakeMakefiles.getParallelBuildArg(value));

0 commit comments

Comments
 (0)