Boost logo

Boost :

Subject: Re: [boost] Cmake
From: Edward Diener (eldiener_at_[hidden])
Date: 2017-06-24 20:11:09


On 6/24/2017 2:53 PM, P F via Boost wrote:
>
>> On Jun 24, 2017, at 1:42 PM, Edward Diener via Boost <boost_at_[hidden]> wrote:
>>
>> On 6/24/2017 1:05 PM, Peter Dimov via Boost wrote:
>>> P F wrote:
>>>> https://github.com/pfultz2/boost-cmake-demo/tree/bcm-demo
>>>>
>>>> The library for Boost.System is just:
>>>>
>>>> bcm_boost_package(system
>>>> VERSION 1.64
>>>> SOURCES
>>>> src/error_code.cpp
>>>> DEPENDS
>>>> assert
>>>> config
>>>> core
>>>> predef
>>>> )
>>> This certainly looks cleaner. It needs to distinguish between public and private dependencies but that's easy to fix. And of course there's the question who will maintain the version and the dependency list.
>>
>> Shouldn't this be generated on the fly ? The sources are all files in the library's 'src' subdirectory and the dependencies come from your own boostdep.
>
> What do you mean generated on the fly? This is stored in each repo so that the user can add the libraries as submodules to their project.

I am saying that this should not have to be maintained manually. That is
what I mean by "on the fly". How hard could it be to run some program or
Python script which creates such a file for each library automatically ?

> At release time, I believe, we would run `b2 cmake` and update the dependencies and version. Perhaps we could update the source list as well. Alternatively, we could glob the source file in cmake:
>
> file(GLOB SOURCES src/*.cpp)
> bcm_boost_package(system
> VERSION 1.64
> SOURCES
> ${SOURCES}
> DEPENDS
> assert
> config
> core
> predef
> )
>
> This, in general, is considered bad practice, but might be better than waiting until release to update the source list. Perhaps, there is a better workflow for this.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk