Feature #184

avatar

Adopt some of boost-cmake's cmake goodness

Added by Aristid Breitkreuz 229 days ago.

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.


Related issues

related to Feature #183 CMake export file Closed 12/12/2009

Also available in: Atom PDF