Add support for building against mason-provided deps
This commit is contained in:
parent
4598599f52
commit
83b7d75121
@ -48,7 +48,7 @@ matrix:
|
|||||||
apt:
|
apt:
|
||||||
sources: ['ubuntu-toolchain-r-test']
|
sources: ['ubuntu-toolchain-r-test']
|
||||||
packages: ['libstdc++-5-dev', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache']
|
packages: ['libstdc++-5-dev', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache']
|
||||||
env: CLANG_VERSION='3.8.1' CLANG_PACKAGE="clang" BUILD_TYPE='Debug' RUN_CLANG_FORMAT=ON BUILD_COMPONENTS=ON
|
env: CLANG_VERSION='3.8.1' CLANG_PACKAGE="clang++" BUILD_TYPE='Debug' RUN_CLANG_FORMAT=ON BUILD_COMPONENTS=ON
|
||||||
|
|
||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode7.3
|
osx_image: xcode7.3
|
||||||
@ -157,8 +157,8 @@ install:
|
|||||||
if [[ ${ENABLE_MASON:-OFF} == 'ON' ]]; then
|
if [[ ${ENABLE_MASON:-OFF} == 'ON' ]]; then
|
||||||
# for mason builds we need to point the example
|
# for mason builds we need to point the example
|
||||||
# at the clang++ installed by the CMakeLists.txt automatically
|
# at the clang++ installed by the CMakeLists.txt automatically
|
||||||
CXX=$(.mason/mason prefix clang++ 3.9.0)/bin/clang++
|
CXX=$(.mason/mason prefix clang++ 3.8.1)/bin/clang++
|
||||||
CC=$(.mason/mason prefix clang++ 3.9.0)/bin/clang
|
CC=$(.mason/mason prefix clang++ 3.8.1)/bin/clang
|
||||||
fi
|
fi
|
||||||
- mkdir example/build && pushd example/build
|
- mkdir example/build && pushd example/build
|
||||||
- cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
|
- cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
|
||||||
|
@ -8,20 +8,34 @@ This process created the file `CMakeCache.txt' and the directory `CMakeFiles'. P
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_MASON)
|
if(ENABLE_MASON)
|
||||||
|
|
||||||
|
# versions in use
|
||||||
|
set(MASON_CLANG_VERSION "3.8.1")
|
||||||
|
set(MASON_BOOST_VERSION "1.61.0")
|
||||||
|
set(MASON_STXXL_VERSION "1.4.1")
|
||||||
|
set(MASON_EXPAT_VERSION "2.1.1")
|
||||||
|
set(MASON_LUA_VERSION "5.2.4")
|
||||||
|
set(MASON_LUABIND_VERSION "e414c57bcb687bb3091b7c55bbff6947f052e46b")
|
||||||
|
set(MASON_BZIP2_VERSION "1.0.6")
|
||||||
|
set(MASON_TBB_VERSION "43_20150316")
|
||||||
|
set(MASON_CCACHE_VERSION "3.3.1")
|
||||||
|
|
||||||
message(STATUS "Enabling mason")
|
message(STATUS "Enabling mason")
|
||||||
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.mason/mason.cmake")
|
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.mason/mason.cmake")
|
||||||
#COMMAND git submodule update --init .mason WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND git clone -b master --depth 1 https://github.com/mapbox/mason.git ${CMAKE_CURRENT_SOURCE_DIR}/.mason
|
COMMAND git clone -b v0.1.0 --depth 1 https://github.com/mapbox/mason.git ${CMAKE_CURRENT_SOURCE_DIR}/.mason ERROR_QUIET
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
include(${CMAKE_CURRENT_SOURCE_DIR}/.mason/mason.cmake)
|
execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/.mason/mason --version ERROR_QUIET OUTPUT_VARIABLE MASON_RELEASE_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
message(STATUS "Using mason ${MASON_RELEASE_VERSION}")
|
||||||
|
|
||||||
set(CLANG_VERSION "3.8.1")
|
include(${CMAKE_CURRENT_SOURCE_DIR}/.mason/mason.cmake)
|
||||||
mason_use(clang++ VERSION ${CLANG_VERSION})
|
if(NOT CMAKE_CXX_COMPILER)
|
||||||
message(STATUS "Setting compiler to clang++ ${CLANG_VERSION} (via mason) ${MASON_PACKAGE_clang++_PREFIX}/bin/clang++")
|
mason_use(clang++ VERSION ${MASON_CLANG_VERSION})
|
||||||
set(CMAKE_CXX_COMPILER "${MASON_PACKAGE_clang++_PREFIX}/bin/clang++")
|
message(STATUS "Setting compiler to clang++ ${MASON_CLANG_VERSION} (via mason) ${MASON_PACKAGE_clang++_PREFIX}/bin/clang++")
|
||||||
set(CMAKE_C_COMPILER "${MASON_PACKAGE_clang++_PREFIX}/bin/clang")
|
set(CMAKE_CXX_COMPILER "${MASON_PACKAGE_clang++_PREFIX}/bin/clang++")
|
||||||
|
set(CMAKE_C_COMPILER "${MASON_PACKAGE_clang++_PREFIX}/bin/clang")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
project(OSRM C CXX)
|
project(OSRM C CXX)
|
||||||
@ -313,42 +327,42 @@ if(ENABLE_MASON)
|
|||||||
message(STATUS "Installing dependencies via mason")
|
message(STATUS "Installing dependencies via mason")
|
||||||
|
|
||||||
set(Boost_USE_STATIC_LIBS ON)
|
set(Boost_USE_STATIC_LIBS ON)
|
||||||
mason_use(boost VERSION 1.61.0 HEADER_ONLY)
|
mason_use(boost VERSION ${MASON_BOOST_VERSION} HEADER_ONLY)
|
||||||
add_dependency_includes(${MASON_PACKAGE_boost_INCLUDE_DIRS})
|
add_dependency_includes(${MASON_PACKAGE_boost_INCLUDE_DIRS})
|
||||||
mason_use(boost_libfilesystem VERSION 1.61.0)
|
mason_use(boost_libfilesystem VERSION ${MASON_BOOST_VERSION})
|
||||||
set(Boost_FILESYSTEM_LIBRARY ${MASON_PACKAGE_boost_libfilesystem_STATIC_LIBS})
|
set(Boost_FILESYSTEM_LIBRARY ${MASON_PACKAGE_boost_libfilesystem_STATIC_LIBS})
|
||||||
mason_use(boost_libiostreams VERSION 1.61.0)
|
mason_use(boost_libiostreams VERSION ${MASON_BOOST_VERSION})
|
||||||
set(Boost_IOSTREAMS_LIBRARY ${MASON_PACKAGE_boost_libiostreams_STATIC_LIBS})
|
set(Boost_IOSTREAMS_LIBRARY ${MASON_PACKAGE_boost_libiostreams_STATIC_LIBS})
|
||||||
mason_use(boost_libprogram_options VERSION 1.61.0)
|
mason_use(boost_libprogram_options VERSION ${MASON_BOOST_VERSION})
|
||||||
set(Boost_PROGRAM_OPTIONS_LIBRARY ${MASON_PACKAGE_boost_libprogram_options_STATIC_LIBS})
|
set(Boost_PROGRAM_OPTIONS_LIBRARY ${MASON_PACKAGE_boost_libprogram_options_STATIC_LIBS})
|
||||||
mason_use(boost_libregex VERSION 1.61.0)
|
mason_use(boost_libregex VERSION ${MASON_BOOST_VERSION})
|
||||||
set(Boost_REGEX_LIBRARY ${MASON_PACKAGE_boost_libregex_STATIC_LIBS})
|
set(Boost_REGEX_LIBRARY ${MASON_PACKAGE_boost_libregex_STATIC_LIBS})
|
||||||
mason_use(boost_libtest VERSION 1.61.0)
|
mason_use(boost_libtest VERSION ${MASON_BOOST_VERSION})
|
||||||
set(Boost_UNIT_TEST_FRAMEWORK_LIBRARY ${MASON_PACKAGE_boost_libtest_STATIC_LIBS})
|
set(Boost_UNIT_TEST_FRAMEWORK_LIBRARY ${MASON_PACKAGE_boost_libtest_STATIC_LIBS})
|
||||||
mason_use(boost_libdate_time VERSION 1.61.0)
|
mason_use(boost_libdate_time VERSION ${MASON_BOOST_VERSION})
|
||||||
set(Boost_DATE_TIME_LIBRARY ${MASON_PACKAGE_boost_libdate_time_STATIC_LIBS})
|
set(Boost_DATE_TIME_LIBRARY ${MASON_PACKAGE_boost_libdate_time_STATIC_LIBS})
|
||||||
mason_use(boost_libthread VERSION 1.61.0)
|
mason_use(boost_libthread VERSION ${MASON_BOOST_VERSION})
|
||||||
set(Boost_THREAD_LIBRARY ${MASON_PACKAGE_boost_libthread_STATIC_LIBS})
|
set(Boost_THREAD_LIBRARY ${MASON_PACKAGE_boost_libthread_STATIC_LIBS})
|
||||||
mason_use(boost_libsystem VERSION 1.61.0)
|
mason_use(boost_libsystem VERSION ${MASON_BOOST_VERSION})
|
||||||
set(Boost_SYSTEM_LIBRARY ${MASON_PACKAGE_boost_libsystem_STATIC_LIBS})
|
set(Boost_SYSTEM_LIBRARY ${MASON_PACKAGE_boost_libsystem_STATIC_LIBS})
|
||||||
|
|
||||||
mason_use(stxxl VERSION 1.4.1)
|
mason_use(stxxl VERSION ${MASON_STXXL_VERSION})
|
||||||
add_dependency_includes(${MASON_PACKAGE_stxxl_INCLUDE_DIRS})
|
add_dependency_includes(${MASON_PACKAGE_stxxl_INCLUDE_DIRS})
|
||||||
set(STXXL_LIBRARY ${MASON_PACKAGE_stxxl_STATIC_LIBS})
|
set(STXXL_LIBRARY ${MASON_PACKAGE_stxxl_STATIC_LIBS})
|
||||||
|
|
||||||
mason_use(expat VERSION 2.1.1)
|
mason_use(expat VERSION ${MASON_EXPAT_VERSION})
|
||||||
add_dependency_includes(${MASON_PACKAGE_expat_INCLUDE_DIRS})
|
add_dependency_includes(${MASON_PACKAGE_expat_INCLUDE_DIRS})
|
||||||
set(EXPAT_LIBRARIES ${MASON_PACKAGE_expat_STATIC_LIBS})
|
set(EXPAT_LIBRARIES ${MASON_PACKAGE_expat_STATIC_LIBS})
|
||||||
|
|
||||||
mason_use(lua VERSION 5.2.4)
|
mason_use(lua VERSION ${MASON_LUA_VERSION})
|
||||||
add_dependency_includes(${MASON_PACKAGE_lua_INCLUDE_DIRS})
|
add_dependency_includes(${MASON_PACKAGE_lua_INCLUDE_DIRS})
|
||||||
set(USED_LUA_LIBRARIES ${MASON_PACKAGE_lua_STATIC_LIBS})
|
set(USED_LUA_LIBRARIES ${MASON_PACKAGE_lua_STATIC_LIBS})
|
||||||
|
|
||||||
mason_use(luabind_lua524 VERSION e414c57bcb687bb3091b7c55bbff6947f052e46b)
|
mason_use(luabind_lua524 VERSION ${MASON_LUABIND_VERSION})
|
||||||
add_dependency_includes(${MASON_PACKAGE_luabind_lua524_INCLUDE_DIRS})
|
add_dependency_includes(${MASON_PACKAGE_luabind_lua524_INCLUDE_DIRS})
|
||||||
set(LUABIND_LIBRARY ${MASON_PACKAGE_luabind_lua524_STATIC_LIBS})
|
set(LUABIND_LIBRARY ${MASON_PACKAGE_luabind_lua524_STATIC_LIBS})
|
||||||
|
|
||||||
mason_use(bzip2 VERSION 1.0.6)
|
mason_use(bzip2 VERSION ${MASON_BZIP2_VERSION})
|
||||||
add_dependency_includes(${MASON_PACKAGE_bzip2_INCLUDE_DIRS})
|
add_dependency_includes(${MASON_PACKAGE_bzip2_INCLUDE_DIRS})
|
||||||
set(BZIP2_LIBRARIES ${MASON_PACKAGE_bzip2_STATIC_LIBS})
|
set(BZIP2_LIBRARIES ${MASON_PACKAGE_bzip2_STATIC_LIBS})
|
||||||
|
|
||||||
@ -359,23 +373,25 @@ if(ENABLE_MASON)
|
|||||||
#set(ZLIB_LIBRARY ${MASON_PACKAGE_zlib_LDFLAGS})
|
#set(ZLIB_LIBRARY ${MASON_PACKAGE_zlib_LDFLAGS})
|
||||||
set(ZLIB_LIBRARY "-lz")
|
set(ZLIB_LIBRARY "-lz")
|
||||||
|
|
||||||
mason_use(tbb VERSION 43_20150316)
|
mason_use(tbb VERSION ${MASON_TBB_VERSION})
|
||||||
add_dependency_includes(${MASON_PACKAGE_tbb_INCLUDE_DIRS})
|
add_dependency_includes(${MASON_PACKAGE_tbb_INCLUDE_DIRS})
|
||||||
set(TBB_LIBRARIES ${MASON_PACKAGE_tbb_LDFLAGS})
|
set(TBB_LIBRARIES ${MASON_PACKAGE_tbb_LDFLAGS})
|
||||||
|
|
||||||
if(NOT MASON_PACKAGE_tbb_LIBRARY_DIRS)
|
if(NOT MASON_PACKAGE_tbb_LIBRARY_DIRS)
|
||||||
message(WARNING "MASON_PACKAGE_tbb_LIBRARY_DIRS is empty, rpath will not work")
|
message(FATAL_ERROR "MASON_PACKAGE_tbb_LIBRARY_DIRS is empty, rpath will not work")
|
||||||
endif()
|
endif()
|
||||||
foreach(libpath ${MASON_PACKAGE_tbb_LIBRARY_DIRS})
|
foreach(libpath ${MASON_PACKAGE_tbb_LIBRARY_DIRS})
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
set(LINKER_FLAGS "-Wl,-rpath,${libpath}")
|
set(LINKER_FLAGS "-Wl,-rpath,${libpath}")
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(LINKER_FLAGS "-Wl,-rpath, -Wl,${libpath}")
|
set(LINKER_FLAGS "-Wl,-rpath, -Wl,${libpath}")
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LINKER_FLAGS}")
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LINKER_FLAGS}")
|
||||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
||||||
endforeach()
|
file(GLOB TBBGlob ${libpath}/*.*)
|
||||||
|
install(FILES ${TBBGlob} DESTINATION lib)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
include_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libosmium/include)
|
include_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libosmium/include)
|
||||||
|
|
||||||
@ -387,9 +403,8 @@ if(ENABLE_MASON)
|
|||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||||
|
|
||||||
if(ENABLE_CCACHE)
|
if(ENABLE_CCACHE)
|
||||||
set(CCACHE_VERSION "3.3.1")
|
mason_use(ccache VERSION ${MASON_CCACHE_VERSION})
|
||||||
mason_use(ccache VERSION ${CCACHE_VERSION})
|
message(STATUS "Setting ccache to ccache ${MASON_CCACHE_VERSION} (via mason) ${MASON_PACKAGE_ccache_PREFIX}/bin/ccache")
|
||||||
message(STATUS "Setting ccache to clang++ ${CCACHE_VERSION} (via mason) ${MASON_PACKAGE_ccache_PREFIX}/bin/ccache")
|
|
||||||
message(STATUS "Using ccache to speed up incremental builds")
|
message(STATUS "Using ccache to speed up incremental builds")
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${MASON_PACKAGE_ccache_PREFIX}/bin/ccache)
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${MASON_PACKAGE_ccache_PREFIX}/bin/ccache)
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${MASON_PACKAGE_ccache_PREFIX}/bin/ccache)
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${MASON_PACKAGE_ccache_PREFIX}/bin/ccache)
|
||||||
|
Loading…
Reference in New Issue
Block a user