Skip to content
Snippets Groups Projects
boost.cmake 1.89 KiB
Newer Older
cmake_minimum_required ( VERSION 2.8.7 )

if (NOT Boost)

  SET (Boost_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/include/boost/)
  SET (Boost_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/lib )
  SET (BOOST_URL https://github.com/boostorg/boost.git )
  SET (BOOST_BUILD ${CMAKE_CURRENT_BINARY_DIR})
  SET (FILESYSTEM_LIB ${BOOST_BUILD}/lib/libboost_filesystem.lib)
  SET (SYSTEM_LIB ${BOOST_BUILD}/lib/libboost_system.lib)
  SET (REGEX_LIB ${BOOST_BUILD}/lib/libboost_regex.lib)
  SET (PROGRAM_OPTIONS_LIB ${BOOST_BUILD}/lib/libboost_program_options.lib)

  ExternalProject_Add( Boost
	PREFIX Boost
	GIT_REPOSITORY ${BOOST_URL}

	GIT_SUBMODULES  libs/asio libs/date_time libs/config libs/core  libs/detail  libs/io libs/iterator libs/predef libs/preprocessor  libs/smart_ptr libs/throw_exception libs/system libs/filesystem  libs/integer tools/build tools/bcp libs/serialization libs/interprocess libs/tokenizer libs/algorithm libs/program_options  libs/regex  libs/static_assert  libs/thread  libs/utility libs/numeric libs/range libs/array libs/bind libs/concept_check libs/lexical_cast libs/math libs/functional libs/assert libs/type_traits libs/mpl libs/move libs/container libs/any libs/type_index libs/function

	UPDATE_COMMAND ./bootstrap.sh --with-libraries=filesystem,system,regex,program_options --includedir=${CMAKE_BINARY_DIR}/include/
	CONFIGURE_COMMAND ./b2 headers
	BUILD_COMMAND ./b2 link=static install --libdir=${CMAKE_BINARY_DIR}/lib
	BUILD_IN_SOURCE 1
	INSTALL_COMMAND ""
  )

  ADD_LIBRARY (Boost_LIB STATIC IMPORTED DEPENDS Boost)
  SET_TARGET_PROPERTIES (Boost_LIB PROPERTIES IMPORTED_LOCATION ${FILESYSTEM_LIB})
  SET_TARGET_PROPERTIES (Boost_LIB PROPERTIES IMPORTED_LOCATION ${SYSTEM_LIB})
  SET_TARGET_PROPERTIES (Boost_LIB PROPERTIES IMPORTED_LOCATION ${REGEX_LIB})
  SET_TARGET_PROPERTIES (Boost_LIB PROPERTIES IMPORTED_LOCATION ${PROGRAM_OPTIONS_LIB})

endif()