diff options
-rwxr-xr-x | configure | 14 | ||||
-rw-r--r-- | docker/linux/Dockerfile | 19 | ||||
-rw-r--r-- | docker/linux/run-clang.sh | 15 | ||||
-rwxr-xr-x | docker/linux/run-gcc.sh | 15 | ||||
-rwxr-xr-x | docker/linux/test.sh | 26 | ||||
-rw-r--r-- | gyp/core.gypi | 3 | ||||
-rw-r--r-- | gyp/headless-glx.gypi | 6 | ||||
-rw-r--r-- | gyp/platform-osx.gypi | 2 | ||||
-rw-r--r-- | linux/mapboxgl-app.gyp | 5 | ||||
-rwxr-xr-x | scripts/travis_before_install.sh | 3 | ||||
-rw-r--r-- | test/test.gyp | 9 |
11 files changed, 101 insertions, 16 deletions
@@ -50,6 +50,12 @@ case ${MASON_PLATFORM} in ;; esac +if [ ${MASON_PLATFORM} == 'linux' ] ; then + MESA_VERSION=10.4.3 + mason install mesa ${MESA_VERSION} + export PKG_CONFIG_PATH=`mason prefix mesa ${MESA_VERSION}`/lib/pkgconfig +fi + function abort { >&2 echo -e "\033[1m\033[31m$1\033[0m"; exit 1; } if [ -z ${CONFIG_FILE} ]; then @@ -121,6 +127,14 @@ if [ ! -z ${GLFW_VERSION} ]; then CONFIG+=" 'glfw3_ldflags%': $(quote_flags $(mason ldflags glfw ${GLFW_VERSION})),"$LN fi +if [ ${MASON_PLATFORM} == 'linux' ]; then + CONFIG+=" 'opengl_cflags%': $(quote_flags $(pkg-config gl --cflags)),"$LN + CONFIG+=" 'opengl_ldflags%': $(quote_flags $(pkg-config gl --libs)),"$LN +else + CONFIG+=" 'opengl_cflags%': $(quote_flags),"$LN + CONFIG+=" 'opengl_ldflags%': $(quote_flags),"$LN +fi + if [ ! -z ${LIBPNG_VERSION} ]; then mason install libpng ${LIBPNG_VERSION} CONFIG+=" 'png_static_libs%': $(quote_flags $(mason static_libs libpng ${LIBPNG_VERSION})),"$LN diff --git a/docker/linux/Dockerfile b/docker/linux/Dockerfile new file mode 100644 index 0000000000..0d23fe1e79 --- /dev/null +++ b/docker/linux/Dockerfile @@ -0,0 +1,19 @@ +FROM ubuntu:12.04 + +RUN apt-get update -y && \ + apt-get install -y build-essential git-core python-pip python-software-properties software-properties-common && \ + rm -rf /var/lib/apt/lists/* + +RUN add-apt-repository --yes ppa:ubuntu-toolchain-r/test && \ + add-apt-repository --yes ppa:boost-latest/ppa && \ + apt-get update -y && \ + apt-get -y install gcc-4.8 g++-4.8 curl zlib1g-dev automake gdb libtool xutils-dev make cmake pkg-config python-pip libboost1.55-dev libcurl4-openssl-dev libpng-dev libsqlite3-dev mesa-utils libxi-dev x11proto-randr-dev x11proto-xext-dev libxrandr-dev x11proto-xf86vidmode-dev libxxf86vm-dev libxcursor-dev libxinerama-dev xvfb llvm-3.4 && \ + pip install awscli + +RUN apt-get install -y imagemagick + +RUN useradd -ms /bin/bash mapbox + +USER mapbox +ENV HOME /home/mapbox +WORKDIR /home/mapbox diff --git a/docker/linux/run-clang.sh b/docker/linux/run-clang.sh new file mode 100644 index 0000000000..cb9f6f417f --- /dev/null +++ b/docker/linux/run-clang.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +docker build \ + -t mapbox/gl-native:linux \ + docker/linux + +docker run \ + -i \ + -e "CXX=clang++" \ + -v `pwd`:/home/mapbox/build \ + -t mapbox/gl-native:linux \ + build/docker/linux/test.sh diff --git a/docker/linux/run-gcc.sh b/docker/linux/run-gcc.sh new file mode 100755 index 0000000000..093771f1a4 --- /dev/null +++ b/docker/linux/run-gcc.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +docker build \ + -t mapbox/gl-native:linux \ + docker/linux + +docker run \ + -i \ + -e "CXX=g++" \ + -v `pwd`:/home/mapbox/build \ + -t mapbox/gl-native:linux \ + build/docker/linux/test.sh diff --git a/docker/linux/test.sh b/docker/linux/test.sh new file mode 100755 index 0000000000..9ef9bf51f5 --- /dev/null +++ b/docker/linux/test.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +export TRAVIS_OS_NAME=linux + +cd build + +source ./scripts/local_mason.sh +mason install mesa 10.4.3 +export LD_LIBRARY_PATH=`mason prefix mesa 10.4.3`/lib + +export DISPLAY=:99.0 +Xvfb :99 -ac -screen 0 1024x768x24 & + +if [[ ${CXX} == "g++" ]]; then + export CXX="g++-4.8" + export CC="gcc-4.8" +fi + +source ./scripts/install_node.sh + +make linux -j`nproc` +make test-* -j`nproc` +./scripts/compare_images.sh diff --git a/gyp/core.gypi b/gyp/core.gypi index 9a3b07d0bb..246419371c 100644 --- a/gyp/core.gypi +++ b/gyp/core.gypi @@ -29,14 +29,17 @@ 'variables': { 'cflags_cc': [ '<@(uv_cflags)', + '<@(opengl_cflags)', '<@(boost_cflags)', ], 'cflags': [ '<@(uv_cflags)', + '<@(opengl_cflags)', '-fPIC' ], 'ldflags': [ '<@(uv_ldflags)', + '<@(opengl_ldflags)', ], 'libraries': [ '<@(uv_static_libs)', diff --git a/gyp/headless-glx.gypi b/gyp/headless-glx.gypi index 06062be75f..5b9f3e136f 100644 --- a/gyp/headless-glx.gypi +++ b/gyp/headless-glx.gypi @@ -13,6 +13,12 @@ 'include_dirs': [ '../include', ], + + 'cflags_cc': [ '<@(opengl_cflags)' ], + + 'link_settings': { + 'libraries': [ '<@(opengl_ldflags)' ], + }, }, ], } diff --git a/gyp/platform-osx.gypi b/gyp/platform-osx.gypi index 011f26e836..39e18bb839 100644 --- a/gyp/platform-osx.gypi +++ b/gyp/platform-osx.gypi @@ -29,6 +29,8 @@ '-framework Foundation', '-framework ImageIO', '-framework CoreServices', + '-framework OpenGL', + '-framework ApplicationServices', ], }, diff --git a/linux/mapboxgl-app.gyp b/linux/mapboxgl-app.gyp index e7fc27da10..433a061e43 100644 --- a/linux/mapboxgl-app.gyp +++ b/linux/mapboxgl-app.gyp @@ -52,11 +52,6 @@ 'libraries': [ '<@(libraries)', '<@(ldflags)' ], }] ], - - 'copies': [{ - 'files': [ '../styles/styles' ], - 'destination': '<(PRODUCT_DIR)' - }], }, ], } diff --git a/scripts/travis_before_install.sh b/scripts/travis_before_install.sh index f837e74161..7b0b7ea873 100755 --- a/scripts/travis_before_install.sh +++ b/scripts/travis_before_install.sh @@ -31,9 +31,6 @@ if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then x11proto-xf86vidmode-dev libxxf86vm-dev \ libxcursor-dev libxinerama-dev \ llvm-3.4 # required for mesa - - mapbox_time "install_mesa" \ - mason install mesa 10.4.3 fi mapbox_time "install_awscli" \ diff --git a/test/test.gyp b/test/test.gyp index 9e542aec2f..719207a02e 100644 --- a/test/test.gyp +++ b/test/test.gyp @@ -67,22 +67,15 @@ ], 'libraries': [ '<@(uv_static_libs)', - '<@(glfw3_static_libs)', - '<@(sqlite3_static_libs)', - '<@(zlib_static_libs)', - '<@(curl_static_libs)', ], 'variables': { 'cflags_cc': [ '<@(uv_cflags)', + '<@(opengl_cflags)', '<@(boost_cflags)', ], 'ldflags': [ '<@(uv_ldflags)', - '<@(glfw3_ldflags)', - '<@(sqlite3_ldflags)', - '<@(zlib_ldflags)', - '<@(curl_ldflags)', ], }, 'conditions': [ |