Le 19.07.17 à 14:19, Ion Gaztañaga via Boost a écrit :
On 19/07/2017 3:48, John McFarlane via Boost wrote:
I'm sure this is how a lot of C++ users out there feel. Yes, anyone who can learn C++ can learn another build system. But why require more burden than is strictly necessary? CMake is the very clear trend across the broader community. Yes, it's far from perfect -- despite a monumental clean-up effort. But more developer systems have CMake installed already.
CMake, for instance, does not really build. AFAIK, it generates build instructions for the real build system.
I personally believe this is in fact an advantage, especially for large projects, because we do not need to recreate the full build project in memory every time we need to build a library/executable. The fact that the build should be faster was discussed in this ML and proposed by Rene for boost.build v3 (if I recall correctly).
This is unacceptable to me, I want something that really builds the program and also runs tests from the command line, I want to use the same commands in Windows, Linux, FreeBSD and other systems where I test my software. I don't want to waste my time recreating MSVC projects every time I build. I want regression tests to continue working nicely and portable passing common useful options that work in every system.
CMake is popular, no doubt. So is autotools, and no one is proposing it for Boost. I have no problems to switch to CMake if:
- Cmake does everything Boost.Build does with the same or less work. - Cmake performance is equal or better.
CMake popularity is not important for me as a Boost programmer, in some years CMake will be replaced by another super-popular build system. For users we can automatically generate CMake projects from Boost.Build, and maybe other popular build systems.
This statement can be done for anything (including Boost), and you are right, all big names are developing their own build tool (Facebook, Google, etc). So it can be seen as just a matter of time that cmake gets replaced. Today, I would just say "who knows?". This also tells us that this aspect for C++ developers cannot be undermined and, since it cannot be undermined, it deserves more effort. The build system is not the primary focus of boost, so in a sense it is a good thing that this part is outsourced from a huge community. Let's invent a name for that: we should be "full stack C++ developers (c)" (sounds bad I agree). Raffi