On May 17, 2016, at 8:14 PM, Rene Rivera
wrote: On Tue, May 17, 2016 at 9:09 PM, Belcourt, Kenneth
wrote: On May 17, 2016, at 6:11 PM, Peter Dimov
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@github.com: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 )
# Recursive glob to find CMakeLists.tst FILE(GLOB_RECURSE build_libs ${CMAKE_CURRENT_SOURCE_DIR}/libs CMakeLists.txt) # Echo to stdout foreach(library ${build_libs}) message(0 ${library}) endforeach(library) Here’s the result: s988329:boost kbelco$ cmake -F CMakeLists.txt 0/Users/kbelco/Projects/boost/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/compute/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/compute/example/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/compute/perf/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/compute/test/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/compute/test/extra/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/hana/benchmark/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/hana/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/hana/doc/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/hana/example/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/hana/experimental/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/hana/test/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/serialization/CMake/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/test/build/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/test/doc/snippet/dataset_1/CMakeLists.txt 0/Users/kbelco/Projects/boost/libs/test/test/CMakeLists.txt -- Configuring done -- Generating done -- Build files have been written to: /Users/kbelco/Projects/boost