diff options
Diffstat (limited to 'platform/linux')
-rw-r--r-- | platform/linux/README.md | 9 | ||||
-rw-r--r-- | platform/linux/config.cmake | 9 | ||||
-rwxr-xr-x | platform/linux/scripts/coveralls.sh | 15 | ||||
-rw-r--r-- | platform/linux/src/headless_backend_egl.cpp | 2 | ||||
-rw-r--r-- | platform/linux/src/headless_backend_glx.cpp | 10 | ||||
-rw-r--r-- | platform/linux/src/headless_display_egl.cpp | 3 | ||||
-rw-r--r-- | platform/linux/src/headless_display_glx.cpp | 5 |
7 files changed, 33 insertions, 20 deletions
diff --git a/platform/linux/README.md b/platform/linux/README.md index b6a3b9a446..8b8ac9d089 100644 --- a/platform/linux/README.md +++ b/platform/linux/README.md @@ -8,12 +8,15 @@ This process gives you a Linux desktop app built on a Linux host system. ### Build -Install GCC 5+ if you are running Ubuntu 14.04 or older. Alternatively, you can also use [Clang 3.5+](http://llvm.org/apt/). +Install GCC 4.9+ if you are running Ubuntu 14.04 or older. Alternatively, you can also use [Clang 3.5+](http://llvm.org/apt/). sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test sudo apt-get update - sudo apt-get install gcc-5 g++-5 - export CXX=g++-5 + sudo apt-get install gcc-4.9 g++-4.9 + export CXX=g++-4.9 + +**Note**: We partially support C++14 because GCC 4.9 does not fully implement the +final draft of the C++14 standard. More information in [DEVELOPING.md](DEVELOPING.md). Ensure you have git and other build essentials: diff --git a/platform/linux/config.cmake b/platform/linux/config.cmake index 41e7f71b99..badbde408f 100644 --- a/platform/linux/config.cmake +++ b/platform/linux/config.cmake @@ -1,4 +1,4 @@ -mason_use(glfw VERSION 2017-02-09-77a8f10) +mason_use(glfw VERSION 2017-07-13-67c9155) mason_use(mesa VERSION 13.0.4) mason_use(boost_libprogram_options VERSION 1.62.0${MASON_CXXABI_SUFFIX}) mason_use(sqlite VERSION 3.14.2) @@ -8,7 +8,7 @@ mason_use(libpng VERSION 1.6.25) mason_use(libjpeg-turbo VERSION 1.5.0) mason_use(webp VERSION 0.5.1) mason_use(gtest VERSION 1.8.0${MASON_CXXABI_SUFFIX}) -mason_use(benchmark VERSION 1.0.0-1) +mason_use(benchmark VERSION 1.2.0) mason_use(icu VERSION 58.1-min-size) # Link with libuv. This is not part of loop-uv.cmake because loop-uv.cmake is also @@ -69,6 +69,7 @@ macro(mbgl_platform_core) PRIVATE platform/default/string_stdlib.cpp PRIVATE platform/default/thread.cpp PRIVATE platform/default/bidi.cpp + PRIVATE platform/default/thread_local.cpp PRIVATE platform/default/utf.cpp # Image handling @@ -79,11 +80,11 @@ macro(mbgl_platform_core) PRIVATE platform/default/webp_reader.cpp # Headless view + PRIVATE platform/default/mbgl/gl/headless_frontend.cpp + PRIVATE platform/default/mbgl/gl/headless_frontend.hpp PRIVATE platform/default/mbgl/gl/headless_backend.cpp PRIVATE platform/default/mbgl/gl/headless_backend.hpp PRIVATE platform/default/mbgl/gl/headless_display.hpp - PRIVATE platform/default/mbgl/gl/offscreen_view.cpp - PRIVATE platform/default/mbgl/gl/offscreen_view.hpp # Thread pool PRIVATE platform/default/mbgl/util/default_thread_pool.cpp diff --git a/platform/linux/scripts/coveralls.sh b/platform/linux/scripts/coveralls.sh index b8ab73a24e..57affe1e28 100755 --- a/platform/linux/scripts/coveralls.sh +++ b/platform/linux/scripts/coveralls.sh @@ -3,9 +3,13 @@ set -e set -o pipefail +command -v lcov 2> /dev/null || { + echo "Aborting: lcov not found." + exit 1 +} + # Collect coverage data and save it into coverage.info -mapbox_time "lcov_capture" \ -`scripts/mason.sh PREFIX lcov VERSION 1.12`/usr/bin/lcov \ +lcov \ --quiet \ --capture \ --no-external \ @@ -17,5 +21,8 @@ mapbox_time "lcov_capture" \ --base-directory "build/linux-x86_64/${BUILDTYPE}" \ --output-file "build/linux-x86_64/${BUILDTYPE}/coverage.info" -mapbox_time "coveralls_upload" \ -coveralls-lcov "build/linux-x86_64/${BUILDTYPE}/coverage.info" +coveralls-lcov \ + --service-name="${COVERALLS_SERVICE_NAME}" \ + --repo-token="${COVERALLS_REPO_TOKEN}" \ + --service-job-id="${CIRCLE_BUILD_NUM}" \ + "build/linux-x86_64/${BUILDTYPE}/coverage.info" diff --git a/platform/linux/src/headless_backend_egl.cpp b/platform/linux/src/headless_backend_egl.cpp index d98b2edc03..0784173af7 100644 --- a/platform/linux/src/headless_backend_egl.cpp +++ b/platform/linux/src/headless_backend_egl.cpp @@ -67,7 +67,7 @@ gl::ProcAddress HeadlessBackend::initializeExtension(const char* name) { bool HeadlessBackend::hasDisplay() { if (!display) { - display.reset(new HeadlessDisplay); + display = HeadlessDisplay::create(); } return bool(display); }; diff --git a/platform/linux/src/headless_backend_glx.cpp b/platform/linux/src/headless_backend_glx.cpp index 36a60ec06b..0ba7f08630 100644 --- a/platform/linux/src/headless_backend_glx.cpp +++ b/platform/linux/src/headless_backend_glx.cpp @@ -17,7 +17,7 @@ struct GLXImpl : public HeadlessBackend::Impl { fbConfigs(fbConfigs_) { } - ~GLXImpl() { + ~GLXImpl() override { if (glxPbuffer) { glXDestroyPbuffer(xDisplay, glxPbuffer); } @@ -50,7 +50,7 @@ gl::ProcAddress HeadlessBackend::initializeExtension(const char* name) { bool HeadlessBackend::hasDisplay() { if (!display) { - display.reset(new HeadlessDisplay); + display = HeadlessDisplay::create(); } return bool(display); }; @@ -58,8 +58,8 @@ bool HeadlessBackend::hasDisplay() { void HeadlessBackend::createContext() { assert(!hasContext()); - Display* xDisplay = display->attribute<Display*>(); - GLXFBConfig* fbConfigs = display->attribute<GLXFBConfig*>(); + auto* xDisplay = display->attribute<Display*>(); + auto* fbConfigs = display->attribute<GLXFBConfig*>(); // Try to create a legacy context. GLXContext glContext = glXCreateNewContext(xDisplay, fbConfigs[0], GLX_RGBA_TYPE, None, True); @@ -81,7 +81,7 @@ void HeadlessBackend::createContext() { }; GLXPbuffer glxPbuffer = glXCreatePbuffer(xDisplay, fbConfigs[0], pbufferAttributes); - impl.reset(new GLXImpl(glContext, glxPbuffer, xDisplay, fbConfigs)); + impl = std::make_unique<mbgl::GLXImpl>(glContext, glxPbuffer, xDisplay, fbConfigs); } } // namespace mbgl diff --git a/platform/linux/src/headless_display_egl.cpp b/platform/linux/src/headless_display_egl.cpp index 03c8e16a59..b746211924 100644 --- a/platform/linux/src/headless_display_egl.cpp +++ b/platform/linux/src/headless_display_egl.cpp @@ -32,6 +32,9 @@ HeadlessDisplay::Impl::Impl() { } const EGLint attribs[] = { +#if MBGL_USE_GLES2 + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, +#endif EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, EGL_NONE }; diff --git a/platform/linux/src/headless_display_glx.cpp b/platform/linux/src/headless_display_glx.cpp index 4275ebb646..5dc342154d 100644 --- a/platform/linux/src/headless_display_glx.cpp +++ b/platform/linux/src/headless_display_glx.cpp @@ -27,7 +27,7 @@ HeadlessDisplay::Impl::Impl() { throw std::runtime_error("Failed to open X display."); } - const char *extensions = reinterpret_cast<const char *>(glXQueryServerString(xDisplay, DefaultScreen(xDisplay), GLX_EXTENSIONS)); + const auto *extensions = reinterpret_cast<const char *>(glXQueryServerString(xDisplay, DefaultScreen(xDisplay), GLX_EXTENSIONS)); if (!extensions) { throw std::runtime_error("Cannot read GLX extensions."); } @@ -73,7 +73,6 @@ HeadlessDisplay::HeadlessDisplay() : impl(std::make_unique<Impl>()) { } -HeadlessDisplay::~HeadlessDisplay() { -} +HeadlessDisplay::~HeadlessDisplay() = default; } // namespace mbgl |