Sample projects for integration testing premake4/premake5 and some modules
- Module CodeBlocks (fixed fork)
- Module CMake (fixed fork)
- Module premake-ninja
- Module qmake (fixed fork)
| gmake βΉοΈ1 | Codelite | Ninja | Msvc vs2019 | Msvc vs2022 | xcode4 | CodeBlocks | CMake | premake-ninja | qmake | |
|---|---|---|---|---|---|---|---|---|---|---|
location |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
βοΈ | βοΈ | βοΈ | β |
targetdir |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
targetname |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
objdirβΉοΈ34 |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β5 | βοΈ | β |
files |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
includedirs |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
externalincludedirs |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ(Fixed) | βοΈ | βοΈ |
includedirsafter |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βπͺ²6 | βοΈ | βοΈ(Fixed) | βοΈ | β |
forceincludes |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βπͺ²7 | βοΈ | βοΈ (Fixed) | βοΈ | β |
defines |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
undefines |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | βοΈ | βοΈ | βοΈ | βοΈ |
buildoptions |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
kind "ConsoleApp" |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
kind "SharedLib" |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ (Fixed) | βοΈ | βοΈ |
kind "StaticLib" |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ (Fixed) | βοΈ | βοΈ |
kind "None" |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | β | βοΈ | β |
| Pch | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | βοΈ | βοΈ | βοΈ | βοΈ |
| Pre/post build | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | βοΈ | βοΈ (Fixed) | βοΈ | β |
Prelinkcommand |
βοΈ | β | βοΈ | βοΈ | βοΈ | β | β(Fixed) |
βοΈ (Fixed) | βοΈ | β |
| custom build | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
βοΈ (Fixed) | βοΈ | β |
| custom rule | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | βοΈ |
βοΈ (Fixed) | βοΈ | β |
disablewarnings |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | βοΈ | βοΈ | βοΈ | βοΈ |
enablewarnings |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
fatalwarnings |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | βοΈ | βοΈ | βοΈ | βοΈ |
| per-file config | βοΈ | β | βοΈ | βοΈ | βοΈ | β | β |
β | βοΈ | β |
buildaction "Copy" |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | β | β | βοΈ | β |
buildaction "None" |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | β | βοΈ | β |
flags {"ExcludeFromBuild"} |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β |
toolset "clang" |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | βοΈ | β |
toolset "gcc" |
βοΈ | βοΈ | βοΈ | β | β | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
toolset "msc" |
β | β | βοΈ | βοΈ | βοΈ | β | β | β | βοΈ | β |
language "C#" |
β | β | β | βοΈ | βοΈ | β | β | β | β | β |
compileas |
βοΈ | β | βοΈ | βοΈ | βοΈ | β | β |
β | βοΈ | β |
dependson |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β |
nuget |
β | β | β | βοΈ | βοΈ | β | β | β | β | β |
linkgroups |
βοΈ | βοΈ | βοΈ βΉοΈ 11 | β βΉοΈ 11 | β βΉοΈ11 | βοΈ |
βοΈ(Fixed) | βοΈ |
βοΈ βΉοΈ 11 | β |
wholearchive |
βοΈ | β | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β |
externalproject |
β | β | β | βοΈ | βοΈ | β | β | β | β | β |
openMP |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β | βοΈ | βοΈ | βοΈ | β |
sanitize {"Address"} |
βοΈ | βοΈ | β | βοΈ | βοΈ | β | βοΈ | βοΈ(Fixed) | βοΈ | β |
structmemberalign |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
| Duplicated source filename | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | β |
| response file (Long link command line) | β | β | β | βοΈ | βοΈ | βοΈ | β | βοΈ | βοΈ | β |
unsignedchar |
βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
clangtidy |
β | β | β | βοΈ | βοΈ | β | β | β | βοΈ |
β |
- using premake-qt module for all generators but qmake βΉοΈ15.
- with Module qmake (fixed fork)
| gmake βΉοΈ1 | Codelite | Ninja | Msvc vs2019 | Msvc vs2022 | xcode4 | CodeBlocks | CMake | premake-ninja | qmake βΉοΈ15 | |
|---|---|---|---|---|---|---|---|---|---|---|
| basic | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
| moc | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
βοΈ | βοΈ | βοΈ |
| qrc | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
βοΈ | βοΈ | βοΈ |
| ts | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
βοΈ | βοΈ | β |
| uic | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ | βοΈ |
Footnotes
-
βΉοΈ https://github.com/premake/premake-core/pull/2408 renames gmake2 into gmake β© β©2
-
β οΈ project location != workspace/solution location unsupported though. β© -
βΉοΈ premake appends extra
$(configName)/$(AppName). β© -
βΉοΈ Not tested by the CI even if projects uses them. β©
-
β cmake doesn't allow to specify
objdir. β© -
πͺ² Reported issue: https://github.com/premake/premake-core/issues/2062 β©
-
πͺ² Reported issue: https://github.com/premake/premake-core/issues/1769 β©
-
β οΈ prelinkcommands is done between prebuildcommand and objects creation and not just before link stage (i.e after objects creation). β© -
β οΈ Code::Blocks doesn't support generation of linkable cpp files from header files. β© -
β οΈ Code::Blocks doesn't support rules/custom builds which are different by configuration (Using Tokens might allow to bypass that restriction). β© β©2 β©3 β©4 β©5 β©6 β©7 -
βΉοΈ msc doesn't need
linkgroups, so"On"/"Off"acts identically β© β©2 β©3 β©4 -
β οΈ xcode4 doesn't supportlinkgroups "Off"β© -
β οΈ premake-cmake doesn't supportlinkgroups "Off"β© -
β οΈ premake-ninja doesn't support clang-tidy with msc β© -
βΉοΈ qmake handles Qt natively, so premake-qt is disabled. β© β©2