Replies: 5 comments 7 replies
-
Why we should not use a vote and instead compare the products based on the feature set. XMake and CMake have their own pros and cons. The issue of choosing a build system should not be chosen in a vote, instead we should list pros and cons of each and compare them. This allows us to cleanly look at tradeoffs we are making, while elminating personal biases. CMakeI will start with CMake as that's what most are familiar with. CMake has been around for a really long time, which gives it some advantages, as well as disadvantages. CMake pros:
Cmake cons:
XmakeNow let's switch gears to xmake. xmake is a fairly new build system, which is designed to interoperate with existing build systems to ease transition, as well as be easier than existing ones. xmake pros:
xmake cons:
|
Beta Was this translation helpful? Give feedback.
-
I didn't vote because my current grudge against xmake might make me ignore some of the problems that cmake also has. The biggest problem with xmake I think is reproducibility due to its cache. If you look at the original PR for the xmake migration, you'll see that a lot of the time xmake may work, but it needs to be cleaned or reclone to reflect the latest updates, and in other cases it is not working but appear to so because people are not cleaning the cache, which is almost unacceptable in my opinion. xmake uses strange concurrency mechanisms on compilation while shedding contextual information. This is a serious blow to debugging. Because we're not debugging xmake, we're debugging xmake scripts. But this mechanism of xmake makes errors separate from the scene and context. We're not developing micro services that are deployed on 1000 machines at the same time, and xmake's abstraction complicates even very simple problems. |
Beta Was this translation helpful? Give feedback.
-
Is it not possible to see who voted for what ? |
Beta Was this translation helpful? Give feedback.
-
For what it's worth, I've managed to get UE4SS to build on Linux using both msvc (under wine) and clang-cl, and now even have clangd working perfectly in VS Code. I have not managed to get it to build at all through xmake on Linux yet, though I have not invested quite as much time into it. |
Beta Was this translation helpful? Give feedback.
-
Here are some additional ideas about building (which might not be closely related to xmake but are influenced by it): Compared to directly using the clang/gnu toolchain, xmake supports zig/zigcc, but it cannot work with cmake because cmake requires the compiler that xmake passes to be an executable file, which is not the case for I think this can be resolved by packaging a |
Beta Was this translation helpful? Give feedback.
-
Vote for whether we keep the port to XMake or swap back to CMake.
26 votes ·
Beta Was this translation helpful? Give feedback.
All reactions