Boost logo

Boost :

Subject: Re: [boost] [EXTERNAL] Re: Request for a "Policy Review" regarding 'CMakeLists.txt'
From: Belcourt, Kenneth (kbelco_at_[hidden])
Date: 2016-05-18 00:05:35



> On May 17, 2016, at 8:43 PM, Belcourt, Kenneth <kbelco_at_[hidden]> wrote:
>
>> On May 17, 2016, at 8:14 PM, Rene Rivera <grafikrobot_at_[hidden]> wrote:
>>
>> On Tue, May 17, 2016 at 9:09 PM, Belcourt, Kenneth <kbelco_at_[hidden]>
>> wrote:
>>
>>>
>>>> On May 17, 2016, at 6:11 PM, Peter Dimov <lists_at_[hidden]> wrote:
>>>>
>>>> Paul Fultz II wrote:
>>>>
>>>>> Ok, you could just do `cmake libs/hana` for the cmake step. However,
>>> this won't build hana's dependencies. Another way would be for hana to
>>> provide a target just for its test, so using `hana-check` instead of
>>> `check`:
>>>>>
>>>>> git clone git_at_[hidden]:boostorg/boost.git
>>>>> mkdir build && cd build
>>>>> cmake ../boost
>>>>> cmake --build . --target hana
>>>>> cmake --build . --target hana-check
>>>>> cmake --build . --target install
>>>>
>>>> Is it possible to write a top-level CMakeLists.txt which would
>>> add_subdirectory for each present library in libs/ ? (b2 does this -
>>> invoking it at top level automatically works on a subset and builds
>>> whatever is present.)
>>>
>>> Add code like this to the top-level CMakeLists.txt
>>>
>>> # Add Boost subdirectories
>>> SUBDIRS(libs/accumulators)
>>> SUBDIRS(libs/algorithm)
>>> SUBDIRS(libs/align)
>>> ...
>>>
>>> would look for a CMakeLists.txt file in each subdirectory listed.
>>>
>>
>> Peter meant programatically. As in, pseudo code:
>>
>> for each libs/*:
>> add_subdirectory( X )

Updated results, seems like we might want to disable the use of FindBoost.cmake if we’re actually configuring Boost itself.

s988329:boost kbelco$ cmake -F CMakeLists.txt
Configuring Boost libraries:
  /Users/kbelco/Projects/boost/libs/compute/CMakeLists.txt
  /Users/kbelco/Projects/boost/libs/hana/CMakeLists.txt

CMake Error at /Users/kbelco/Projects/local/cmake-3.2.2/share/cmake-3.2/Modules/FindBoost.cmake:1182 (message):
  Unable to find the requested Boost libraries.

  Unable to find the Boost header files. Please set BOOST_ROOT to the root
  directory containing Boost or BOOST_INCLUDEDIR to the directory containing
  Boost's headers.
Call Stack (most recent call first):
  libs/compute/CMakeLists.txt:24 (find_package)


-- Could NOT find Boost
CMake Warning at libs/hana/CMakeLists.txt:109 (message):
  The Boost library headers were not found; targets depending on Boost won't
  be available.


-- Could NOT find Ruby: Found unsuitable version "2.0.0", but required is at least "2.1" (found /usr/bin/ruby)
CMake Warning at libs/hana/benchmark/CMakeLists.txt:10 (message):
  Ruby >= 2.1 was not found; the benchmarks will be unavailable.


-- Configuring incomplete, errors occurred!
See also "/Users/kbelco/Projects/boost/CMakeFiles/CMakeOutput.log".
See also "/Users/kbelco/Projects/boost/CMakeFiles/CMakeError.log".


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