Newer
Older
cmake_minimum_required ( VERSION 2.8.7 )
Lais Frigerio
committed
# Download boost from git
include(ExternalProject)
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.a)
SET (SYSTEM_LIB ${BOOST_BUILD}/lib/libboost_system.a)
SET (REGEX_LIB ${BOOST_BUILD}/lib/libboost_regex.a)
SET (PROGRAM_OPTIONS_LIB ${BOOST_BUILD}/lib/libboost_program_options.a)
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-vc141-mt-gd-1_65.lib)
SET (SYSTEM_LIB ${BOOST_BUILD}/lib/libboost_system-vc141-mt-gd-1_65.lib)
SET (REGEX_LIB ${BOOST_BUILD}/lib/libboost_regex-vc141-mt-gd-1_65.lib)
SET (PROGRAM_OPTIONS_LIB ${BOOST_BUILD}/lib/libboost_program_options-vc141-mt-gd-1_65.lib)
endif ()
if (UNIX)
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 ""
)
else ()
#add_definitions( -DBOOST_ALL_NO_LIB )
#set(Boost_USE_STATIC_LIBS ON)
ExternalProject_Add( Boost
PREFIX Boost
GIT_REPOSITORY ${BOOST_URL}
GIT_SUBMODULES libs/asio libs/config libs/core libs/date_time 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 libs/chrono libs/ratio libs/intrusive libs/spirit libs/winapi libs/tuple libs/exception libs/optional
#GIT_SUBMODULES libs/accumulators libs/algorithm libs/align libs/any libs/array libs/asio libs/assert libs/assign libs/atomic libs/bimap libs/bind libs/chrono libs/circular_buffer libs/compatibility libs/compute libs/concept_check libs/config libs/container libs/context libs/conversion libs/convert libs/core libs/coroutine libs/coroutine2 libs/crc libs/date_time libs/detail libs/disjoint_sets libs/dll libs/dynamic_bitset libs/endian libs/exception libs/fiber libs/filesystem libs/flyweight libs/foreach libs/format libs/function libs/function_types libs/functional libs/fusion libs/geometry libs/gil libs/graph libs/graph_parallel libs/hana libs/heap libs/icl libs/integer libs/interprocess libs/intrusive libs/io libs/iostreams libs/iterator libs/lambda libs/lexical_cast libs/local_function libs/locale libs/lockfree libs/log libs/logic libs/math libs/metaparse libs/move libs/mpi libs/mpl libs/msm libs/multi_array libs/multi_index libs/multiprecision libs/optional libs/parameter libs/phoenix libs/poly_collection libs/polygon libs/pool libs/predef libs/preprocessor libs/process libs/program_options libs/property_map libs/property_tree libs/proto libs/ptr_container libs/python libs/qvm libs/random libs/range libs/ratio libs/rational libs/regex libs/scope_exit libs/serialization libs/signals libs/signals2 libs/smart_ptr libs/sort libs/spirit libs/stacktrace libs/statechart libs/static_assert libs/system libs/test libs/thread libs/throw_exception libs/timer libs/tokenizer libs/tti libs/tuple libs/type_erasure libs/type_index libs/type_traits libs/typeof libs/units libs/unordered libs/utility libs/uuid libs/variant libs/vmd libs/wave libs/winapi libs/xpressive
UPDATE_COMMAND ./bootstrap.bat --with-toolset=msvc-14.1 --with-libraries=filesystem,system,regex,program_options,chrono --includedir=${CMAKE_BINARY_DIR}/include/
CONFIGURE_COMMAND ./b2 headers
BUILD_COMMAND ./b2 link=static install --libdir=${CMAKE_BINARY_DIR}/lib toolset=msvc-14.1
BUILD_IN_SOURCE 1
INSTALL_COMMAND ""
)
endif ()
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})