wiki:CMakeLibraryProject

Version 2 (modified by Douglas Gregor, 15 years ago) ( diff )

Tweak the title

CMake Macro Reference: boost_library_project

The boost_library_project macro defines a Boost library project (e.g., for Boost.Python). It should be used only once per library, in the file libs/libname/CMakeLists.txt. The syntax of this macro is:

boost_library_project(libname
                      [SRCDIRS srcdir1 srcdir2 ...] 
                      [TESTDIRS testdir1 testdir2 ...])

where libname is the name of the library (e.g., Python, Filesystem), srcdir1, srcdir2, etc, are subdirectories containing library sources (for Boost libraries that build actual library binaries), and testdir1, testdir2, etc, are subdirectories containing regression tests.

For libraries that build actual library binaries, this macro adds a option BUILD_BOOST_LIBNAME (which defaults to ON). When the option is ON, this macro will include the source subdirectories, and therefore, will build and install the library binary.

For libraries that have regression tests, and when testing is enabled globally by the BUILD_TESTING option, this macro also defines the TEST_BOOST_LIBNAME option (defaults to ON). When ON, the generated makefiles/project files will contain regression tests for this library.

Example

The Boost.Thread library uses the following invocation of the boost_library_project macro, since it has both a compiled library (built in the "src" subdirectory) and regression tests (listed in the "test" subdirectory).

boost_library_project(
  Thread
  SRCDIRS src 
  TESTDIRS test
  )

This example is from libs/thread/CMakeLists.txt.

Where Defined

This macro is defined in the Boost Core module in tools/build/CMake/BoostCore.cmake

Note: See TracWiki for help on using the wiki.