Boost logo

Boost :

Subject: Re: [boost] Cmake
From: P F (pfultz2_at_[hidden])
Date: 2017-06-24 18:53:30


> 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. 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