diff options
m--------- | .mason | 0 | ||||
-rw-r--r-- | .travis.yml | 4 | ||||
-rw-r--r-- | CMakeLists.txt | 7 | ||||
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | cmake/benchmark.cmake | 6 | ||||
-rw-r--r-- | cmake/test.cmake | 6 | ||||
-rw-r--r-- | platform/linux/config.cmake | 46 | ||||
-rwxr-xr-x | scripts/travis_setup.sh | 8 | ||||
-rw-r--r-- | scripts/valgrind.sup | 86 |
9 files changed, 126 insertions, 44 deletions
diff --git a/.mason b/.mason -Subproject 4279f58787acba8286789f861cf7c3c4ce47d52 +Subproject 43933edabaca8f877f270466d20759fe84e62b2 diff --git a/.travis.yml b/.travis.yml index 86de437bfb..6a8712d1e1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,12 +16,12 @@ addons_shortcuts: addons_qt4: &qt4 apt: sources: [ 'ubuntu-toolchain-r-test', 'george-edison55-precise-backports' ] - packages: [ 'g++-5', 'gcc-5', 'libjemalloc-dev', 'cmake', 'cmake-data', + packages: [ 'g++-5', 'gcc-5', 'libllvm3.8v4', 'libjemalloc-dev', 'cmake', 'cmake-data', 'mesa-utils', 'qt4-default' ] addons_qt5: &qt5 apt: sources: [ 'ubuntu-toolchain-r-test', 'george-edison55-precise-backports' ] - packages: [ 'g++-5', 'gcc-5', 'cmake', 'cmake-data', + packages: [ 'g++-5', 'gcc-5', 'libllvm3.8v4', 'cmake', 'cmake-data', 'mesa-utils', 'libc6-dbg', 'qt5-default', 'libqt5opengl5-dev', 'qtdeclarative5-dev', 'qtpositioning5-dev', 'qtlocation5-dev' ] env: diff --git a/CMakeLists.txt b/CMakeLists.txt index c80e999a3f..6c009b910a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ include(.mason/mason.cmake) option(WITH_CXX11ABI "Use cxx11abi mason packages" OFF) option(WITH_COVERAGE "Enable coverage reports" OFF) option(WITH_OSMESA "Use OSMesa headless backend" OFF) +option(IS_CI_BUILD "Continuous integration build" OFF) if(WITH_CXX11ABI) set(MASON_CXXABI_SUFFIX -cxx11abi) @@ -22,6 +23,12 @@ endif() if(WITH_OSMESA) add_compile_options(-D__OSMESA__) +else() + set(MASON_MESA_SUFFIX -glx) +endif() + +if(IS_CI_BUILD) + add_compile_options(-DCI_BUILD=1) endif() mason_use(geometry VERSION 0.8.0 HEADER_ONLY) @@ -292,6 +292,7 @@ $(LINUX_BUILD): $(BUILD_DEPS) -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DWITH_CXX11ABI=$(shell scripts/check-cxx11abi.sh) \ -DWITH_COVERAGE=${WITH_COVERAGE} \ + -DIS_CI_BUILD=${CI} \ -DWITH_OSMESA=${WITH_OSMESA}) .PHONY: linux @@ -387,7 +388,8 @@ $(QT_BUILD): $(BUILD_DEPS) -DWITH_QT_DECODERS=${WITH_QT_DECODERS} \ -DWITH_QT_4=${WITH_QT_4} \ -DWITH_CXX11ABI=$(shell scripts/check-cxx11abi.sh) \ - -DWITH_COVERAGE=${WITH_COVERAGE}) + -DWITH_COVERAGE=${WITH_COVERAGE} \ + -DIS_CI_BUILD=${CI}) ifeq ($(HOST_PLATFORM), macos) @@ -401,7 +403,8 @@ $(MACOS_QT_PROJ_PATH): $(BUILD_DEPS) -DWITH_QT_DECODERS=${WITH_QT_DECODERS} \ -DWITH_QT_4=${WITH_QT_4} \ -DWITH_CXX11ABI=$(shell scripts/check-cxx11abi.sh) \ - -DWITH_COVERAGE=${WITH_COVERAGE}) + -DWITH_COVERAGE=${WITH_COVERAGE} \ + -DIS_CI_BUILD=${CI}) @# Create Xcode schemes so that we can use xcodebuild from the command line. CMake doesn't @# create these automatically. diff --git a/cmake/benchmark.cmake b/cmake/benchmark.cmake index 79da54459e..0752647a2d 100644 --- a/cmake/benchmark.cmake +++ b/cmake/benchmark.cmake @@ -14,12 +14,6 @@ target_include_directories(mbgl-benchmark PRIVATE platform/default ) -if(DEFINED ENV{CI}) - target_compile_definitions(mbgl-benchmark - PRIVATE -DCI_BUILD=1 - ) -endif() - target_link_libraries(mbgl-benchmark PRIVATE mbgl-core ) diff --git a/cmake/test.cmake b/cmake/test.cmake index c4d9dd9fad..2a83a633c0 100644 --- a/cmake/test.cmake +++ b/cmake/test.cmake @@ -16,12 +16,6 @@ target_include_directories(mbgl-test PRIVATE platform/default ) -if(DEFINED ENV{CI}) - target_compile_definitions(mbgl-test - PRIVATE -DCI_BUILD=1 - ) -endif() - target_link_libraries(mbgl-test PRIVATE mbgl-core ) diff --git a/platform/linux/config.cmake b/platform/linux/config.cmake index 76be2dddc3..b4bc030064 100644 --- a/platform/linux/config.cmake +++ b/platform/linux/config.cmake @@ -1,5 +1,7 @@ mason_use(glfw VERSION 3.2.1) -mason_use(mesa VERSION 13.0.0${MASON_CXXABI_SUFFIX}) +if (WITH_OSMESA OR IS_CI_BUILD) + mason_use(mesa VERSION 13.0.0${MASON_MESA_SUFFIX}${MASON_CXXABI_SUFFIX}) +endif() mason_use(boost_libprogram_options VERSION 1.60.0) mason_use(sqlite VERSION 3.14.2) mason_use(libuv VERSION 1.9.1) @@ -12,34 +14,26 @@ mason_use(benchmark VERSION 1.0.0) include(cmake/loop-uv.cmake) -macro(use_glx_backend _TARGET) - target_sources(${_TARGET} - PRIVATE platform/linux/src/headless_backend_glx.cpp - PRIVATE platform/linux/src/headless_display_glx.cpp - ) - - target_link_libraries(${_TARGET} - PUBLIC -lGL - PUBLIC -lX11 - ) -endmacro() - -macro(use_osmesa_backend _TARGET) - target_sources(${_TARGET} - PRIVATE platform/default/headless_backend_osmesa.cpp - PRIVATE platform/default/headless_display.cpp - ) - - target_add_mason_package(${_TARGET} - PUBLIC mesa - ) -endmacro() - macro(mbgl_platform_core) if (WITH_OSMESA) - use_osmesa_backend(mbgl-core) + target_sources(mbgl-core + PRIVATE platform/default/headless_backend_osmesa.cpp + PRIVATE platform/default/headless_display.cpp + ) + target_add_mason_package(mbgl-core PUBLIC mesa) else() - use_glx_backend(mbgl-core) + target_sources(mbgl-core + PRIVATE platform/linux/src/headless_backend_glx.cpp + PRIVATE platform/linux/src/headless_display_glx.cpp + ) + if (IS_CI_BUILD) + target_add_mason_package(mbgl-core PUBLIC mesa) + else() + target_link_libraries(mbgl-core + PUBLIC -lGL + PUBLIC -lX11 + ) + endif() endif() target_sources(mbgl-core diff --git a/scripts/travis_setup.sh b/scripts/travis_setup.sh index 47df36788d..6c39b3f42c 100755 --- a/scripts/travis_setup.sh +++ b/scripts/travis_setup.sh @@ -46,10 +46,14 @@ if [ -f /etc/init.d/xvfb ] && [ ! -z "${RUN_XVFB}" ]; then # Make sure we're connecting to xvfb export DISPLAY=:99.0 + CXX11ABI="" + if [ `scripts/check-cxx11abi.sh` = 'ON' ]; then + CXX11ABI="-cxx11abi" + fi # Install and set up to load a more recent version of mesa mapbox_time "install_mesa" \ - mason install mesa 11.2.2 - export LD_LIBRARY_PATH="`mason prefix mesa 11.2.2`/lib:${LD_LIBRARY_PATH:-}" + mason install mesa 13.0.0-glx${CXX11ABI} + export LD_LIBRARY_PATH="`mason prefix mesa 13.0.0-glx${CXX11ABI}`/lib:${LD_LIBRARY_PATH:-}" fi # Install and set up to load awscli diff --git a/scripts/valgrind.sup b/scripts/valgrind.sup index f21f54be54..ea3e3d635a 100644 --- a/scripts/valgrind.sup +++ b/scripts/valgrind.sup @@ -180,3 +180,89 @@ fun:draw_wide_line ... } +{ + Ubuntu 14.04 - Travis + Qt5 + Memcheck:Leak + ... + obj:*/libQt5Core.* + ... +} +{ + Ubuntu 14.04 - Travis + Qt5 + Memcheck:Cond + ... + obj:*/libQt5Core.* + ... +} +{ + Ubuntu 14.04 - Travis + Qt5 + Memcheck:Value8 + ... + obj:*/libQt5Core.* + ... +} +{ + Ubuntu 14.04 - Travis + Qt5 + Memcheck:Leak + ... + obj:*/libQt5Gui.* + ... +} +{ + Ubuntu 14.04 - Travis + Qt5 + Memcheck:Cond + ... + obj:*/libQt5Gui.* + ... +} +{ + Ubuntu 14.04 - Travis + Qt5 + Memcheck:Value8 + ... + obj:*/libQt5Gui.* + ... +} +{ + Ubuntu 14.04 - Travis + mesa 13.0.0-glx + Memcheck:Cond + ... + obj:*/mesa/libGL.so.* + ... +} +{ + Ubuntu 14.04 - Travis + mesa 13.0.0-glx + Memcheck:Value8 + ... + obj:*/mesa/libGL.so.* + ... +} +{ + Ubuntu 14.04 - Travis + mesa 13.0.0-glx + Memcheck:Cond + ... + fun:do_rasterize_bin + ... +} +{ + Ubuntu 14.04 - Travis + mesa 13.0.0-glx + Memcheck:Value8 + ... + fun:do_rasterize_bin + ... +} +{ + Ubuntu 14.04 - Travis + mesa 13.0.0-glx + Memcheck:Cond + ... + fun:_ZN6mapbox10pixelmatchEPKhS1_mmPhdb + ... +} +{ + Ubuntu 14.04 - Travis + mesa 13.0.0-glx + Memcheck:Param + write(buf) + ... + obj:*/libc-* + fun:_ZN4mbgl4util10write_fileERKSsS2_ + ... +} |