summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2016-11-07 10:54:38 +0200
committerBruno de Oliveira Abinader <bruno@mapbox.com>2016-11-08 18:02:38 +0200
commit8e99ae44dd5bf72bc8bd844251e9d670095804ac (patch)
tree38ddbf84fea7c9385de25f981d298fec9a99166a
parentd0ac12309b470eb59690ece3f15773df73a127e1 (diff)
downloadqtlocation-mapboxgl-8e99ae44dd5bf72bc8bd844251e9d670095804ac.tar.gz
[build] Use mesa-13.0.0-glx in CI builds
m---------.mason0
-rw-r--r--.travis.yml4
-rw-r--r--CMakeLists.txt7
-rw-r--r--Makefile7
-rw-r--r--cmake/benchmark.cmake6
-rw-r--r--cmake/test.cmake6
-rw-r--r--platform/linux/config.cmake46
-rwxr-xr-xscripts/travis_setup.sh8
-rw-r--r--scripts/valgrind.sup86
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)
diff --git a/Makefile b/Makefile
index 29acc367f4..5effbe819b 100644
--- a/Makefile
+++ b/Makefile
@@ -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_
+ ...
+}