Feature #184
Adopt some of boost-cmake's cmake goodness
| Status: | New | Start: | 12/13/2009 | |
| Priority: | Normal | Due date: | ||
| Assigned to: | - | % Done: | 0% |
|
| Category: | Build-Scripts | |||
| Target version: | 0.10 | |||
Description
Boost's CMake version has a number of very nice features. For example it vastly improves the output of the dependency detection stuff.
https://svn.boost.org/trac/boost/wiki/CMake
http://gitorious.org/boost/cmake
For example, running cmake on branch 1.41.0 of boost-cmake yields, for me:
~/Code/boost-cmake/build (1.41.0) $ cmake .. -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- -- Boost.CMake starting -- -- Boost.CMake version = 1.41.0.cmake0 -- Boost compiler = gcc -- Boost toolset = gcc44 -- Boost platform = linux -- Build name = gcc-4.4.1-linux -- Install prefix = /usr/local -- Install include dir = include/boost-1.41.0 -- Install lib dir = lib/boost-1.41.0 -- -- Looking for (optional) dependencies on the system -- -- BZip2: -- Looking for BZ2_bzCompressInit in /usr/lib/libbz2.so -- Looking for BZ2_bzCompressInit in /usr/lib/libbz2.so - found -- BZIP2_INCLUDE_DIR = /usr/include -- BZIP2_DEFINITIONS = -- BZIP2_LIBRARIES = /usr/lib/libbz2.so -- -- Doxygen: -- DOXYGEN_EXECUTABLE = /usr/bin/doxygen -- DOXYGEN_DOT_FOUND = YES -- DOXYGEN_DOT_EXECUTABLE = /usr/bin/dot -- DOXYGEN_DOT_PATH = /usr/bin -- -- Expat: -- EXPAT_INCLUDE_DIR = /usr/include -- EXPAT_LIBRARIES = /usr/lib/libexpat.so -- -- ICU: -- ICU_INCLUDE_DIRS = /usr/include -- ICU_LIBRARIES = /usr/lib/libicuuc.so -- ICU_I18N_LIBRARIES = /usr/lib/libicui18n.so -- -- MPI: -- MPI_INCLUDE_PATH = /usr/lib/openmpi/include /usr/lib/openmpi/include/openmpi -- MPI_COMPILE_FLAGS = -- MPI_LINK_FLAGS = -Wl,--export-dynamic -- MPI_LIBRARIES = /usr/lib/openmpi/lib/libmpi_cxx.so /usr/lib/openmpi/lib/libmpi.so /usr/lib/openmpi/lib/libopen-rte.so /usr/lib/openmpi/lib/libopen-pal.so /usr/lib/libdl.so /usr/lib/libnsl.so /usr/lib/libutil.so /usr/lib/libm.so /usr/lib/libdl.so -- -- Python: -- PYTHON_INCLUDE_PATH = /usr/include/python2.6 -- PYTHON_EXECUTABLE = /usr/bin/python2.6 -- PYTHON_LIBRARIES = /usr/lib/python2.6/config/libpython2.6.so -- PYTHON_DEBUG_LIBRARIES = -- -- Xsltproc: -- XSLTPROC_EXECUTABLE = /usr/bin/xsltproc -- XSLTPROC_FLAGS = --xinclude -- -- Valgrind: disabled, since WITH_VALGRIND=OFF -- -- ZLib: -- ZLIB_INCLUDE_DIR = /usr/include -- ZLIB_LIBRARIES = /usr/lib/libz.so -- -- -- Reading boost project directories (per BUILD_PROJECTS) -- -- + preprocessor -- + concept_check -- + property_map -- + config -- + mpl -- + type_traits -- + function -- + iterator -- + smart_ptr -- + exception -- + utility -- + integer -- + detail -- + static_assert -- + tuple -- + function_types -- + fusion -- + typeof -- + proto -- + intrusive -- + logic -- + numeric -- + xpressive -- + optional -- + tokenizer -- + io -- + bind -- + date_time -- + thread -- + regex -- +-- ICU (unicode) available, enabling support. -- + algorithm -- + range -- + foreach -- + array -- + functional -- + unordered -- + pool -- + spirit -- + variant -- + serialization -- + format -- + math -- + multi_index -- + any -- + random -- + graph -- +-- expat available, enabling the GraphML parser. -- + python -- + parameter -- + accumulators -- + system -- + asio -- + circular_buffer -- + ptr_container -- + assign -- + bimap -- + compatibility -- + conversion -- + crc -- + timer -- + test -- + disjoint_sets -- + dynamic_bitset -- + filesystem -- + interprocess -- + flyweight -- + gil -- + mpi -- +-- Python available, enabling boost_mpi_python. -- + graph_parallel -- + iostreams -- + lambda -- + multi_array -- + program_options -- + rational -- + signals -- + signals2 -- + statechart -- + tr1 -- + units -- + wave -- -- BUILD_TESTS is NONE: skipping test directories. -- -- -- BUILD_TOOLS is NONE: skipping tools. -- -- Configuring done -- Generating done -- Build files have been written to: /home/aristid/Code/boost-cmake/build
I like that. Better than the default output that we still use, at least.
So it would be cool to copy boost-cmake's tricks.