Subject: Re: [boost] CMake Announcement from Boost Steering Committee
From: Alain Miniussi (Alain.Miniussi_at_[hidden])
Date: 2017-07-19 15:39:25
On 19/07/2017 16:59, Ion GaztaÃ±aga via Boost wrote:
> On 19/07/2017 14:57, Alain Miniussi via Boost wrote:
>>> 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.
> I test my libraries with the following lines in windows:
> b2 -j12
> variant=debug,release address-model=32,64 debug-symbols=on
> b2 -j12
> variant=debug,release address-model=32 debug-symbols=on
> Not to mention link=static,shared runtime-link=static-shared, and all
> possible combinations. B2 compiles and executes it really fast.
> My question as a Boost developer is, can CMake do the same with
> similar performance (time/memory/disk,etc.)?
I do not know what are the performances with bjam, I just create one
build tree (outside of the source tree) per variant, configure once for
each variant and then iterate over the build directories. I want to keep
the build trees and I want to launch different variants build/texts on
different nodes, so the trees need to be separate anyway. So it does
take some space since I do not delete the build tree (that is, I choose
to keep the object files, I do not know if your technique does the
same). But I want to be able to go into the directory of combination X's
build when things go wrong anyway.
But my variants includes properties (if that the term used to designate
toolset, variant etc..) that are not anticipated be bjam. Each MPI
implementation correspond to a specify project-config.jam file (sometime
simple, sometime not), so I am not sure how I could iterate over
intel-mpi-5.0.1,open-mpi-1.6.2, etc... basically, I need to check how it
works with different versions/vendor.configuration of an external tools.
> Unsubscribe & other changes: