Updates vendored mason to v0.4 for LLVM 3.9.1
This commit is contained in:
commit
93d89ad686
16
third_party/mason/CHANGELOG.md
vendored
16
third_party/mason/CHANGELOG.md
vendored
@ -1,4 +1,18 @@
|
||||
|
||||
## 0.4.0
|
||||
|
||||
- Now defaulting to clang 3.9.1 for building binaries
|
||||
- clang++ binaries no longer distribute libc++ headers on OS X (instead they depend on system)
|
||||
- Reduced size of v8 libs by striping debug symbols
|
||||
- Fixed minjur latest package to build in Release mode
|
||||
- Added polylabel 1.0.2, protozero 1.4.5, rocksdb v4.13, libosmium 2.10.3, llvm 3.9.1,
|
||||
boost 1.63.0, cmake 3.7.1, cairo 1.14.6, freetype 2.6.5, harfbuzz 1.3.0, jpeg_turbo 1.5.0,
|
||||
libpng 1.6.24, pixman 0.34.0, sqlite 3.14.1, twemproxy 0.4.1,
|
||||
- Removed llvm 3.8.0, clang 3.8.0, llvm 3.9.0, luabind, luajit
|
||||
- Rebuilt libpq 9.5.2, libtiff 4.0.6, utfcpp 2.3.4, minjur latest
|
||||
|
||||
Changes: https://github.com/mapbox/mason/compare/v0.3.0...v0.4.0
|
||||
|
||||
## 0.3.0
|
||||
|
||||
- Updated android compile flags
|
||||
@ -7,7 +21,7 @@
|
||||
- Added tippecanoe `1.15.1`
|
||||
- Added `iwyu` and `asan_symbolize` python script to llvm+clang++ packages
|
||||
|
||||
Changes: https://github.com/mapbox/mason/compare/v0.1.1...v0.2.0
|
||||
Changes: https://github.com/mapbox/mason/compare/v0.2.0...v0.3.0
|
||||
|
||||
## 0.2.0
|
||||
|
||||
|
2
third_party/mason/mason
vendored
2
third_party/mason/mason
vendored
@ -7,7 +7,7 @@ MASON_VERSION=$1 ; shift
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
MASON_RELEASED_VERSION="0.3.0"
|
||||
MASON_RELEASED_VERSION="0.4.0"
|
||||
|
||||
if [ "${MASON_COMMAND}" = "--version" ]; then
|
||||
echo ${MASON_RELEASED_VERSION}
|
||||
|
@ -1,16 +1,10 @@
|
||||
language: cpp
|
||||
|
||||
sudo: false
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: clang
|
||||
sudo: false
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
12
third_party/mason/scripts/boost/1.63.0/base.sh
vendored
Normal file
12
third_party/mason/scripts/boost/1.63.0/base.sh
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# NOTE: use the ./utils/new_boost.sh script to create new versions
|
||||
|
||||
export MASON_VERSION=1.63.0
|
||||
export BOOST_VERSION=${MASON_VERSION//./_}
|
||||
export BOOST_TOOLSET="clang"
|
||||
export BOOST_TOOLSET_CXX="clang++"
|
||||
export BOOST_ARCH="x86"
|
||||
export BOOST_SHASUM=5c5cf0fd35a5950ed9e00ba54153df47747803f9
|
||||
# special override to ensure each library shares the cached download
|
||||
export MASON_DOWNLOAD_SLUG="boost-${MASON_VERSION}"
|
64
third_party/mason/scripts/boost/1.63.0/common.sh
vendored
Normal file
64
third_party/mason/scripts/boost/1.63.0/common.sh
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
http://downloads.sourceforge.net/project/boost/boost/${MASON_VERSION}/boost_${BOOST_VERSION}.tar.bz2 \
|
||||
${BOOST_SHASUM}
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/boost_${BOOST_VERSION}
|
||||
|
||||
mason_extract_tar_bz2
|
||||
}
|
||||
|
||||
function gen_config() {
|
||||
echo "using $1 : : $(which $2)" > user-config.jam
|
||||
if [[ "${AR:-false}" != false ]] || [[ "${RANLIB:-false}" != false ]]; then
|
||||
echo ' : ' >> user-config.jam
|
||||
if [[ "${AR:-false}" != false ]]; then
|
||||
echo "<archiver>${AR} " >> user-config.jam
|
||||
fi
|
||||
if [[ "${RANLIB:-false}" != false ]]; then
|
||||
echo "<ranlib>${RANLIB} " >> user-config.jam
|
||||
fi
|
||||
fi
|
||||
echo ' ;' >> user-config.jam
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
gen_config ${BOOST_TOOLSET} ${BOOST_TOOLSET_CXX}
|
||||
if [[ ! -f ./b2 ]] ; then
|
||||
./bootstrap.sh
|
||||
fi
|
||||
./b2 \
|
||||
--with-${BOOST_LIBRARY} \
|
||||
--prefix=${MASON_PREFIX} \
|
||||
-j${MASON_CONCURRENCY} \
|
||||
-d0 \
|
||||
--ignore-site-config --user-config=user-config.jam \
|
||||
architecture="${BOOST_ARCH}" \
|
||||
toolset="${BOOST_TOOLSET}" \
|
||||
link=static \
|
||||
variant=release \
|
||||
linkflags="${LDFLAGS:-" "}" \
|
||||
cxxflags="${CXXFLAGS:-" "}" \
|
||||
stage
|
||||
mkdir -p $(dirname ${MASON_PREFIX}/${MASON_LIB_FILE})
|
||||
mv stage/${MASON_LIB_FILE} ${MASON_PREFIX}/${MASON_LIB_FILE}
|
||||
}
|
||||
|
||||
function mason_prefix {
|
||||
echo "${MASON_PREFIX}"
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo "-I${MASON_PREFIX}/include"
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
local LOCAL_LDFLAGS
|
||||
LOCAL_LDFLAGS="-L${MASON_PREFIX}/lib"
|
||||
if [[ ${BOOST_LIBRARY:-false} != false ]]; then
|
||||
LOCAL_LDFLAGS="${LOCAL_LDFLAGS} -lboost_${BOOST_LIBRARY}"
|
||||
fi
|
||||
echo $LOCAL_LDFLAGS
|
||||
}
|
61
third_party/mason/scripts/boost/1.63.0/script.sh
vendored
Executable file
61
third_party/mason/scripts/boost/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
source ${HERE}/base.sh
|
||||
|
||||
# this package is the one that is header-only
|
||||
MASON_NAME=boost
|
||||
MASON_HEADER_ONLY=true
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${HERE}/common.sh
|
||||
|
||||
# override default unpacking to just unpack headers
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
http://downloads.sourceforge.net/project/boost/boost/${MASON_VERSION}/boost_${BOOST_VERSION}.tar.bz2 \
|
||||
${BOOST_SHASUM}
|
||||
|
||||
mason_extract_tar_bz2 boost_${BOOST_VERSION}/boost
|
||||
|
||||
MASON_BUILD_PATH=${MASON_ROOT}/.build/boost_${BOOST_VERSION}
|
||||
}
|
||||
|
||||
# override default "compile" target for just the header install
|
||||
function mason_compile {
|
||||
mkdir -p ${MASON_PREFIX}/include
|
||||
cp -r ${MASON_ROOT}/.build/boost_${BOOST_VERSION}/boost ${MASON_PREFIX}/include
|
||||
|
||||
# work around NDK bug https://code.google.com/p/android/issues/detail?id=79483
|
||||
|
||||
patch ${MASON_PREFIX}/include/boost/core/demangle.hpp <<< "19a20,21
|
||||
> #if !defined(__ANDROID__)
|
||||
>
|
||||
25a28,29
|
||||
> #endif
|
||||
>
|
||||
"
|
||||
|
||||
# work around https://github.com/Project-OSRM/node-osrm/issues/191
|
||||
patch ${MASON_PREFIX}/include/boost/interprocess/detail/os_file_functions.hpp <<< "471c471
|
||||
< return ::open(name, (int)mode);
|
||||
---
|
||||
> return ::open(name, (int)mode,S_IRUSR|S_IWUSR);
|
||||
"
|
||||
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_static_libs {
|
||||
:
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -3,22 +3,17 @@ language: generic
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode7.3
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env: CXX=g++-5 CC=gcc-5
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++6
|
||||
- g++-5
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
26
third_party/mason/scripts/boost_libatomic/1.63.0/script.sh
vendored
Executable file
26
third_party/mason/scripts/boost_libatomic/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
mason_run "$@"
|
@ -3,22 +3,17 @@ language: generic
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode7.3
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env: CXX=g++-5 CC=gcc-5
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++6
|
||||
- g++-5
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
26
third_party/mason/scripts/boost_libchrono/1.63.0/script.sh
vendored
Executable file
26
third_party/mason/scripts/boost_libchrono/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
mason_run "$@"
|
@ -3,22 +3,17 @@ language: generic
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode7.3
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env: CXX=g++-5 CC=gcc-5
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++6
|
||||
- g++-5
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
26
third_party/mason/scripts/boost_libdate_time/1.63.0/script.sh
vendored
Executable file
26
third_party/mason/scripts/boost_libdate_time/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
mason_run "$@"
|
@ -1,19 +1,9 @@
|
||||
language: generic
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.ccache
|
||||
|
||||
env:
|
||||
global:
|
||||
- CCACHE_TEMPDIR=/tmp/.ccache-temp
|
||||
- CCACHE_COMPRESS=1
|
||||
- CASHER_TIME_OUT=1000
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode7.3
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
@ -22,12 +12,8 @@ matrix:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++6
|
||||
- libstdc++-5-dev
|
||||
- g++-5
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
26
third_party/mason/scripts/boost_libfilesystem/1.63.0/script.sh
vendored
Executable file
26
third_party/mason/scripts/boost_libfilesystem/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/boost_libiostreams/1.63.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/boost_libiostreams/1.63.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
26
third_party/mason/scripts/boost_libiostreams/1.63.0/script.sh
vendored
Executable file
26
third_party/mason/scripts/boost_libiostreams/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/boost_libprogram_options/1.63.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/boost_libprogram_options/1.63.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
26
third_party/mason/scripts/boost_libprogram_options/1.63.0/script.sh
vendored
Executable file
26
third_party/mason/scripts/boost_libprogram_options/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/boost_libpython/1.63.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/boost_libpython/1.63.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
12
third_party/mason/scripts/boost_libpython/1.63.0/patch.diff
vendored
Normal file
12
third_party/mason/scripts/boost_libpython/1.63.0/patch.diff
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
--- libs/python/src/converter/builtin_converters.cpp 2012-12-07 11:51:06.000000000 -0800
|
||||
+++ libs/python/src/converter/builtin_converters.cpp 2014-04-01 17:24:37.000000000 -0700
|
||||
@@ -32,7 +32,9 @@
|
||||
|
||||
void shared_ptr_deleter::operator()(void const*)
|
||||
{
|
||||
+ PyGILState_STATE gil = PyGILState_Ensure();
|
||||
owner.reset();
|
||||
+ PyGILState_Release(gil);
|
||||
}
|
||||
|
||||
namespace
|
96
third_party/mason/scripts/boost_libpython/1.63.0/script.sh
vendored
Executable file
96
third_party/mason/scripts/boost_libpython/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,96 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
function write_python_config() {
|
||||
# usage:
|
||||
# write_python_config <user-config.jam> <version> <base> <variant>
|
||||
PYTHON_VERSION=$2
|
||||
# note: apple pythons need '/System'
|
||||
PYTHON_BASE=$3
|
||||
# note: python 3 uses 'm'
|
||||
PYTHON_VARIANT=$4
|
||||
if [[ ${UNAME} == 'Darwin' ]]; then
|
||||
echo "
|
||||
using python
|
||||
: ${PYTHON_VERSION} # version
|
||||
: ${PYTHON_BASE}/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/bin/python${PYTHON_VERSION}${PYTHON_VARIANT} # cmd-or-prefix
|
||||
: ${PYTHON_BASE}/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/include/python${PYTHON_VERSION}${PYTHON_VARIANT} # includes
|
||||
: ${PYTHON_BASE}/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/lib/python${PYTHON_VERSION}/config${PYTHON_VARIANT} # a lib actually symlink
|
||||
: <toolset>${BOOST_TOOLSET} # condition
|
||||
;
|
||||
" >> $1
|
||||
else
|
||||
if [[ ${UNAME} == 'FreeBSD' ]]; then
|
||||
echo "
|
||||
using python
|
||||
: ${PYTHON_VERSION} # version
|
||||
: /usr/local/bin/python${PYTHON_VERSION}${PYTHON_VARIANT} # cmd-or-prefix
|
||||
: /usr/local/include/python${PYTHON_VERSION} # includes
|
||||
: /usr/local/lib/python${PYTHON_VERSION}/config${PYTHON_VARIANT}
|
||||
: <toolset>${BOOST_TOOLSET} # condition
|
||||
;
|
||||
" >> $1
|
||||
else
|
||||
echo "
|
||||
using python
|
||||
: ${PYTHON_VERSION} # version
|
||||
: /usr/bin/python${PYTHON_VERSION}${PYTHON_VARIANT} # cmd-or-prefix
|
||||
: /usr/include/python${PYTHON_VERSION} # includes
|
||||
: /usr/lib/python${PYTHON_VERSION}/config${PYTHON_VARIANT}
|
||||
: <toolset>${BOOST_TOOLSET} # condition
|
||||
;
|
||||
" >> $1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
# patch to workaround crashes in python.input
|
||||
# https://github.com/mapnik/mapnik/issues/1968
|
||||
mason_step "Loading patch ${MASON_DIR}/scripts/${MASON_NAME}/${MASON_VERSION}/patch.diff"
|
||||
patch -N -p0 < ${MASON_DIR}/scripts/${MASON_NAME}/${MASON_VERSION}/patch.diff
|
||||
write_python_config user-config.jam "2.7" "/System" ""
|
||||
gen_config ${BOOST_TOOLSET} ${BOOST_TOOLSET_CXX}
|
||||
if [[ ! -f ./b2 ]] ; then
|
||||
./bootstrap.sh
|
||||
fi
|
||||
./b2 \
|
||||
--with-${BOOST_LIBRARY} \
|
||||
--prefix=${MASON_PREFIX} \
|
||||
-j${MASON_CONCURRENCY} \
|
||||
-d0 \
|
||||
--ignore-site-config --user-config=user-config.jam \
|
||||
architecture="${BOOST_ARCH}" \
|
||||
toolset="${BOOST_TOOLSET}" \
|
||||
link=static \
|
||||
variant=release \
|
||||
linkflags="${LDFLAGS:-" "}" \
|
||||
cxxflags="${CXXFLAGS:-" "}" \
|
||||
stage
|
||||
mkdir -p $(dirname ${MASON_PREFIX}/${MASON_LIB_FILE})
|
||||
mv stage/${MASON_LIB_FILE} ${MASON_PREFIX}/${MASON_LIB_FILE}
|
||||
}
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/boost_libregex/1.63.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/boost_libregex/1.63.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
26
third_party/mason/scripts/boost_libregex/1.63.0/script.sh
vendored
Executable file
26
third_party/mason/scripts/boost_libregex/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/boost_libregex_icu/1.63.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/boost_libregex_icu/1.63.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
58
third_party/mason/scripts/boost_libregex_icu/1.63.0/script.sh
vendored
Executable file
58
third_party/mason/scripts/boost_libregex_icu/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
# Note: cannot duduce from directory since it is named in a custom way
|
||||
#BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
BOOST_LIBRARY=regex
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
function mason_prepare_compile {
|
||||
${MASON_DIR}/mason install icu 55.1
|
||||
MASON_ICU=$(${MASON_DIR}/mason prefix icu 55.1)
|
||||
}
|
||||
|
||||
# custom compile that gets icu working
|
||||
function mason_compile {
|
||||
gen_config ${BOOST_TOOLSET} ${BOOST_TOOLSET_CXX}
|
||||
if [[ ! -f ./b2 ]] ; then
|
||||
./bootstrap.sh
|
||||
fi
|
||||
echo 'int main() { return 0; }' > libs/regex/build/has_icu_test.cpp
|
||||
./b2 \
|
||||
--with-${BOOST_LIBRARY} \
|
||||
--prefix=${MASON_PREFIX} \
|
||||
-j${MASON_CONCURRENCY} \
|
||||
-sHAVE_ICU=1 -sICU_PATH=${MASON_ICU} --reconfigure --debug-configuration \
|
||||
-d0 \
|
||||
--ignore-site-config --user-config=user-config.jam \
|
||||
architecture="${BOOST_ARCH}" \
|
||||
toolset="${BOOST_TOOLSET}" \
|
||||
link=static \
|
||||
variant=release \
|
||||
linkflags="${LDFLAGS:-" "}" \
|
||||
cxxflags="${CXXFLAGS:-" "}" \
|
||||
stage
|
||||
mkdir -p $(dirname ${MASON_PREFIX}/${MASON_LIB_FILE})
|
||||
mv stage/${MASON_LIB_FILE} ${MASON_PREFIX}/${MASON_LIB_FILE}
|
||||
}
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/boost_libsystem/1.63.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/boost_libsystem/1.63.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
26
third_party/mason/scripts/boost_libsystem/1.63.0/script.sh
vendored
Executable file
26
third_party/mason/scripts/boost_libsystem/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/boost_libtest/1.63.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/boost_libtest/1.63.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
26
third_party/mason/scripts/boost_libtest/1.63.0/script.sh
vendored
Executable file
26
third_party/mason/scripts/boost_libtest/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/boost_libthread/1.63.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/boost_libthread/1.63.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
26
third_party/mason/scripts/boost_libthread/1.63.0/script.sh
vendored
Executable file
26
third_party/mason/scripts/boost_libthread/1.63.0/script.sh
vendored
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# key properties unique to this library
|
||||
THIS_DIR=$(basename $(dirname $HERE))
|
||||
BOOST_LIBRARY=${THIS_DIR#boost_lib}
|
||||
MASON_NAME=boost_lib${BOOST_LIBRARY}
|
||||
MASON_LIB_FILE=lib/libboost_${BOOST_LIBRARY}.a
|
||||
# hack for inconsistently named test lib
|
||||
if [[ ${MASON_LIB_FILE} == "lib/libboost_test.a" ]]; then
|
||||
MASON_LIB_FILE=lib/libboost_unit_test_framework.a
|
||||
fi
|
||||
|
||||
# inherit from boost base (used for all boost library packages)
|
||||
BASE_PATH=${HERE}/../../boost/$(basename $HERE)
|
||||
source ${BASE_PATH}/base.sh
|
||||
|
||||
# setup mason env
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
# source common build functions
|
||||
source ${BASE_PATH}/common.sh
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/cairo/1.14.6/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/cairo/1.14.6/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
96
third_party/mason/scripts/cairo/1.14.6/patch.diff
vendored
Normal file
96
third_party/mason/scripts/cairo/1.14.6/patch.diff
vendored
Normal file
@ -0,0 +1,96 @@
|
||||
diff --git a/build/configure.ac.tools b/build/configure.ac.tools
|
||||
index a24dbce..aaf0e5d 100644
|
||||
--- a/build/configure.ac.tools
|
||||
+++ b/build/configure.ac.tools
|
||||
@@ -10,16 +10,3 @@ AC_C_INLINE
|
||||
|
||||
dnl ===========================================================================
|
||||
|
||||
-PKG_PROG_PKG_CONFIG()
|
||||
-if test "x$PKG_CONFIG" = x; then
|
||||
- AC_MSG_ERROR([pkg-config >= $PKGCONFIG_REQUIRED required but not found (http://pkgconfig.freedesktop.org/)])
|
||||
-fi
|
||||
-
|
||||
-dnl Check for recent pkg-config which supports Requires.private
|
||||
-case `$PKG_CONFIG --version` in
|
||||
-[0.?|0.?.?|0.1[0-7]|0.1[0-7].?]) PKGCONFIG_REQUIRES="Requires"; ;;
|
||||
-*) PKGCONFIG_REQUIRES="Requires.private"; ;;
|
||||
-esac
|
||||
-
|
||||
-AC_SUBST(PKGCONFIG_REQUIRES)
|
||||
-
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 2ce1959..87c71ac 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -321,26 +321,7 @@ CAIRO_ENABLE_SURFACE_BACKEND(gallium, Gallium3D, no, [
|
||||
dnl ===========================================================================
|
||||
|
||||
CAIRO_ENABLE_FUNCTIONS(png, PNG, yes, [
|
||||
- use_png=no
|
||||
- AC_ARG_VAR([png_REQUIRES], [module name for libpng to search for using pkg-config])
|
||||
- if test "x$png_REQUIRES" = x; then
|
||||
- # libpng13 is GnuWin32's libpng-1.2.8 :-(
|
||||
- for l in libpng libpng14 libpng12 libpng13 libpng10; do
|
||||
- if $PKG_CONFIG --exists $l ; then
|
||||
- png_REQUIRES=$l
|
||||
- use_png=yes
|
||||
- break
|
||||
- fi
|
||||
- done
|
||||
- else
|
||||
- use_png=yes
|
||||
- fi
|
||||
-
|
||||
- if test "x$use_png" = "xyes" ; then
|
||||
- PKG_CHECK_MODULES(png, $png_REQUIRES, , : )
|
||||
- else
|
||||
- AC_MSG_WARN([Could not find libpng in the pkg-config search path])
|
||||
- fi
|
||||
+ use_png=yes
|
||||
])
|
||||
|
||||
dnl ===========================================================================
|
||||
@@ -495,10 +476,6 @@ FREETYPE_MIN_RELEASE=2.1.9
|
||||
FREETYPE_MIN_VERSION=9.7.3
|
||||
|
||||
CAIRO_ENABLE_FONT_BACKEND(ft, FreeType, auto, [
|
||||
-
|
||||
- PKG_CHECK_MODULES(FREETYPE, freetype2 >= $FREETYPE_MIN_VERSION,
|
||||
- [freetype_pkgconfig=yes],
|
||||
- [freetype_pkgconfig=no])
|
||||
|
||||
if test "x$freetype_pkgconfig" = "xyes"; then
|
||||
ft_REQUIRES="freetype2 >= $FREETYPE_MIN_VERSION $ft_REQUIRES"
|
||||
@@ -662,18 +639,12 @@ CAIRO_ENABLE(test_surfaces, test surfaces, no)
|
||||
dnl ===========================================================================
|
||||
|
||||
CAIRO_ENABLE_SURFACE_BACKEND(image, image, always, [
|
||||
- pixman_REQUIRES="pixman-1 >= 0.30.0"
|
||||
- PKG_CHECK_MODULES(pixman, $pixman_REQUIRES, ,
|
||||
- [use_image="no (requires $pixman_REQUIRES http://cairographics.org/releases/)"])
|
||||
+ use_image=yes
|
||||
image_REQUIRES=$pixman_REQUIRES
|
||||
image_CFLAGS=$pixman_CFLAGS
|
||||
image_LIBS=$pixman_LIBS
|
||||
])
|
||||
|
||||
-if pkg-config --exists 'pixman-1 >= 0.27.1'; then
|
||||
- AC_DEFINE([HAS_PIXMAN_GLYPHS], 1, [Enable pixman glyph cache])
|
||||
-fi
|
||||
-
|
||||
|
||||
dnl ===========================================================================
|
||||
|
||||
diff --git a/test/Makefile.am b/test/Makefile.am
|
||||
index 950629b..f733dd9 100644
|
||||
--- a/test/Makefile.am
|
||||
+++ b/test/Makefile.am
|
||||
@@ -75,7 +75,6 @@ endif
|
||||
endif
|
||||
test_sources += $(test)
|
||||
|
||||
-noinst_PROGRAMS = cairo-test-suite$(EXEEXT) # always build
|
||||
noinst_SCRIPTS = check-refs.sh
|
||||
|
||||
TESTS += cairo-test-suite$(EXEEXT)
|
88
third_party/mason/scripts/cairo/1.14.6/script.sh
vendored
Executable file
88
third_party/mason/scripts/cairo/1.14.6/script.sh
vendored
Executable file
@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=cairo
|
||||
MASON_VERSION=1.14.6
|
||||
MASON_LIB_FILE=lib/libcairo.a
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
http://cairographics.org/releases/${MASON_NAME}-${MASON_VERSION}.tar.xz \
|
||||
b19d7d7b4e290eb6377ddc3688984cb66da036cb
|
||||
|
||||
mason_extract_tar_xz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_prepare_compile {
|
||||
cd $(dirname ${MASON_ROOT})
|
||||
${MASON_DIR}/mason install libpng 1.6.24
|
||||
MASON_PNG=$(${MASON_DIR}/mason prefix libpng 1.6.24)
|
||||
${MASON_DIR}/mason install freetype 2.6.5
|
||||
MASON_FREETYPE=$(${MASON_DIR}/mason prefix freetype 2.6.5)
|
||||
${MASON_DIR}/mason install pixman 0.34.0
|
||||
MASON_PIXMAN=$(${MASON_DIR}/mason prefix pixman 0.34.0)
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
mason_step "Loading patch"
|
||||
patch -N -p1 < ${MASON_DIR}/scripts/${MASON_NAME}/${MASON_VERSION}/patch.diff
|
||||
CFLAGS="${CFLAGS} -Wno-enum-conversion -I${MASON_PIXMAN}/include/pixman-1 -I${MASON_FREETYPE}/include/freetype2 -I${MASON_PNG}/include/"
|
||||
LDFLAGS="-L${MASON_PIXMAN}/lib -lpixman-1 -L${MASON_FREETYPE}/lib -lfreetype -L${MASON_PNG}/lib -lpng"
|
||||
CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} ./autogen.sh \
|
||||
--prefix=${MASON_PREFIX} \
|
||||
${MASON_HOST_ARG} \
|
||||
--enable-static --disable-shared \
|
||||
--enable-pdf=yes \
|
||||
--enable-ft=yes \
|
||||
--enable-png=yes \
|
||||
--enable-svg=yes \
|
||||
--enable-ps=yes \
|
||||
--enable-fc=no \
|
||||
--enable-script=no \
|
||||
--enable-interpreter=no \
|
||||
--enable-quartz=no \
|
||||
--enable-quartz-image=no \
|
||||
--enable-quartz-font=no \
|
||||
--enable-trace=no \
|
||||
--enable-gtk-doc=no \
|
||||
--enable-qt=no \
|
||||
--enable-win32=no \
|
||||
--enable-win32-font=no \
|
||||
--enable-skia=no \
|
||||
--enable-os2=no \
|
||||
--enable-beos=no \
|
||||
--enable-drm=no \
|
||||
--enable-gallium=no \
|
||||
--enable-gl=no \
|
||||
--enable-glesv2=no \
|
||||
--enable-directfb=no \
|
||||
--enable-vg=no \
|
||||
--enable-egl=no \
|
||||
--enable-glx=no \
|
||||
--enable-wgl=no \
|
||||
--enable-test-surfaces=no \
|
||||
--enable-tee=no \
|
||||
--enable-xml=no \
|
||||
--disable-valgrind \
|
||||
--enable-gobject=no \
|
||||
--enable-xlib=no \
|
||||
--enable-xlib-xrender=no \
|
||||
--enable-xcb=no \
|
||||
--enable-xlib-xcb=no \
|
||||
--enable-xcb-shm=no \
|
||||
--enable-full-testing=no \
|
||||
--enable-symbol-lookup=no \
|
||||
--disable-dependency-tracking
|
||||
# The -i and -k flags are to workaround make[6]: [install-data-local] Error 1 (ignored)
|
||||
make V=1 -j${MASON_CONCURRENCY} -i -k
|
||||
make install -i -k
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,33 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# dynamically take name of package from directory
|
||||
MASON_NAME=$(basename $(dirname $HERE))
|
||||
# dynamically take the version of the package from directory
|
||||
MASON_VERSION=$(basename $HERE)
|
||||
MASON_LIB_FILE=bin/${MASON_NAME}
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_build {
|
||||
${MASON_DIR}/mason install clang ${MASON_VERSION}
|
||||
CLANG_PREFIX=$(${MASON_DIR}/mason prefix clang ${MASON_VERSION})
|
||||
mkdir -p "${MASON_PREFIX}/bin"
|
||||
# we need to copy the standard C++ headers because clang-tidy doesn't know
|
||||
# where to find them in the system and complains about missing information
|
||||
mkdir -p "${MASON_PREFIX}/include"
|
||||
mkdir -p "${MASON_PREFIX}/lib/clang/${MASON_VERSION}"
|
||||
cp ${CLANG_PREFIX}/bin/${MASON_NAME} "${MASON_PREFIX}/bin/"
|
||||
cp ${CLANG_PREFIX}/bin/clang "${MASON_PREFIX}/bin/"
|
||||
cp -R ${CLANG_PREFIX}/include/c++ "${MASON_PREFIX}/include/c++"
|
||||
cp -R ${CLANG_PREFIX}/lib/clang/${MASON_VERSION}/* "${MASON_PREFIX}/lib/clang/${MASON_VERSION}/"
|
||||
cd ${MASON_PREFIX}/bin/
|
||||
rm -f "clang++-3.8"
|
||||
ln -s "clang++" "clang++-3.8"
|
||||
rm -f "clang-3.8"
|
||||
ln -s "clang" "clang-3.8"
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -27,10 +27,14 @@ function mason_build {
|
||||
|
||||
# if custom libc++ was built
|
||||
if [[ $(uname -s) == 'Linux' ]]; then
|
||||
cp -r "${CLANG_PREFIX}/include/c++" "${MASON_PREFIX}/include/"
|
||||
cp -r ${CLANG_PREFIX}/lib/libc++* "${MASON_PREFIX}/lib/"
|
||||
fi
|
||||
|
||||
# copy c++ headers (on osx these are a symlink to the system headers)
|
||||
if [[ -d "${CLANG_PREFIX}/include/c++" ]]; then
|
||||
cp -r "${CLANG_PREFIX}/include/c++" "${MASON_PREFIX}/include/"
|
||||
fi
|
||||
|
||||
# copy libs
|
||||
cp -r ${CLANG_PREFIX}/lib/libLTO.* "${MASON_PREFIX}/lib/"
|
||||
if [[ $(uname -s) == 'Linux' ]]; then
|
||||
|
@ -1,21 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# dynamically take name of package from directory
|
||||
MASON_NAME=$(basename $(dirname $HERE))
|
||||
# dynamically take the version of the package from directory
|
||||
MASON_VERSION=$(basename $HERE)
|
||||
MASON_LIB_FILE=bin/${MASON_NAME}
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_build {
|
||||
${MASON_DIR}/mason install clang ${MASON_VERSION}
|
||||
CLANG_PREFIX=$(${MASON_DIR}/mason prefix clang ${MASON_VERSION})
|
||||
mkdir -p "${MASON_PREFIX}/bin"
|
||||
cp ${CLANG_PREFIX}/bin/${MASON_NAME} "${MASON_PREFIX}/bin/"
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,27 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# dynamically determine the path to this package
|
||||
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||
|
||||
# dynamically take name of package from directory
|
||||
MASON_NAME=$(basename $(dirname $HERE))
|
||||
# dynamically take the version of the package from directory
|
||||
MASON_VERSION=$(basename $HERE)
|
||||
MASON_LIB_FILE=bin/${MASON_NAME}
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_build {
|
||||
${MASON_DIR}/mason install clang ${MASON_VERSION}
|
||||
CLANG_PREFIX=$(${MASON_DIR}/mason prefix clang ${MASON_VERSION})
|
||||
mkdir -p "${MASON_PREFIX}/bin"
|
||||
# we need to copy the standard C++ headers because clang-tidy doesn't know
|
||||
# where to find them in the system and complains about missing information
|
||||
mkdir -p "${MASON_PREFIX}/include"
|
||||
mkdir -p "${MASON_PREFIX}/lib/clang/${MASON_VERSION}"
|
||||
cp ${CLANG_PREFIX}/bin/${MASON_NAME} "${MASON_PREFIX}/bin/"
|
||||
cp -R ${CLANG_PREFIX}/include/c++ "${MASON_PREFIX}/include/c++"
|
||||
cp -R ${CLANG_PREFIX}/lib/clang/${MASON_VERSION}/include "${MASON_PREFIX}/lib/clang/${MASON_VERSION}/include"
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,17 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=clang-tidy
|
||||
MASON_VERSION=3.8
|
||||
MASON_LIB_FILE=bin/clang-tidy
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_build {
|
||||
mkdir -p "${MASON_PREFIX}/bin"
|
||||
cd "${MASON_PREFIX}"
|
||||
|
||||
URL="https://mason-binaries.s3.amazonaws.com/prebuilt/${MASON_PLATFORM}-$(uname -m)/clang-tidy-${MASON_VERSION}"
|
||||
curl "${URL}" -o "${MASON_LIB_FILE}"
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -10,10 +10,12 @@ function mason_build {
|
||||
|
||||
# copy include/c++
|
||||
mkdir -p "${MASON_PREFIX}/include"
|
||||
# if custom libc++ was built
|
||||
if [[ $(uname -s) == 'Linux' ]]; then
|
||||
|
||||
# copy c++ headers (on osx these are a symlink to the system headers)
|
||||
if [[ -d "${CLANG_PREFIX}/include/c++" ]]; then
|
||||
cp -r "${CLANG_PREFIX}/include/c++" "${MASON_PREFIX}/include/"
|
||||
fi
|
||||
|
||||
# copy libs
|
||||
mkdir -p "${MASON_PREFIX}/lib"
|
||||
mkdir -p "${MASON_PREFIX}/lib/clang"
|
||||
|
@ -1,28 +0,0 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode7.3
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env: CXX=g++-5 CC=gcc-5
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++6
|
||||
- g++-5
|
||||
|
||||
script:
|
||||
- ./mason install cmake 3.5.2
|
||||
- export PATH=$(./mason prefix cmake 3.5.2)/bin:${PATH}
|
||||
- ./mason install ninja 1.7.1
|
||||
- export PATH=$(./mason prefix ninja 1.7.1)/bin:${PATH}
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
110
third_party/mason/scripts/clang/3.5.2/script.sh
vendored
110
third_party/mason/scripts/clang/3.5.2/script.sh
vendored
@ -1,110 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=clang
|
||||
MASON_VERSION=3.5.2
|
||||
MASON_LIB_FILE=bin/clang
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
|
||||
# options
|
||||
ENABLE_LLDB=false
|
||||
|
||||
function curl_get() {
|
||||
if [ ! -f $(basename ${1}) ] ; then
|
||||
mason_step "Downloading $1 to $(pwd)/$(basename ${1})"
|
||||
curl --retry 3 -f -L -O "$1"
|
||||
else
|
||||
echo "already downloaded $1 to $(pwd)/$(basename ${1})"
|
||||
fi
|
||||
}
|
||||
|
||||
function setup_release() {
|
||||
LLVM_RELEASE=$1
|
||||
BUILD_PATH=$2
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/llvm-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/cfe-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/compiler-rt-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/libcxx-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/libcxxabi-${LLVM_RELEASE}.src.tar.xz"
|
||||
#curl_get "http://llvm.org/releases/${LLVM_RELEASE}/libunwind-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/lld-${LLVM_RELEASE}.src.tar.xz"
|
||||
if [[ ${ENABLE_LLDB} == true ]]; then
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/lldb-${LLVM_RELEASE}.src.tar.xz"
|
||||
fi
|
||||
#curl_get "http://llvm.org/releases/${LLVM_RELEASE}/openmp-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/clang-tools-extra-${LLVM_RELEASE}.src.tar.xz"
|
||||
for i in $(ls *.xz); do
|
||||
echo "unpacking $i"
|
||||
tar xf $i;
|
||||
done
|
||||
mv llvm-${LLVM_RELEASE}.src/* ${BUILD_PATH}/
|
||||
ls ${BUILD_PATH}/
|
||||
mv cfe-${LLVM_RELEASE}.src ${BUILD_PATH}/tools/clang
|
||||
mv compiler-rt-${LLVM_RELEASE}.src ${BUILD_PATH}/projects/compiler-rt
|
||||
mv libcxx-${LLVM_RELEASE}.src ${BUILD_PATH}/projects/libcxx
|
||||
mv libcxxabi-${LLVM_RELEASE}.src ${BUILD_PATH}/projects/libcxxabi
|
||||
#mv libunwind-${LLVM_RELEASE}.src ${BUILD_PATH}/projects/libunwind
|
||||
mv lld-${LLVM_RELEASE}.src ${BUILD_PATH}/tools/lld
|
||||
if [[ ${ENABLE_LLDB} == true ]]; then
|
||||
mv lldb-${LLVM_RELEASE}.src ${BUILD_PATH}/tools/lldb
|
||||
fi
|
||||
#mv openmp-${LLVM_RELEASE}.src ${BUILD_PATH}/projects/openmp
|
||||
mv clang-tools-extra-${LLVM_RELEASE}.src ${BUILD_PATH}/tools/clang/tools/extra
|
||||
cd ../
|
||||
}
|
||||
|
||||
|
||||
function mason_load_source {
|
||||
mkdir -p "${MASON_ROOT}/.cache"
|
||||
cd "${MASON_ROOT}/.cache"
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/llvm-${MASON_VERSION}
|
||||
if [[ -d ${MASON_BUILD_PATH}/ ]]; then
|
||||
rm -rf ${MASON_BUILD_PATH}/
|
||||
fi
|
||||
mkdir -p ${MASON_BUILD_PATH}/
|
||||
setup_release ${MASON_VERSION} ${MASON_BUILD_PATH}
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
CLANG_GIT_REV=$(git -C tools/clang/ rev-list --max-count=1 HEAD)
|
||||
mkdir -p ./build
|
||||
cd ./build
|
||||
CMAKE_EXTRA_ARGS=""
|
||||
## TODO: CLANG_DEFAULT_CXX_STDLIB and CLANG_APPEND_VC_REV not available in clang-3.8 cmake files
|
||||
if [[ $(uname -s) == 'Darwin' ]]; then
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCLANG_DEFAULT_CXX_STDLIB=libc++"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DC_INCLUDE_DIRS=:/usr/include:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DDEFAULT_SYSROOT=/"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_OSX_DEPLOYMENT_TARGET=10.10"
|
||||
fi
|
||||
cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=${MASON_PREFIX} \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DLLVM_ENABLE_ASSERTIONS=OFF \
|
||||
-DCLANG_VENDOR=mapbox/mason \
|
||||
-DCLANG_REPOSITORY_STRING=https://github.com/mapbox/mason \
|
||||
-DCLANG_APPEND_VC_REV=$CLANG_GIT_REV \
|
||||
-DCLANG_VENDOR_UTI=org.mapbox.clang \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
|
||||
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
|
||||
-DLLVM_OPTIMIZED_TABLEGEN=ON \
|
||||
${CMAKE_EXTRA_ARGS}
|
||||
ninja -j${MASON_CONCURRENCY} -k5
|
||||
ninja install -k5
|
||||
cd ${MASON_PREFIX}/bin/
|
||||
ln -s "clang++" "clang++-3.5"
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_static_libs {
|
||||
:
|
||||
}
|
||||
|
||||
mason_run "$@"
|
51
third_party/mason/scripts/clang/3.8.0/README.md
vendored
51
third_party/mason/scripts/clang/3.8.0/README.md
vendored
@ -1,51 +0,0 @@
|
||||
### Clang++ v3.8.0
|
||||
|
||||
This clang++ package depends on and defaults to compiling C++ programs against libstdc++.
|
||||
|
||||
For clang++ itself to be able to run and compile C++ programs you need to upgrade the libstdc++ version.
|
||||
|
||||
You also need to upgrade the libstdc++ for the programs to run that you compile with this version of clang++.
|
||||
|
||||
You can do this on Travis like:
|
||||
|
||||
```yml
|
||||
addons:
|
||||
apt:
|
||||
sources: [ 'ubuntu-toolchain-r-test' ]
|
||||
packages: [ 'libstdc++-5-dev' ]
|
||||
```
|
||||
|
||||
You can do this on any debian system like:
|
||||
|
||||
```sh
|
||||
add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
||||
apt-get update -y
|
||||
apt-get install -y libstdc++-5-dev
|
||||
```
|
||||
|
||||
A full example of installing clang and upgrading libstdc++ on travis is:
|
||||
|
||||
```yml
|
||||
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
sudo: false
|
||||
env: CXX=clang++
|
||||
addons:
|
||||
apt:
|
||||
sources: [ 'ubuntu-toolchain-r-test' ]
|
||||
packages: [ 'libstdc++-5-dev' ]
|
||||
|
||||
install:
|
||||
- git clone --depth 1 https://github.com/mapbox/mason
|
||||
- ./.mason/mason install clang 3.8.0
|
||||
- export PATH=$(./.mason/mason prefix clang 3.8.0)/bin:${PATH}
|
||||
- which clang++
|
||||
```
|
||||
|
||||
Note: Installing `libstdc++-5-dev` installs a library named `libstdc++6`. This is not version 6, it is the ABI 6. Note that there is no dash between the `++` and the `6` like there is between the `++` and the `5` in the dev package. So don't worry about the mismatch of `5` and `6`. While the package name is based on the g++ version (`5`) the actual library version used, at the time of this writing, is `v6.1.1` (this comes from https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/+packages). The `6` again is ABI not version: even the libstdc++ `v4.6.3` package (the default on Ubuntu precise) is named/aliased to `libstdc++6`
|
||||
|
||||
If you hit a runtime error like `/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.20' not found` it means you forgot to upgrade libstdc++6 to at least `v6.1.1`.
|
127
third_party/mason/scripts/clang/3.8.0/script.sh
vendored
127
third_party/mason/scripts/clang/3.8.0/script.sh
vendored
@ -1,127 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=clang
|
||||
MASON_VERSION=3.8.0
|
||||
MASON_LIB_FILE=bin/clang
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
|
||||
# options
|
||||
ENABLE_LLDB=false
|
||||
|
||||
function curl_get() {
|
||||
if [ ! -f $(basename ${1}) ] ; then
|
||||
mason_step "Downloading $1 to $(pwd)/$(basename ${1})"
|
||||
curl --retry 3 -f -L -O "$1"
|
||||
else
|
||||
echo "already downloaded $1 to $(pwd)/$(basename ${1})"
|
||||
fi
|
||||
}
|
||||
|
||||
function setup_release() {
|
||||
LLVM_RELEASE=$1
|
||||
BUILD_PATH=$2
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/llvm-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/cfe-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/compiler-rt-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/libcxx-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/libcxxabi-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/libunwind-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/lld-${LLVM_RELEASE}.src.tar.xz"
|
||||
if [[ ${ENABLE_LLDB} == true ]]; then
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/lldb-${LLVM_RELEASE}.src.tar.xz"
|
||||
fi
|
||||
#curl_get "http://llvm.org/releases/${LLVM_RELEASE}/openmp-${LLVM_RELEASE}.src.tar.xz"
|
||||
curl_get "http://llvm.org/releases/${LLVM_RELEASE}/clang-tools-extra-${LLVM_RELEASE}.src.tar.xz"
|
||||
for i in $(ls *.xz); do
|
||||
echo "unpacking $i"
|
||||
tar xf $i;
|
||||
done
|
||||
mv llvm-${LLVM_RELEASE}.src/* ${BUILD_PATH}/
|
||||
ls ${BUILD_PATH}/
|
||||
mv cfe-${LLVM_RELEASE}.src ${BUILD_PATH}/tools/clang
|
||||
mv compiler-rt-${LLVM_RELEASE}.src ${BUILD_PATH}/projects/compiler-rt
|
||||
mv libcxx-${LLVM_RELEASE}.src ${BUILD_PATH}/projects/libcxx
|
||||
mv libcxxabi-${LLVM_RELEASE}.src ${BUILD_PATH}/projects/libcxxabi
|
||||
mv libunwind-${LLVM_RELEASE}.src ${BUILD_PATH}/projects/libunwind
|
||||
mv lld-${LLVM_RELEASE}.src ${BUILD_PATH}/tools/lld
|
||||
if [[ ${ENABLE_LLDB} == true ]]; then
|
||||
mv lldb-${LLVM_RELEASE}.src ${BUILD_PATH}/tools/lldb
|
||||
fi
|
||||
#mv openmp-${LLVM_RELEASE}.src ${BUILD_PATH}/projects/openmp
|
||||
mv clang-tools-extra-${LLVM_RELEASE}.src ${BUILD_PATH}/tools/clang/tools/extra
|
||||
cd ../
|
||||
}
|
||||
|
||||
|
||||
function mason_load_source {
|
||||
mkdir -p "${MASON_ROOT}/.cache"
|
||||
cd "${MASON_ROOT}/.cache"
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/llvm-${MASON_VERSION}
|
||||
if [[ -d ${MASON_BUILD_PATH}/ ]]; then
|
||||
rm -rf ${MASON_BUILD_PATH}/
|
||||
fi
|
||||
mkdir -p ${MASON_BUILD_PATH}/
|
||||
setup_release ${MASON_VERSION} ${MASON_BUILD_PATH}
|
||||
}
|
||||
|
||||
function mason_prepare_compile {
|
||||
${MASON_DIR}/mason install ccache 3.2.4
|
||||
MASON_CCACHE=$(${MASON_DIR}/mason prefix ccache 3.2.4)
|
||||
${MASON_DIR}/mason install clang 3.8.0
|
||||
MASON_CLANG=$(${MASON_DIR}/mason prefix clang 3.8.0)
|
||||
${MASON_DIR}/mason install cmake 3.5.2
|
||||
MASON_CMAKE=$(${MASON_DIR}/mason prefix cmake 3.5.2)
|
||||
${MASON_DIR}/mason install ninja 1.7.1
|
||||
MASON_NINJA=$(${MASON_DIR}/mason prefix ninja 1.7.1)
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
export CXX="${MASON_CLANG}/bin/clang++"
|
||||
export CC="${MASON_CLANG}/bin/clang"
|
||||
mkdir -p ./build
|
||||
cd ./build
|
||||
CMAKE_EXTRA_ARGS=""
|
||||
## TODO: CLANG_DEFAULT_CXX_STDLIB and CLANG_APPEND_VC_REV not available in clang-3.8 cmake files
|
||||
if [[ $(uname -s) == 'Darwin' ]]; then
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCLANG_DEFAULT_CXX_STDLIB=libc++"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DC_INCLUDE_DIRS=:/usr/include:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DDEFAULT_SYSROOT=/"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11"
|
||||
fi
|
||||
CXXFLAGS="${CXXFLAGS//-mmacosx-version-min=10.8}"
|
||||
${MASON_CMAKE}/bin/cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=${MASON_PREFIX} \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER="${MASON_CCACHE}/bin/ccache" \
|
||||
-DCMAKE_CXX_COMPILER="$CXX" \
|
||||
-DCMAKE_C_COMPILER="$CC" \
|
||||
-DLLVM_ENABLE_ASSERTIONS=OFF \
|
||||
-DCLANG_VENDOR=mapbox/mason \
|
||||
-DCLANG_REPOSITORY_STRING=https://github.com/mapbox/mason \
|
||||
-DCLANG_VENDOR_UTI=org.mapbox.clang \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
|
||||
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
|
||||
-DLLVM_OPTIMIZED_TABLEGEN=ON \
|
||||
-DCMAKE_MAKE_PROGRAM=${MASON_NINJA}/bin/ninja \
|
||||
${CMAKE_EXTRA_ARGS}
|
||||
${MASON_NINJA}/bin/ninja -j${MASON_CONCURRENCY} -k5
|
||||
${MASON_NINJA}/bin/ninja install -k5
|
||||
cd ${MASON_PREFIX}/bin/
|
||||
rm -f "clang++-3.8"
|
||||
ln -s "clang++" "clang++-3.8"
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_static_libs {
|
||||
:
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,17 +1,18 @@
|
||||
language: generic
|
||||
|
||||
sudo: false
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode7.3
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: clang
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources: [ 'ubuntu-toolchain-r-test' ]
|
||||
packages: [ 'libstdc++-5-dev' ]
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
44
third_party/mason/scripts/cmake/3.7.1/script.sh
vendored
Executable file
44
third_party/mason/scripts/cmake/3.7.1/script.sh
vendored
Executable file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=cmake
|
||||
MASON_VERSION=3.7.1
|
||||
MASON_LIB_FILE=bin/cmake
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
http://www.cmake.org/files/v3.7/cmake-${MASON_VERSION}.tar.gz \
|
||||
591a89d83e3659884c52e6cf7009725a6b4e94e5
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
./configure --prefix=${MASON_PREFIX}
|
||||
make -j${MASON_CONCURRENCY} VERBOSE=1
|
||||
make install
|
||||
# remove non-essential things to save on package size
|
||||
rm -f ${MASON_PREFIX}/bin/ccmake
|
||||
rm -f ${MASON_PREFIX}/bin/cmakexbuild
|
||||
rm -f ${MASON_PREFIX}/bin/cpack
|
||||
rm -f ${MASON_PREFIX}/bin/ctest
|
||||
rm -rf ${MASON_PREFIX}/share/cmake-*/Help
|
||||
ls -lh ${MASON_PREFIX}/bin/
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/freetype/2.6.5/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/freetype/2.6.5/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
50
third_party/mason/scripts/freetype/2.6.5/script.sh
vendored
Executable file
50
third_party/mason/scripts/freetype/2.6.5/script.sh
vendored
Executable file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=freetype
|
||||
MASON_VERSION=2.6.5
|
||||
MASON_LIB_FILE=lib/libfreetype.a
|
||||
MASON_PKGCONFIG_FILE=lib/pkgconfig/freetype2.pc
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
http://nongnu.askapache.com/freetype/freetype-${MASON_VERSION}.tar.bz2 \
|
||||
24dd30c95d3795cb3d82a760b9858992de262630
|
||||
|
||||
mason_extract_tar_bz2
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/freetype-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
./configure --prefix=${MASON_PREFIX} \
|
||||
--enable-static \
|
||||
--disable-shared ${MASON_HOST_ARG} \
|
||||
--with-zlib=yes \
|
||||
--with-bzip2=no \
|
||||
--with-harfbuzz=no \
|
||||
--with-png=no \
|
||||
--with-quickdraw-toolbox=no \
|
||||
--with-quickdraw-carbon=no \
|
||||
--with-ats=no \
|
||||
--with-fsref=no \
|
||||
--with-fsspec=no \
|
||||
|
||||
make -j${MASON_CONCURRENCY}
|
||||
make install
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
: # We're only using the full path to the archive, which is output in static_libs
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo "-I${MASON_PREFIX}/include/freetype2"
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/harfbuzz/1.3.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/harfbuzz/1.3.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
72
third_party/mason/scripts/harfbuzz/1.3.0/script.sh
vendored
Executable file
72
third_party/mason/scripts/harfbuzz/1.3.0/script.sh
vendored
Executable file
@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=harfbuzz
|
||||
MASON_VERSION=1.3.0
|
||||
MASON_LIB_FILE=lib/libharfbuzz.a
|
||||
MASON_PKGCONFIG_FILE=lib/pkgconfig/harfbuzz.pc
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${MASON_VERSION}.tar.bz2 \
|
||||
f5674500c67484caa2c9936270d0a100e52f56f0
|
||||
|
||||
mason_extract_tar_bz2
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_prepare_compile {
|
||||
FREETYPE_VERSION="2.6.5"
|
||||
${MASON_DIR}/mason install freetype ${FREETYPE_VERSION}
|
||||
MASON_FREETYPE=$(${MASON_DIR}/mason prefix freetype ${FREETYPE_VERSION})
|
||||
MASON_PLATFORM= ${MASON_DIR}/mason install ragel 6.9
|
||||
export PATH=$(MASON_PLATFORM= ${MASON_DIR}/mason prefix ragel 6.9)/bin:$PATH
|
||||
export PKG_CONFIG_PATH="$(${MASON_DIR}/mason prefix freetype ${FREETYPE_VERSION})/lib/pkgconfig":$PKG_CONFIG_PATH
|
||||
export C_INCLUDE_PATH="${MASON_FREETYPE}/include/freetype2"
|
||||
export CPLUS_INCLUDE_PATH="${MASON_FREETYPE}/include/freetype2"
|
||||
export LIBRARY_PATH="${MASON_FREETYPE}/lib"
|
||||
if [[ ! `which pkg-config` ]]; then
|
||||
echo "harfbuzz configure needs pkg-config, please install pkg-config"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
export FREETYPE_CFLAGS="-I${MASON_FREETYPE}/include/freetype2"
|
||||
export FREETYPE_LIBS="-L${MASON_FREETYPE}/lib -lfreetype -lz"
|
||||
export CXXFLAGS="${CXXFLAGS} ${FREETYPE_CFLAGS}"
|
||||
export CFLAGS="${CFLAGS} ${FREETYPE_CFLAGS}"
|
||||
export LDFLAGS="${LDFLAGS} ${FREETYPE_LIBS}"
|
||||
|
||||
./configure --prefix=${MASON_PREFIX} ${MASON_HOST_ARG} \
|
||||
--enable-static \
|
||||
--disable-shared \
|
||||
--disable-dependency-tracking \
|
||||
--with-icu=no \
|
||||
--with-cairo=no \
|
||||
--with-glib=no \
|
||||
--with-gobject=no \
|
||||
--with-graphite2=no \
|
||||
--with-freetype \
|
||||
--with-uniscribe=no \
|
||||
--with-coretext=no
|
||||
|
||||
make -j${MASON_CONCURRENCY} V=1
|
||||
make install
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
: # We're only using the full path to the archive, which is output in static_libs
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo "-I${MASON_PREFIX}/include"
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -10,8 +10,10 @@ function mason_build {
|
||||
|
||||
# copy share
|
||||
mkdir -p "${MASON_PREFIX}/share"
|
||||
cp -r "${CLANG_PREFIX}/share/${MASON_NAME}" "${MASON_PREFIX}/share/"
|
||||
|
||||
# directory only present with llvm >= 3.9
|
||||
if [[ -d "{CLANG_PREFIX}/share/${MASON_NAME}" ]]; then
|
||||
cp -r "${CLANG_PREFIX}/share/${MASON_NAME}" "${MASON_PREFIX}/share/"
|
||||
fi
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
|
19
third_party/mason/scripts/jpeg_turbo/1.5.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/jpeg_turbo/1.5.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
50
third_party/mason/scripts/jpeg_turbo/1.5.0/script.sh
vendored
Executable file
50
third_party/mason/scripts/jpeg_turbo/1.5.0/script.sh
vendored
Executable file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=jpeg_turbo
|
||||
MASON_VERSION=1.5.0
|
||||
MASON_LIB_FILE=lib/libjpeg.a
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
http://downloads.sourceforge.net/project/libjpeg-turbo/${MASON_VERSION}/libjpeg-turbo-${MASON_VERSION}.tar.gz \
|
||||
b90a76db4d0628bde8381150e355a858e3ced923
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/libjpeg-turbo-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_prepare_compile {
|
||||
MASON_PLATFORM= ${MASON_DIR}/mason install nasm 2.11.06
|
||||
MASON_NASM=$(MASON_PLATFORM= ${MASON_DIR}/mason prefix nasm 2.11.06)
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
./configure \
|
||||
NASM="${MASON_NASM}/bin/nasm" \
|
||||
--prefix=${MASON_PREFIX} \
|
||||
${MASON_HOST_ARG} \
|
||||
--with-jpeg8 \
|
||||
--enable-static \
|
||||
--disable-shared \
|
||||
--disable-dependency-tracking
|
||||
|
||||
make -j1 # -j1 since build breaks with concurrency
|
||||
make install
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo -I${MASON_PREFIX}/include
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
echo -L${MASON_PREFIX}/lib -ljpeg
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,16 +1,11 @@
|
||||
language: cpp
|
||||
|
||||
sudo: false
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: clang
|
||||
sudo: false
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
32
third_party/mason/scripts/libosmium/2.10.3/script.sh
vendored
Executable file
32
third_party/mason/scripts/libosmium/2.10.3/script.sh
vendored
Executable file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=libosmium
|
||||
MASON_VERSION=2.10.3
|
||||
MASON_HEADER_ONLY=true
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
https://github.com/osmcode/${MASON_NAME}/archive/v${MASON_VERSION}.tar.gz \
|
||||
ddfacd6671befcf63989b749b3302608bd206af4
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
mkdir -p ${MASON_PREFIX}/include/
|
||||
cp -r include/osmium ${MASON_PREFIX}/include/osmium
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo "-I${MASON_PREFIX}/include"
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/libpng/1.6.24/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/libpng/1.6.24/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
47
third_party/mason/scripts/libpng/1.6.24/script.sh
vendored
Executable file
47
third_party/mason/scripts/libpng/1.6.24/script.sh
vendored
Executable file
@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=libpng
|
||||
MASON_VERSION=1.6.24
|
||||
MASON_LIB_FILE=lib/libpng.a
|
||||
MASON_PKGCONFIG_FILE=lib/pkgconfig/libpng.pc
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
http://superb-sea2.dl.sourceforge.net/project/${MASON_NAME}/${MASON_NAME}16/${MASON_VERSION}/${MASON_NAME}-${MASON_VERSION}.tar.gz \
|
||||
ea724d11c25753ebad23ca0f63518b7f17c46a6a
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/libpng-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
export CFLAGS="${CFLAGS:-} -O3"
|
||||
./configure \
|
||||
--prefix=${MASON_PREFIX} \
|
||||
${MASON_HOST_ARG} \
|
||||
--enable-static \
|
||||
--with-pic \
|
||||
--disable-shared \
|
||||
--disable-dependency-tracking
|
||||
|
||||
make install -j${MASON_CONCURRENCY}
|
||||
}
|
||||
|
||||
function mason_strip_ldflags {
|
||||
shift # -L...
|
||||
shift # -lpng16
|
||||
echo "$@"
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
mason_strip_ldflags $(`mason_pkgconfig` --static --libs)
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,17 +1,19 @@
|
||||
language: cpp
|
||||
|
||||
sudo: false
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
compiler: clang
|
||||
- os: osx
|
||||
osx_image: xcode7.3
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
||||
|
@ -1,17 +1,19 @@
|
||||
language: generic
|
||||
|
||||
sudo: false
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode7.3
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: clang
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
||||
|
@ -19,9 +19,11 @@ function mason_load_source {
|
||||
|
||||
function mason_prepare_compile {
|
||||
cd $(dirname ${MASON_ROOT})
|
||||
${MASON_DIR}/mason install jpeg_turbo 1.4.2
|
||||
MASON_JPEG=$(${MASON_DIR}/mason prefix jpeg_turbo 1.4.2)
|
||||
SYSTEM_ZLIB="/usr"
|
||||
${MASON_DIR}/mason install jpeg_turbo 1.5.0
|
||||
MASON_JPEG=$(${MASON_DIR}/mason prefix jpeg_turbo 1.5.0)
|
||||
# depends on sudo apt-get install zlib1g-dev
|
||||
${MASON_DIR}/mason install zlib system
|
||||
MASON_ZLIB=$(${MASON_DIR}/mason prefix zlib system)
|
||||
}
|
||||
|
||||
|
||||
@ -35,8 +37,8 @@ function mason_compile {
|
||||
--enable-chunky-strip-read \
|
||||
--with-jpeg-include-dir=${MASON_JPEG}/include \
|
||||
--with-jpeg-lib-dir=${MASON_JPEG}/lib \
|
||||
--with-zlib-include-dir=${SYSTEM_ZLIB}/include \
|
||||
--with-zlib-lib-dir=${SYSTEM_ZLIB}/lib \
|
||||
--with-zlib-include-dir=${MASON_ZLIB}/include \
|
||||
--with-zlib-lib-dir=${MASON_ZLIB}/lib \
|
||||
--disable-lzma --disable-jbig --disable-mdi \
|
||||
--without-x
|
||||
|
||||
|
@ -1,7 +0,0 @@
|
||||
### llvm v3.8.1
|
||||
|
||||
This is a package of all llvm tools. Multiple packages are based on repackaging the binaries from this one including:
|
||||
|
||||
- clang++ 3.8.1
|
||||
- clang-tidy 3.8.1
|
||||
- clang-format 3.8.1
|
124
third_party/mason/scripts/llvm/3.9.0/README.md
vendored
124
third_party/mason/scripts/llvm/3.9.0/README.md
vendored
@ -1,124 +0,0 @@
|
||||
### llvm v3.9.0
|
||||
|
||||
This is a package of all llvm tools. Multiple packages are based on repackaging the binaries from this one including:
|
||||
|
||||
- clang++ 3.9.0
|
||||
- clang-tidy 3.9.0
|
||||
- clang-format 3.9.0
|
||||
|
||||
### Details of package
|
||||
|
||||
This package inherits from `scripts/llvm/base/common.sh`, which is a base configuration and not an actual package itself.
|
||||
|
||||
Therefore to see the intricacies of how this package is built look in `scripts/llvm/base/common.sh`.
|
||||
|
||||
The `scripts/llvm/base/common.sh` is used by both llvm 3.8.1 and llvm 3.9.0 packages (and future ones). It reduces duplication of package code and makes it easier to update the builds in one place to benefit all versions.
|
||||
|
||||
The `scripts/llvm/3.9.0/script.sh` therefore sources `scripts/llvm/base/common.sh` and then overrides just the functions that need to be customized. At the time of writing this is only the `setup_release` function. It is customized in order to provide version specific md5 values which can ensure that upstream packages do not change without us noticing.
|
||||
|
||||
### Details of builds
|
||||
|
||||
- Done on Sept 22, 2016 by @springmeyer
|
||||
- OS X build done on OS X 10.11
|
||||
- Linux build done on ubuntu precise
|
||||
|
||||
The order and method of building was generally:
|
||||
|
||||
```sh
|
||||
VERSION=3.9.0
|
||||
./mason build llvm ${VERSION}
|
||||
./mason publish llvm ${VERSION}
|
||||
./mason build clang++ ${VERSION}
|
||||
./mason publish clang++ ${VERSION}
|
||||
./mason build clang-tidy ${VERSION}
|
||||
./mason publish clang-tidy ${VERSION}
|
||||
./mason build clang-format ${VERSION}
|
||||
./mason publish clang-format ${VERSION}
|
||||
./mason build lldb ${VERSION}
|
||||
./mason publish lldb ${VERSION}
|
||||
./mason build llvm-cov ${VERSION}
|
||||
./mason publish llvm-cov ${VERSION}
|
||||
```
|
||||
|
||||
#### OSX details
|
||||
|
||||
On macOS we use the apple system clang++ to compile and link against the apple system libc++.
|
||||
|
||||
```sh
|
||||
$ clang++ -v
|
||||
Apple LLVM version 7.3.0 (clang-703.0.31)
|
||||
Target: x86_64-apple-darwin15.6.0
|
||||
Thread model: posix
|
||||
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
|
||||
```
|
||||
|
||||
Therefore the llvm package was built like:
|
||||
|
||||
```sh
|
||||
./mason build llvm 3.9.0
|
||||
```
|
||||
|
||||
#### Linux details
|
||||
|
||||
On linux we use precise in order to ensure that binaries can be run on ubuntu precise and newer platforms.
|
||||
|
||||
We still want to compile clang++ in c++11 mode so we compile clang++ using a mason provided clang++.
|
||||
|
||||
To support c++11 we'd normally need to upgrade libstdc++ which would make it problematic for the resulting binary to be portable to linux systems without that upgraded libstdc++. So we avoid this issue by instead linking clang++ to libc++, which itself will travel inside the clang++ package.
|
||||
|
||||
To accomplish this (c++11 build of clang++ and linking to libc++ instead of an upgraded libstdc++) we did:
|
||||
|
||||
```sh
|
||||
./mason install clang++ 3.9.0
|
||||
CLANG_39_PREFIX=$(./mason prefix clang++ 3.9.0)
|
||||
export CXX=${CLANG_39_PREFIX}/bin/clang++-3.9
|
||||
export CC=${CLANG_39_PREFIX}/bin/clang-3.9
|
||||
./mason build llvm 3.9.0
|
||||
```
|
||||
|
||||
The reason `LD_LIBRARY_PATH` is set before the build is so that libc++.so can be found during linking. Once linked clang++ automatically uses the right @rpath on macOS and linux to find its own libc++.so at runtime.
|
||||
|
||||
TODO:
|
||||
|
||||
- Modify the llvm 3.9.0 build scripts to build libc++ and libc++abi first.
|
||||
- Then we should be able to point LD_LIBRARY_PATH at llvm 3.9.0's libc++.so to avoid potential ABI mismatch with the version provided by 3.8.0
|
||||
- LD_LIBRARY_PATH would be pointed at the theoretical location of llvm 3.9.0's libc++, and that location would exist and become valid before llvm 3.9.0's clang++ is linked.
|
||||
|
||||
|
||||
### Testing of these new tools
|
||||
|
||||
Once these packages were built I needed to test that they could be used to build and publish other mason packages. And I needed to be able to test that these packages worked for downstream users.
|
||||
|
||||
To accomplish this I branched mason and changed the `MASON_PLATFORM_ID` to enable publishing new binaries with llvm 3.9.0 tools without overwriting existing binaries.
|
||||
|
||||
```
|
||||
diff --git a/mason.sh b/mason.sh
|
||||
index 800216d..ccc1fcb 100644
|
||||
--- a/mason.sh
|
||||
+++ b/mason.sh
|
||||
@@ -259,7 +259,7 @@ MASON_SLUG=${MASON_NAME}-${MASON_VERSION}
|
||||
if [[ ${MASON_HEADER_ONLY} == true ]]; then
|
||||
MASON_PLATFORM_ID=headers
|
||||
else
|
||||
- MASON_PLATFORM_ID=${MASON_PLATFORM}-${MASON_PLATFORM_VERSION}
|
||||
+ MASON_PLATFORM_ID=${MASON_PLATFORM}-${MASON_PLATFORM_VERSION}-llvm390
|
||||
fi
|
||||
MASON_PREFIX=${MASON_ROOT}/${MASON_PLATFORM_ID}/${MASON_NAME}/${MASON_VERSION}
|
||||
MASON_BINARIES=${MASON_PLATFORM_ID}/${MASON_NAME}/${MASON_VERSION}.tar.gz
|
||||
```
|
||||
|
||||
But changing the `MASON_PLATFORM_ID` also means that you loose access to all existing binaries for building packages. To ensure I could still bootstrap the builds I seeded this new `MASON_PLATFORM_ID` with key build tools, including the previously built llvm tools being discussed here.
|
||||
|
||||
```
|
||||
CUSTOM_PATH="llvm390"
|
||||
aws s3 sync --acl public-read s3://mason-binaries/linux-x86_64/llvm/ s3://mason-binaries/linux-x86_64-{CUSTOM_PATH}/llvm/
|
||||
aws s3 sync --acl public-read s3://mason-binaries/linux-x86_64/clang++/ s3://mason-binaries/linux-x86_64-{CUSTOM_PATH}/clang++/
|
||||
aws s3 sync --acl public-read s3://mason-binaries/linux-x86_64/cmake/ s3://mason-binaries/linux-x86_64-{CUSTOM_PATH}/cmake/
|
||||
aws s3 sync --acl public-read s3://mason-binaries/linux-x86_64/ccache/ s3://mason-binaries/linux-x86_64-{CUSTOM_PATH}/ccache/
|
||||
aws s3 sync --acl public-read s3://mason-binaries/linux-x86_64/ninja/ s3://mason-binaries/linux-x86_64-{CUSTOM_PATH}/ninja/
|
||||
aws s3 sync --acl public-read s3://mason-binaries/osx-x86_64/llvm/ s3://mason-binaries/osx-x86_64-{CUSTOM_PATH}/llvm/
|
||||
aws s3 sync --acl public-read s3://mason-binaries/osx-x86_64/clang++/ s3://mason-binaries/osx-x86_64-{CUSTOM_PATH}/clang++/
|
||||
aws s3 sync --acl public-read s3://mason-binaries/osx-x86_64/cmake/ s3://mason-binaries/osx-x86_64-{CUSTOM_PATH}/cmake/
|
||||
aws s3 sync --acl public-read s3://mason-binaries/osx-x86_64/ccache/ s3://mason-binaries/osx-x86_64-{CUSTOM_PATH}/ccache/
|
||||
aws s3 sync --acl public-read s3://mason-binaries/osx-x86_64/ninja/ s3://mason-binaries/osx-x86_64-{CUSTOM_PATH}/ninja/
|
||||
```
|
@ -10,17 +10,17 @@ MASON_VERSION=$(basename $HERE)
|
||||
source ${HERE}/../../${MASON_NAME}/base/common.sh
|
||||
|
||||
function setup_release() {
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/llvm-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/ 00f5268479117c9c7f90d0f9e2f06485875f5444
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/cfe-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/clang 465e70cfb1d8b3fb5d1f6577933f7b5014aca3bd
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/compiler-rt-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/projects/compiler-rt 7a2ea8a7257a739330d8f7cfe2bcb70939476f31
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/llvm-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/ 282e47884738e362ff4dc70910d2e08c242f161a
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/cfe-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/clang 211b70f3cc75ef318dfa4efd57a2e9c547375f94
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/compiler-rt-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/projects/compiler-rt 19981bad5a444b36b2834d5bfd3edd5c66c7ca22
|
||||
if [[ ${BUILD_AND_LINK_LIBCXX} == true ]]; then
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/libcxx-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/projects/libcxx 248635c4821b9f2e4b620364c21a2596eed514cd
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/libcxxabi-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/projects/libcxxabi 04ffa28577ec3d935dcd69d137a2e478e71f2704
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/libunwind-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/projects/libunwind 32e17eaf6a5b769c244480bd32ab3c9cbdf6c97d
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/libcxx-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/projects/libcxx 2fdaf6017fe742974eb06f9529321a915e84a034
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/libcxxabi-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/projects/libcxxabi 277446b2957d2a82ef10d173b3882b64d68ca5d0
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/libunwind-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/projects/libunwind 0df57c982fda5ba8b97698525ed6fea09f87ea15
|
||||
fi
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/lld-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/lld e1829cd47a5c44ad6c68957056afe63879ad9610
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/clang-tools-extra-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/clang/tools/extra 8e7e118a769c76e70d5fb2ede66c8f5a2952f8d9
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/lldb-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/lldb 988766cbb3d4a295b33dd11f51f7f20811bfa8f2
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/lld-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/lld 6c8018e5caf82f1f771d24b532af11c67228f333
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/clang-tools-extra-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/clang/tools/extra a3f5d99cd3d4ccdfc6d4dba15db616d53a654c3f
|
||||
get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/lldb-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/lldb c8e35a599bd366d1fc122526d3b7a1902890d1ed
|
||||
get_llvm_project "https://github.com/include-what-you-use/include-what-you-use/archive/clang_${MAJOR_MINOR}.tar.gz" ${MASON_BUILD_PATH}/tools/clang/tools/include-what-you-use 7e5c73ce1a2fdd1ffd29fad1ae2628d0134368c6
|
||||
}
|
||||
|
110
third_party/mason/scripts/llvm/base/common.sh
vendored
110
third_party/mason/scripts/llvm/base/common.sh
vendored
@ -9,8 +9,8 @@ export MAJOR_MINOR=$(echo ${MASON_VERSION} | cut -d '.' -f1-2)
|
||||
|
||||
if [[ $(uname -s) == 'Darwin' ]]; then
|
||||
export BUILD_AND_LINK_LIBCXX=false
|
||||
# TODO: could also use LIBCXX_INSTALL_SUPPORT_HEADERS, LIBCXX_INSTALL_LIBRARY, LIBCXX_INSTALL_HEADERS
|
||||
# avoids this kind of problem with include-what-you-use:
|
||||
# avoids this kind of problem with include-what-you-use
|
||||
# because iwyu hardcodes at https://github.com/include-what-you-use/include-what-you-use/blob/da5c9b17fec571e6b2bbca29145463d7eaa3582e/iwyu_driver.cc#L219
|
||||
: '
|
||||
/Library/Developer/CommandLineTools/usr/include/c++/v1/cstdlib:167:44: error: declaration conflicts with target of using declaration already in scope
|
||||
inline _LIBCPP_INLINE_VISIBILITY long abs( long __x) _NOEXCEPT {return labs(__x);}
|
||||
@ -123,6 +123,11 @@ function mason_compile {
|
||||
# knock out lldb doc building, to remove doxygen dependency
|
||||
perl -i -p -e "s/add_subdirectory\(docs\)//g;" tools/lldb/CMakeLists.txt
|
||||
|
||||
# remove /usr/local/include from default paths (targeting linux)
|
||||
# because we want users to have to explictly link things in /usr/local to avoid conflicts
|
||||
# between mason and homebrew or source installs
|
||||
perl -i -p -e "s/AddPath\(\"\/usr\/local\/include\"\, System\, false\)\;//g;" tools/clang/lib/Frontend/InitHeaderSearch.cpp
|
||||
|
||||
if [[ ${MAJOR_MINOR} == "3.8" ]]; then
|
||||
# workaround https://llvm.org/bugs/show_bug.cgi?id=25565
|
||||
perl -i -p -e "s/set\(codegen_deps intrinsics_gen\)/set\(codegen_deps intrinsics_gen attributes_inc\)/g;" lib/CodeGen/CMakeLists.txt
|
||||
@ -139,18 +144,35 @@ function mason_compile {
|
||||
cd ./build
|
||||
CMAKE_EXTRA_ARGS=""
|
||||
if [[ $(uname -s) == 'Darwin' ]]; then
|
||||
# This is a stable location for libc++ headers from the system
|
||||
SYSTEM_LIBCXX_HEADERS="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/"
|
||||
# This is the location of C headers on 10.11
|
||||
OSX_10_11_SDK_C_HEADERS="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/"
|
||||
# This is the location of C headers on >= 10.12 which is a symlink to the versioned SDK
|
||||
OSX_10_12_AND_GREATER_SDK_HEADERS="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/"
|
||||
# This allows this version of clang to find the headers from only a command line tools install (no xcode installed)
|
||||
# It is debatable whether this should be supported
|
||||
COMMAND_LINE_TOOLS_C_HEADERS="/usr/include"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DC_INCLUDE_DIRS=:${SYSTEM_LIBCXX_HEADERS}:${OSX_10_12_AND_GREATER_SDK_HEADERS}:${OSX_10_11_SDK_C_HEADERS}:${COMMAND_LINE_TOOLS_C_HEADERS}"
|
||||
: '
|
||||
Note: C_INCLUDE_DIRS and DEFAULT_SYSROOT are critical options to understand to ensure C and C++ headers are predictably found.
|
||||
|
||||
The way things work in clang++ on OS X (inside http://clang.llvm.org/doxygen/InitHeaderSearch_8cpp.html) is:
|
||||
|
||||
- The `:` separated `C_INCLUDE_DIRS` are added to the include paths
|
||||
- If `C_INCLUDE_DIRS` is present `InitHeaderSearch::AddDefaultCIncludePaths` returns early
|
||||
- Without that early return `/usr/include` would be added by default on OS X
|
||||
- If `-isysroot` is passed then absolute `C_INCLUDE_DIRS` are appended to the sysroot
|
||||
- So if sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/ and
|
||||
C_INCLUDE_DIRS=/usr/include the actual path searched would be:
|
||||
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
|
||||
- Relative `C_INCLUDE_DIRS` seem pointless because they are not appended to the sysroot and so will not be portable
|
||||
- clang++ finds C++ headers relative to itself at https://github.com/llvm-mirror/clang/blob/master/lib/Frontend/InitHeaderSearch.cpp#L469-L470
|
||||
- So, given on OS X we want to use the XCode/Apple provided libc++ and c++ headers we symlink the relative location to /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++
|
||||
- The alternative would be to symlink to the command line tools location (/Library/Developer/CommandLineTools/usr/include/c++/v1/)
|
||||
|
||||
Another viable sysroot would be the command line tools at /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
|
||||
|
||||
Generally each SDK/Platform version has its own C headers inside SDK_PATH/usr/include while all platforms share the C++ headers which
|
||||
are at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/
|
||||
|
||||
NOTE: show search paths with: `clang -x c -v -E /dev/null` || `cpp -v` && `clang -Xlinker -v`
|
||||
'
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DC_INCLUDE_DIRS=/usr/include"
|
||||
# setting the default sysroot to an explicit SDK avoids clang++ adding `/usr/local/include` to the paths by default at https://github.com/llvm-mirror/clang/blob/91d69c3c9c62946245a0fe6526d5ec226dfe7408/lib/Frontend/InitHeaderSearch.cpp#L226
|
||||
# because that value will be appended to the sysroot, not exist, and then get thrown out. If the sysroot were / then it would be added
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DDEFAULT_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCLANG_DEFAULT_CXX_STDLIB=libc++"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DDEFAULT_SYSROOT=/"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11"
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DLLVM_CREATE_XCODE_TOOLCHAIN=ON -DLLVM_EXTERNALIZE_DEBUGINFO=ON"
|
||||
fi
|
||||
@ -182,16 +204,25 @@ function mason_compile {
|
||||
fi
|
||||
fi
|
||||
|
||||
# on linux the default is to link programs compiled by clang++ to libstdc++ and below we make that explicit.
|
||||
if [[ $(uname -s) == 'Linux' ]]; then
|
||||
export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCLANG_DEFAULT_CXX_STDLIB=libstdc++"
|
||||
fi
|
||||
|
||||
# TODO: test this
|
||||
#-DLLVM_ENABLE_LTO=ON \
|
||||
|
||||
# TODO: try rtlib=compiler-rt on linux
|
||||
# https://blogs.gentoo.org/gsoc2016-native-clang/2016/05/31/build-gnu-free-executables-with-clang/
|
||||
|
||||
if [[ ${BUILD_AND_LINK_LIBCXX} == true ]]; then
|
||||
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DLIBCXX_ENABLE_ASSERTIONS=OFF -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXXABI_ENABLE_SHARED=OFF -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_ENABLE_SHARED=OFF"
|
||||
fi
|
||||
|
||||
${MASON_CMAKE}/bin/cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=${MASON_PREFIX} \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DLLVM_TARGETS_TO_BUILD="ARM;X86;AArch64" \
|
||||
-DLLVM_INCLUDE_DOCS=OFF \
|
||||
-DLLVM_TARGETS_TO_BUILD="X86" \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER="${MASON_CCACHE}/bin/ccache" \
|
||||
-DCMAKE_CXX_COMPILER="$CXX" \
|
||||
-DCMAKE_C_COMPILER="$CC" \
|
||||
@ -205,50 +236,45 @@ function mason_compile {
|
||||
-DCMAKE_MAKE_PROGRAM=${MASON_NINJA}/bin/ninja \
|
||||
${CMAKE_EXTRA_ARGS}
|
||||
|
||||
if [[ ${BUILD_AND_LINK_LIBCXX} == true ]]; then
|
||||
${MASON_NINJA}/bin/ninja unwind -j${MASON_CONCURRENCY}
|
||||
|
||||
# make libc++ and libc++abi first
|
||||
${MASON_NINJA}/bin/ninja cxx -j${MASON_CONCURRENCY}
|
||||
|
||||
${MASON_NINJA}/bin/ninja lldb -j${MASON_CONCURRENCY}
|
||||
fi
|
||||
|
||||
# then make everything else
|
||||
${MASON_NINJA}/bin/ninja -j${MASON_CONCURRENCY}
|
||||
|
||||
# install it all
|
||||
${MASON_NINJA}/bin/ninja install
|
||||
|
||||
if [[ $(uname -s) == 'Darwin' ]]; then
|
||||
# https://reviews.llvm.org/D13605
|
||||
${MASON_NINJA}/bin/ninja install-xcode-toolchain -j${MASON_CONCURRENCY}
|
||||
fi
|
||||
|
||||
if [[ ${BUILD_AND_LINK_LIBCXX} == true ]]; then
|
||||
${MASON_NINJA}/bin/ninja unwind -j${MASON_CONCURRENCY}
|
||||
|
||||
# make libc++ and libc++abi first
|
||||
# this ensures that the LD_LIBRARY_PATH above will be valid
|
||||
# and that clang++ on linux will be able to link itself to
|
||||
# this same instance of libc++
|
||||
${MASON_NINJA}/bin/ninja cxx -j${MASON_CONCURRENCY}
|
||||
|
||||
${MASON_NINJA}/bin/ninja lldb -j${MASON_CONCURRENCY}
|
||||
# no move the host compilers libc++ and libc++abi shared libs out of the way
|
||||
if [[ ${CXX_BOOTSTRAP:-false} != false ]]; then
|
||||
mkdir -p /tmp/backup_shlibs
|
||||
mv $(dirname $(dirname $CXX))/lib/*c++*so /tmp/backup_shlibs/
|
||||
fi
|
||||
fi
|
||||
|
||||
# then make everything else
|
||||
${MASON_NINJA}/bin/ninja -j${MASON_CONCURRENCY}
|
||||
# install it all
|
||||
${MASON_NINJA}/bin/ninja install
|
||||
|
||||
# install the asan_symbolizer.py tool
|
||||
cp -a ../projects/compiler-rt/lib/asan/scripts/asan_symbolize.py ${MASON_PREFIX}/bin/
|
||||
|
||||
# set up symlinks for to match what llvm.org binaries provide
|
||||
# set up symlinks to match what llvm.org binaries provide
|
||||
cd ${MASON_PREFIX}/bin/
|
||||
ln -s "clang++" "clang++-${MAJOR_MINOR}"
|
||||
ln -s "asan_symbolize.py" "asan_symbolize"
|
||||
|
||||
# restore host compilers sharedlibs
|
||||
if [[ ${BUILD_AND_LINK_LIBCXX} == true ]]; then
|
||||
if [[ ${CXX_BOOTSTRAP:-false} != false ]]; then
|
||||
cp -r /tmp/backup_shlibs/* $(dirname $(dirname $CXX))/lib/
|
||||
fi
|
||||
# symlink so that we use the system libc++ headers on osx
|
||||
if [[ $(uname -s) == 'Darwin' ]]; then
|
||||
mkdir -p ${MASON_PREFIX}/include
|
||||
cd ${MASON_PREFIX}/include
|
||||
# note: passing -nostdinc++ will result in this local path being ignored
|
||||
ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++ c++
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
|
||||
function mason_cflags {
|
||||
:
|
||||
}
|
||||
|
@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=luabind
|
||||
MASON_VERSION=e414c57bcb687bb3091b7c55bbff6947f052e46b
|
||||
MASON_LIB_FILE=lib/libluabind.a
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
https://github.com/mapbox/luabind/archive/${MASON_VERSION}.tar.gz \
|
||||
49bbe06214a6a747a1f20eba34b7c2d0ea41c51a
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_prepare_compile {
|
||||
cd $(dirname ${MASON_ROOT})
|
||||
${MASON_DIR}/mason install lua 5.3.0
|
||||
MASON_LUA=$(${MASON_DIR}/mason prefix lua 5.3.0)
|
||||
${MASON_DIR}/mason install boost 1.57.0
|
||||
MASON_BOOST_HEADERS=$(${MASON_DIR}/mason prefix boost 1.57.0)
|
||||
SYSTEM_ZLIB="/usr"
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
mkdir build
|
||||
cd build
|
||||
cmake
|
||||
cmake ../ -DCMAKE_INSTALL_PREFIX=${MASON_PREFIX} \
|
||||
-DLUA_LIBRARIES=${MASON_LUA}/lib \
|
||||
-DLUA_INCLUDE_DIR=${MASON_LUA}/include \
|
||||
-DBOOST_INCLUDEDIR=${MASON_BOOST_HEADERS}/include \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_TESTING=OFF
|
||||
make -j${MASON_CONCURRENCY} VERBOSE=1
|
||||
make install
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo "-I${MASON_PREFIX}/include"
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
echo "-L${MASON_PREFIX}/lib -lluabind"
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=luabind_lua51
|
||||
MASON_VERSION=e414c57bcb687bb3091b7c55bbff6947f052e46b
|
||||
MASON_LIB_FILE=lib/libluabind.a
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
https://github.com/mapbox/luabind/archive/${MASON_VERSION}.tar.gz \
|
||||
49bbe06214a6a747a1f20eba34b7c2d0ea41c51a
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/luabind-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_prepare_compile {
|
||||
cd $(dirname ${MASON_ROOT})
|
||||
${MASON_DIR}/mason install lua 5.1.0
|
||||
MASON_LUA=$(${MASON_DIR}/mason prefix lua 5.1.0)
|
||||
${MASON_DIR}/mason install boost 1.57.0
|
||||
MASON_BOOST_HEADERS=$(${MASON_DIR}/mason prefix boost 1.57.0)
|
||||
SYSTEM_ZLIB="/usr"
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
mkdir build
|
||||
cd build
|
||||
cmake
|
||||
cmake ../ -DCMAKE_INSTALL_PREFIX=${MASON_PREFIX} \
|
||||
-DLUA_LIBRARIES=${MASON_LUA}/lib \
|
||||
-DLUA_INCLUDE_DIR=${MASON_LUA}/include \
|
||||
-DBOOST_INCLUDEDIR=${MASON_BOOST_HEADERS}/include \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_TESTING=OFF
|
||||
make -j${MASON_CONCURRENCY} VERBOSE=1
|
||||
make install
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo "-I${MASON_PREFIX}/include"
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
echo "-L${MASON_PREFIX}/lib -lluabind"
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,56 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=luabind_lua524
|
||||
MASON_VERSION=e414c57bcb687bb3091b7c55bbff6947f052e46b
|
||||
MASON_LIB_FILE=lib/libluabind.a
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
https://github.com/mapbox/luabind/archive/${MASON_VERSION}.tar.gz \
|
||||
49bbe06214a6a747a1f20eba34b7c2d0ea41c51a
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/luabind-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_prepare_compile {
|
||||
cd $(dirname ${MASON_ROOT})
|
||||
${MASON_DIR}/mason install lua 5.2.4
|
||||
MASON_LUA=$(${MASON_DIR}/mason prefix lua 5.2.4)
|
||||
${MASON_DIR}/mason install boost 1.61.0
|
||||
MASON_BOOST_HEADERS=$(${MASON_DIR}/mason prefix boost 1.61.0)
|
||||
${MASON_DIR}/mason install cmake 3.5.2
|
||||
MASON_CMAKE=$(${MASON_DIR}/mason prefix cmake 3.5.2)
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
${MASON_CMAKE}/bin/cmake ../ -DCMAKE_INSTALL_PREFIX=${MASON_PREFIX} \
|
||||
-DCMAKE_CXX_FLAGS="${CXXFLAGS} -DLUA_COMPAT_ALL" \
|
||||
-DLUA_LIBRARIES=${MASON_LUA}/lib \
|
||||
-DLUA_INCLUDE_DIR=${MASON_LUA}/include \
|
||||
-DBOOST_INCLUDEDIR=${MASON_BOOST_HEADERS}/include \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_TESTING=OFF
|
||||
make -j${MASON_CONCURRENCY} VERBOSE=1
|
||||
make install
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo "-I${MASON_PREFIX}/include"
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
echo "-L${MASON_PREFIX}/lib -lluabind"
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=luabind_luajit2.0.3
|
||||
MASON_VERSION=e414c57bcb687bb3091b7c55bbff6947f052e46b
|
||||
MASON_LIB_FILE=lib/libluabind.a
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
https://github.com/mapbox/luabind/archive/${MASON_VERSION}.tar.gz \
|
||||
49bbe06214a6a747a1f20eba34b7c2d0ea41c51a
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/luabind-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_prepare_compile {
|
||||
cd $(dirname ${MASON_ROOT})
|
||||
${MASON_DIR}/mason install luajit 2.0.3
|
||||
MASON_LUA=$(${MASON_DIR}/mason prefix luajit 2.0.3)
|
||||
${MASON_DIR}/mason install boost 1.57.0
|
||||
MASON_BOOST_HEADERS=$(${MASON_DIR}/mason prefix boost 1.57.0)
|
||||
SYSTEM_ZLIB="/usr"
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
mkdir build
|
||||
cd build
|
||||
cmake
|
||||
cmake ../ -DCMAKE_INSTALL_PREFIX=${MASON_PREFIX} \
|
||||
-DLUA_LIBRARIES=${MASON_LUA}/lib \
|
||||
-DLUA_INCLUDE_DIR=${MASON_LUA}/include/luajit-2.0 \
|
||||
-DBOOST_INCLUDEDIR=${MASON_BOOST_HEADERS}/include \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_TESTING=OFF
|
||||
make -j${MASON_CONCURRENCY} VERBOSE=1
|
||||
make install
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo "-I${MASON_PREFIX}/include"
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
echo "-L${MASON_PREFIX}/lib -lluabind"
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
35
third_party/mason/scripts/luajit/2.0.3/script.sh
vendored
35
third_party/mason/scripts/luajit/2.0.3/script.sh
vendored
@ -1,35 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=luajit
|
||||
MASON_VERSION=2.0.3
|
||||
MASON_LIB_FILE=lib/libluajit-5.1.a
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
http://luajit.org/download/LuaJIT-2.0.3.tar.gz \
|
||||
0705f5967736b3b01fe7b96af03a8fff45fa43d8
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/LuaJIT-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
make CC=$CC CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" PREFIX=${MASON_PREFIX} install
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo "-I${MASON_PREFIX}/include"
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
echo "ld ${MASON_PREFIX}/lib/libluajit-5.1.a"
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -44,6 +44,7 @@ function mason_compile {
|
||||
cd build
|
||||
CMAKE_PREFIX_PATH=${MASON_ROOT}/.link \
|
||||
cmake \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DOSMIUM_INCLUDE_DIR=${OSMIUM_INCLUDE_DIR} \
|
||||
..
|
||||
make
|
||||
|
@ -44,6 +44,7 @@ function mason_compile {
|
||||
cd build
|
||||
CMAKE_PREFIX_PATH=${MASON_ROOT}/.link \
|
||||
cmake \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DOSMIUM_INCLUDE_DIR=${OSMIUM_INCLUDE_DIR} \
|
||||
..
|
||||
make
|
||||
|
@ -1,29 +1,19 @@
|
||||
language: c
|
||||
|
||||
sudo: false
|
||||
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-precise-3.7
|
||||
packages:
|
||||
- clang-3.7
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode6
|
||||
compiler: clang
|
||||
- os: osx
|
||||
osx_image: xcode7
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env: CXX=clang++-3.7
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
||||
|
@ -16,27 +16,24 @@ function mason_load_source {
|
||||
}
|
||||
|
||||
function mason_prepare_compile {
|
||||
echo ${MASON_ROOT}/.build
|
||||
cd ${MASON_ROOT}
|
||||
OSMIUM_INCLUDE_DIR=${MASON_ROOT}/osmcode-libosmium-latest/include
|
||||
curl --retry 3 -f -# -L "https://github.com/osmcode/libosmium/tarball/master" -o osmium.tar.gz
|
||||
tar -xzf osmium.tar.gz
|
||||
rm -rf osmcode-libosmium-latest
|
||||
mv osmcode-libosmium-* osmcode-libosmium-latest
|
||||
|
||||
cd $(dirname ${MASON_ROOT})
|
||||
${MASON_DIR}/mason install cmake 3.2.2
|
||||
${MASON_DIR}/mason link cmake 3.2.2
|
||||
${MASON_DIR}/mason install boost 1.59.0
|
||||
${MASON_DIR}/mason link boost 1.59.0
|
||||
${MASON_DIR}/mason install boost_liball 1.59.0
|
||||
${MASON_DIR}/mason link boost_liball 1.59.0
|
||||
${MASON_DIR}/mason install cmake 3.6.2
|
||||
${MASON_DIR}/mason link cmake 3.6.2
|
||||
${MASON_DIR}/mason install utfcpp 2.3.4
|
||||
${MASON_DIR}/mason link utfcpp 2.3.4
|
||||
${MASON_DIR}/mason install protozero 1.4.5
|
||||
${MASON_DIR}/mason link protozero 1.4.5
|
||||
${MASON_DIR}/mason install rapidjson 2016-07-20-369de87
|
||||
${MASON_DIR}/mason link rapidjson 2016-07-20-369de87
|
||||
${MASON_DIR}/mason install libosmium 2.10.3
|
||||
${MASON_DIR}/mason link libosmium 2.10.3
|
||||
${MASON_DIR}/mason install boost 1.62.0
|
||||
${MASON_DIR}/mason link boost 1.62.0
|
||||
${MASON_DIR}/mason install zlib 1.2.8
|
||||
${MASON_DIR}/mason link zlib 1.2.8
|
||||
${MASON_DIR}/mason install expat 2.1.0
|
||||
${MASON_DIR}/mason link expat 2.1.0
|
||||
${MASON_DIR}/mason install bzip 1.0.6
|
||||
${MASON_DIR}/mason link bzip 1.0.6
|
||||
${MASON_DIR}/mason install expat 2.2.0
|
||||
${MASON_DIR}/mason link expat 2.2.0
|
||||
${MASON_DIR}/mason install bzip2 1.0.6
|
||||
${MASON_DIR}/mason link bzip2 1.0.6
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
@ -45,15 +42,27 @@ function mason_compile {
|
||||
cd build
|
||||
CMAKE_PREFIX_PATH=${MASON_ROOT}/.link \
|
||||
${MASON_ROOT}/.link/bin/cmake \
|
||||
-DOSMIUM_INCLUDE_DIR=${OSMIUM_INCLUDE_DIR} \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
..
|
||||
make
|
||||
make VERBOSE=1
|
||||
mkdir -p ${MASON_PREFIX}/bin
|
||||
mv minjur ${MASON_PREFIX}/bin/minjur
|
||||
mv minjur-mp ${MASON_PREFIX}/bin/minjur-mp
|
||||
mv minjur-generate-tilelist ${MASON_PREFIX}/bin/minjur-generate-tilelist
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_static_libs {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
19
third_party/mason/scripts/pixman/0.34.0/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/pixman/0.34.0/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
48
third_party/mason/scripts/pixman/0.34.0/script.sh
vendored
Executable file
48
third_party/mason/scripts/pixman/0.34.0/script.sh
vendored
Executable file
@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=pixman
|
||||
MASON_VERSION=0.34.0
|
||||
MASON_LIB_FILE=lib/libpixman-1.a
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
http://cairographics.org/releases/pixman-${MASON_VERSION}.tar.gz \
|
||||
022e9e5856f4c5a8c9bdea3996c6b199683fce78
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
./configure \
|
||||
--prefix=${MASON_PREFIX} \
|
||||
${MASON_HOST_ARG} \
|
||||
--enable-static \
|
||||
--disable-shared \
|
||||
--disable-dependency-tracking \
|
||||
--disable-mmx \
|
||||
--disable-ssse3 \
|
||||
--disable-libpng \
|
||||
--disable-gtk
|
||||
|
||||
# The -i and -k flags are to workaround osx bug in pixman tests: Undefined symbols for architecture x86_64: "_prng_state
|
||||
make -j${MASON_CONCURRENCY} -i -k
|
||||
make install -i -k
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo -I${MASON_PREFIX}/include
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
echo -L${MASON_PREFIX}/lib -ljpeg
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,14 +1,6 @@
|
||||
language: cpp
|
||||
|
||||
sudo: false
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: clang
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
36
third_party/mason/scripts/polylabel/1.0.2/script.sh
vendored
Executable file
36
third_party/mason/scripts/polylabel/1.0.2/script.sh
vendored
Executable file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=polylabel
|
||||
MASON_VERSION=1.0.2
|
||||
MASON_HEADER_ONLY=true
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
https://github.com/mapbox/polylabel/archive/ad5b37a15502507198f62d1ced608cebf0abf6cf.tar.gz \
|
||||
7f982a293c5024ad170c8b54977189a995486615
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-ad5b37a15502507198f62d1ced608cebf0abf6cf
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
mkdir -p ${MASON_PREFIX}/include/mapbox
|
||||
cp -v polylabel.hpp ${MASON_PREFIX}/include/mapbox/polylabel.hpp
|
||||
cp -v README.md LICENSE ${MASON_PREFIX}
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo -I${MASON_PREFIX}/include
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_static_libs {
|
||||
:
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,16 +1,11 @@
|
||||
language: cpp
|
||||
|
||||
sudo: false
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: clang
|
||||
sudo: false
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
32
third_party/mason/scripts/protozero/1.4.5/script.sh
vendored
Normal file
32
third_party/mason/scripts/protozero/1.4.5/script.sh
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=protozero
|
||||
MASON_VERSION=1.4.5
|
||||
MASON_HEADER_ONLY=true
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
https://github.com/mapbox/protozero/archive/v${MASON_VERSION}.tar.gz \
|
||||
17958acf20ba7071a040135821afc17d196a33ba
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/protozero-${MASON_VERSION}
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
mkdir -p ${MASON_PREFIX}/include/
|
||||
cp -r include/protozero ${MASON_PREFIX}/include/protozero
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo "-I${MASON_PREFIX}/include"
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/rocksdb/4.13/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/rocksdb/4.13/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
37
third_party/mason/scripts/rocksdb/4.13/script.sh
vendored
Normal file
37
third_party/mason/scripts/rocksdb/4.13/script.sh
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=rocksdb
|
||||
MASON_VERSION=4.13
|
||||
MASON_LIB_FILE=lib/librocksdb.a
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
https://github.com/facebook/${MASON_NAME}/archive/v4.13.tar.gz \
|
||||
0f82fd1e08e3c339dab5b19b08e201aebe6dace4
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-4.13
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
# by default -O2 is used for release builds (https://github.com/facebook/rocksdb/commit/1d08140e817d5908889f59046148ed4d3b1039e5)
|
||||
# but this is too conservative
|
||||
# we want -O3 for best performance
|
||||
perl -i -p -e "s/-O2 -fno-omit-frame-pointer/-O3/g;" Makefile
|
||||
INSTALL_PATH=${MASON_PREFIX} V=1 make install-static -j${MASON_CONCURRENCY}
|
||||
# remove debug symbols (200 MB -> 10 MB)
|
||||
strip -S ${MASON_PREFIX}/${MASON_LIB_FILE}
|
||||
}
|
||||
|
||||
function mason_static_libs {
|
||||
echo ${MASON_PREFIX}/${MASON_LIB_FILE}
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/sqlite/3.14.1/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/sqlite/3.14.1/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
48
third_party/mason/scripts/sqlite/3.14.1/script.sh
vendored
Executable file
48
third_party/mason/scripts/sqlite/3.14.1/script.sh
vendored
Executable file
@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=sqlite
|
||||
MASON_VERSION=3.41.1
|
||||
MASON_LIB_FILE=lib/libsqlite3.a
|
||||
MASON_PKGCONFIG_FILE=lib/pkgconfig/sqlite3.pc
|
||||
|
||||
SQLITE_FILE_VERSION=3140100
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
https://www.sqlite.org/2016/sqlite-autoconf-${SQLITE_FILE_VERSION}.tar.gz \
|
||||
3cd6b9b45b3c8822d443e50587a242db7c05bbd4
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/sqlite-autoconf-${SQLITE_FILE_VERSION}
|
||||
}
|
||||
|
||||
function mason_compile {
|
||||
CFLAGS="-O3 ${CFLAGS}" ./configure \
|
||||
--prefix=${MASON_PREFIX} \
|
||||
${MASON_HOST_ARG} \
|
||||
--enable-static \
|
||||
--with-pic \
|
||||
--disable-shared \
|
||||
--disable-dependency-tracking
|
||||
|
||||
make install -j${MASON_CONCURRENCY}
|
||||
}
|
||||
|
||||
function mason_strip_ldflags {
|
||||
shift # -L...
|
||||
shift # -lsqlite3
|
||||
echo "$@"
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
mason_strip_ldflags $(`mason_pkgconfig` --static --libs)
|
||||
}
|
||||
|
||||
function mason_clean {
|
||||
make clean
|
||||
}
|
||||
|
||||
mason_run "$@"
|
19
third_party/mason/scripts/twemproxy/0.4.1/.travis.yml
vendored
Normal file
19
third_party/mason/scripts/twemproxy/0.4.1/.travis.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
compiler: clang
|
||||
- os: linux
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++-5-dev
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
45
third_party/mason/scripts/twemproxy/0.4.1/script.sh
vendored
Executable file
45
third_party/mason/scripts/twemproxy/0.4.1/script.sh
vendored
Executable file
@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
MASON_NAME=twemproxy
|
||||
MASON_VERSION=0.4.1
|
||||
MASON_LIB_FILE=sbin/nutcracker
|
||||
|
||||
. ${MASON_DIR}/mason.sh
|
||||
|
||||
function mason_load_source {
|
||||
mason_download \
|
||||
https://github.com/twitter/${MASON_NAME}/archive/v${MASON_VERSION}.tar.gz \
|
||||
8af659bf54240aecc2f86cdd9ba3ddcc9c35f1f0
|
||||
|
||||
mason_extract_tar_gz
|
||||
|
||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-${MASON_VERSION}
|
||||
}
|
||||
|
||||
|
||||
function mason_compile {
|
||||
autoreconf -ivf
|
||||
# NOTE: CFLAGS overrides internal default
|
||||
# which in this case is desirable because it allows us to override the internal
|
||||
# default of -O2
|
||||
export CFLAGS="${CFLAGS} -O3 -DNDEBUG"
|
||||
./configure \
|
||||
--prefix=${MASON_PREFIX} \
|
||||
--disable-debug --disable-dependency-tracking
|
||||
make -j${MASON_CONCURRENCY}
|
||||
make install
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_static_libs {
|
||||
:
|
||||
}
|
||||
|
||||
mason_run "$@"
|
@ -1,17 +1,11 @@
|
||||
language: cpp
|
||||
|
||||
sudo: false
|
||||
language: generic
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: clang
|
||||
sudo: false
|
||||
|
||||
script:
|
||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
||||
- ./mason link ${MASON_NAME} ${MASON_VERSION}
|
||||
|
||||
after_success:
|
||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
||||
|
12
third_party/mason/scripts/utfcpp/2.3.4/script.sh
vendored
12
third_party/mason/scripts/utfcpp/2.3.4/script.sh
vendored
@ -22,4 +22,16 @@ function mason_compile {
|
||||
cp source/utf8.h ${MASON_PREFIX}/include/
|
||||
}
|
||||
|
||||
function mason_cflags {
|
||||
echo -I${MASON_PREFIX}/include
|
||||
}
|
||||
|
||||
function mason_ldflags {
|
||||
:
|
||||
}
|
||||
|
||||
function mason_static_libs {
|
||||
:
|
||||
}
|
||||
|
||||
mason_run "$@"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user