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. A little bit like bootstrap.sh does, plus the project-config.jam that I need to modify by hand each time I want to test a new configuration.
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, I want too use the same system I'm already used to anyway on
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. Because it's not available on Window I guess. On Unix-like, I've found autotools slightly less worse than bjam in the sense that when I need to deal with code mixing MPI, C++, Fortran etc.. bjam is out. So I went autotool->bjam->autotool(yurk!)->CMake. But if a project is simple enough for bjam, then moving to autotool is
On 19/07/2017 14:19, Ion GaztaƱaga via Boost wrote: those platforms. probably a bad idea.
I have no problems to switch to CMake if:
- Cmake does everything Boost.Build does with the same or less work. I just enter 'make' in my build directories, cmake is re-called automatically if necessary. And it does a lot of thing I could not do with bjam (arbitrary feature detection mostly, seems a PITA with bjam). And I can switch between all my configurations just by changing the build directory which, when I need to test the cross product of various compilers/MPI, is a huge gain. I am not sure how to build an test N configuration at the same time with bjam without having N instance of the code tree. Maybe it's in the tutorial.
- Cmake performance is equal or better. Well, cmake never required me having to launch a script in the back ground to send signals to hanging bjam tasks during test (eternity can be quite long), so how can it be worse... as for the (usually parallel) build, source dependencies are what they are, and so is the compiler.
CMake popularity is not important for me as a Boost programmer, in some years CMake will be replaced by another super-popular build system.
Yep, and maybe people will choose to move to that system if they think it's worth it.
For users we can automatically generate CMake projects from Boost.Build, and maybe other popular build systems.
Ion
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost