On 4/14/2016 5:17 PM, Andrey Semashev wrote:
On 2016-04-14 22:00, Edward Diener wrote:
On 4/14/2016 1:37 PM, Rene Rivera wrote:
On Thu, Apr 14, 2016 at 12:33 PM, Louis Dionne
wrote: Don't overthink it. All I'm saying is that the Boost guidelines recommend that CMakeLists.txt should appear in $some_library/build/CMakeLists.txt, while I argue that current practice is to put it in $some_library/CMakeLists.txt.
Just to be clear. It's not a recommendation. It's a requirement.
Ideally could not one have a CMakeLists.txt file wherever there is currently a jamfile ? In the library's 'build' directory to build a non-header only library, in the library's 'doc' directory to build the docs, in the library's 'test' directory to run the tests etc.
Yes, that is possible and what should be done according to the current guidelines. It's just not how it's typically done in other projects that use cmake.
That appears to be a minus for CMake. The build of a library is in my mind the summation of the build of its separate parts. Being able to build each part of a library ( the library itself, documentation, tests, examples etc etc. ) separately must be more flexible than having to build every part as a whole. In that respect Boost.Build has got it right IMO.
My personal problem with CMake is, while the language to use it is more understandable for me than 'jam', its doc is just as hard for me to understand as Boost Build if not even harder <g>. Mastering yet another build system which is documented mainly for those who already know what it is about is not my idea of programming fun.
Unlike Boost.Build, cmake has built in commands 'cmake --help*' which at least make it easier to use when you know what you're doing.
Boost Build also has a --help option. I do not think a --help option is sufficient for explaining how something works. I look at the CMake docs and there is no introduction, no overview, no attempt to explain how the different parts of the tool relate to each other. While the docs for the individual pieces of CMake have good explanations I really have to dig around to understand what I have and how I might want to use it, and I just don't have that patience. I hate the attitude of programming documentation that the reader should work hard to figure out basic things for himself because the documenter is just too lazy to explain those things in a reasonable clear way.