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

include(ExternalProject)

# Download boost from git

if ( UNIX )

    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_STATIC_LIBRARIES ${BOOST_BUILD}/lib/libboost_filesystem.a) 
      SET (SYSTEM_STATIC_LIBRARIES ${BOOST_BUILD}/lib/libboost_system.a) 
      SET (PROGRAM_OPTIONS_STATIC_LIBRARIES ${BOOST_BUILD}/lib/libboost_program_options.a)

      ExternalProject_Add( Boost
        PREFIX Boost
        GIT_REPOSITORY ${BOOST_URL}
        UPDATE_COMMAND ./bootstrap.sh --with-libraries=filesystem,system,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_STATIC_LIBRARIES})
      SET_TARGET_PROPERTIES (Boost_LIB PROPERTIES IMPORTED_LOCATION ${SYSTEM_STATIC_LIBRARIES})
      SET_TARGET_PROPERTIES (Boost_LIB PROPERTIES IMPORTED_LOCATION ${PROGRAM_OPTIONS_STATIC_LIBRARIES})
endif()