Bundle mason.cmake and mason.sh
This commit is contained in:
parent
03bb6dc161
commit
7ecf3410bf
@ -27,7 +27,7 @@ env:
|
|||||||
- CASHER_TIME_OUT=599 # one second less than 10m to avoid 10m timeout error: https://github.com/Project-OSRM/osrm-backend/issues/2742
|
- CASHER_TIME_OUT=599 # one second less than 10m to avoid 10m timeout error: https://github.com/Project-OSRM/osrm-backend/issues/2742
|
||||||
- CCACHE_VERSION=3.3.1
|
- CCACHE_VERSION=3.3.1
|
||||||
- CMAKE_VERSION=3.6.2
|
- CMAKE_VERSION=3.6.2
|
||||||
- MASON="$(pwd)/third_party/mason/mason"
|
- MASON="$(pwd)/scripts/mason.sh"
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
@ -135,8 +135,13 @@ before_install:
|
|||||||
- source ./scripts/install_node.sh 4
|
- source ./scripts/install_node.sh 4
|
||||||
- npm install -g "npm@>=3" # Upgrade to npm >v2 to reduce size of downloaded dependencies
|
- npm install -g "npm@>=3" # Upgrade to npm >v2 to reduce size of downloaded dependencies
|
||||||
- npm install
|
- npm install
|
||||||
|
# Bootstrap cmake to be able to run mason
|
||||||
|
- CMAKE_URL="https://mason-binaries.s3.amazonaws.com/${TRAVIS_OS_NAME}-x86_64/cmake/${CMAKE_VERSION}.tar.gz"
|
||||||
|
- CMAKE_DIR="mason_packages/${TRAVIS_OS_NAME}-x86_64/cmake/${CMAKE_VERSION}"
|
||||||
|
- mkdir -p ${CMAKE_DIR}
|
||||||
|
- travis_retry wget --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${CMAKE_DIR} || exit 1
|
||||||
|
- export PATH=${CMAKE_DIR}/bin:${PATH}
|
||||||
- ${MASON} install ccache ${CCACHE_VERSION} && export PATH=$(${MASON} prefix ccache ${CCACHE_VERSION})/bin:${PATH}
|
- ${MASON} install ccache ${CCACHE_VERSION} && export PATH=$(${MASON} prefix ccache ${CCACHE_VERSION})/bin:${PATH}
|
||||||
- ${MASON} install cmake ${CMAKE_VERSION} && export PATH=$(${MASON} prefix cmake ${CMAKE_VERSION})/bin:${PATH}
|
|
||||||
- |
|
- |
|
||||||
if [[ ! -z ${CLANG_VERSION} ]]; then
|
if [[ ! -z ${CLANG_VERSION} ]]; then
|
||||||
export CCOMPILER='clang'
|
export CCOMPILER='clang'
|
||||||
|
@ -25,6 +25,8 @@ option(ENABLE_LTO "Use LTO if available" OFF)
|
|||||||
option(ENABLE_FUZZING "Fuzz testing using LLVM's libFuzzer" OFF)
|
option(ENABLE_FUZZING "Fuzz testing using LLVM's libFuzzer" OFF)
|
||||||
option(ENABLE_GOLD_LINKER "Use GNU gold linker if available" ON)
|
option(ENABLE_GOLD_LINKER "Use GNU gold linker if available" ON)
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||||
|
|
||||||
if(ENABLE_MASON)
|
if(ENABLE_MASON)
|
||||||
# versions in use
|
# versions in use
|
||||||
set(MASON_BOOST_VERSION "1.63.0")
|
set(MASON_BOOST_VERSION "1.63.0")
|
||||||
@ -41,8 +43,7 @@ if(ENABLE_MASON)
|
|||||||
message(FATAL_ERROR "curl command required with -DENABLE_MASON")
|
message(FATAL_ERROR "curl command required with -DENABLE_MASON")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(MASON_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/third_party/mason/mason)
|
include(mason)
|
||||||
include(${CMAKE_CURRENT_SOURCE_DIR}/third_party/mason/mason.cmake)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# be compatible with version handling before cmake 3.x
|
# be compatible with version handling before cmake 3.x
|
||||||
@ -78,8 +79,6 @@ include(CheckCXXCompilerFlag)
|
|||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
||||||
|
|
||||||
set(bitness 32)
|
set(bitness 32)
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
set(bitness 64)
|
set(bitness 64)
|
||||||
|
@ -1,72 +1,34 @@
|
|||||||
string(RANDOM LENGTH 16 MASON_INVOCATION)
|
# Mason CMake
|
||||||
|
|
||||||
# Directory where Mason packages are located; typically ends with mason_packages
|
|
||||||
if (NOT MASON_PACKAGE_DIR)
|
|
||||||
set(MASON_PACKAGE_DIR "${CMAKE_SOURCE_DIR}/mason_packages")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# URL prefix of where packages are located.
|
|
||||||
if (NOT MASON_REPOSITORY)
|
|
||||||
set(MASON_REPOSITORY "https://mason-binaries.s3.amazonaws.com")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Path to Mason executable
|
|
||||||
if (NOT MASON_COMMAND)
|
|
||||||
set(MASON_COMMAND "${CMAKE_SOURCE_DIR}/.mason/mason")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Determine platform
|
|
||||||
# we call uname -s manually here since
|
|
||||||
# CMAKE_HOST_SYSTEM_NAME will not be defined before the project() call
|
|
||||||
execute_process(
|
|
||||||
COMMAND uname -s
|
|
||||||
OUTPUT_VARIABLE UNAME_S
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
if(NOT MASON_PLATFORM)
|
|
||||||
if (UNAME_S STREQUAL "Darwin")
|
|
||||||
set(MASON_PLATFORM "macos")
|
|
||||||
else()
|
|
||||||
set(MASON_PLATFORM "linux")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
# Determine platform version string
|
|
||||||
if(MASON_PLATFORM STREQUAL "ios")
|
|
||||||
set(MASON_PLATFORM_VERSION "8.0") # Deployment target version
|
|
||||||
elseif(MASON_PLATFORM STREQUAL "android")
|
|
||||||
if (ANDROID_ABI STREQUAL "armeabi")
|
|
||||||
set(MASON_PLATFORM_VERSION "arm-v5-9")
|
|
||||||
elseif(ANDROID_ABI STREQUAL "arm64-v8a")
|
|
||||||
set(MASON_PLATFORM_VERSION "arm-v8-21")
|
|
||||||
elseif(ANDROID_ABI STREQUAL "x86")
|
|
||||||
set(MASON_PLATFORM_VERSION "x86-9")
|
|
||||||
elseif(ANDROID_ABI STREQUAL "x86_64")
|
|
||||||
set(MASON_PLATFORM_VERSION "x86-64-21")
|
|
||||||
elseif(ANDROID_ABI STREQUAL "mips")
|
|
||||||
set(MASON_PLATFORM_VERSION "mips-9")
|
|
||||||
elseif(ANDROID_ABI STREQUAL "mips64")
|
|
||||||
set(MASON_PLATFORM_VERSION "mips64-21")
|
|
||||||
else()
|
|
||||||
set(MASON_PLATFORM_VERSION "arm-v7-9")
|
|
||||||
endif()
|
|
||||||
elseif(NOT MASON_PLATFORM_VERSION)
|
|
||||||
execute_process(
|
|
||||||
COMMAND uname -m
|
|
||||||
OUTPUT_VARIABLE MASON_PLATFORM_VERSION
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MASON_PLATFORM STREQUAL "macos")
|
|
||||||
set(MASON_PLATFORM "osx")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(ENV{MASON_PLATFORM} "${MASON_PLATFORM}")
|
|
||||||
set(ENV{MASON_PLATFORM_VERSION} "${MASON_PLATFORM_VERSION}")
|
|
||||||
|
|
||||||
include(CMakeParseArguments)
|
include(CMakeParseArguments)
|
||||||
|
|
||||||
|
function(mason_detect_platform)
|
||||||
|
# Determine platform
|
||||||
|
if(NOT MASON_PLATFORM)
|
||||||
|
# we call uname -s manually here since
|
||||||
|
# CMAKE_HOST_SYSTEM_NAME will not be defined before the project() call
|
||||||
|
execute_process(
|
||||||
|
COMMAND uname -s
|
||||||
|
OUTPUT_VARIABLE UNAME
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
|
if (UNAME STREQUAL "Darwin")
|
||||||
|
set(MASON_PLATFORM "osx" PARENT_SCOPE)
|
||||||
|
else()
|
||||||
|
set(MASON_PLATFORM "linux" PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Determine platform version string
|
||||||
|
if(NOT MASON_PLATFORM_VERSION)
|
||||||
|
execute_process(
|
||||||
|
COMMAND uname -m
|
||||||
|
OUTPUT_VARIABLE MASON_PLATFORM_VERSION
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
set(MASON_PLATFORM_VERSION "${MASON_PLATFORM_VERSION}" PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
function(mason_use _PACKAGE)
|
function(mason_use _PACKAGE)
|
||||||
if(NOT _PACKAGE)
|
if(NOT _PACKAGE)
|
||||||
message(FATAL_ERROR "[Mason] No package name given")
|
message(FATAL_ERROR "[Mason] No package name given")
|
||||||
@ -103,7 +65,7 @@ function(mason_use _PACKAGE)
|
|||||||
if (NOT EXISTS "${_CACHE_PATH}")
|
if (NOT EXISTS "${_CACHE_PATH}")
|
||||||
# Download the package
|
# Download the package
|
||||||
set(_URL "${MASON_REPOSITORY}/${_SLUG}.tar.gz")
|
set(_URL "${MASON_REPOSITORY}/${_SLUG}.tar.gz")
|
||||||
message(STATUS "[Mason] Downloading package ${_URL}...")
|
message("[Mason] Downloading package ${_URL}...")
|
||||||
|
|
||||||
set(_FAILED)
|
set(_FAILED)
|
||||||
set(_ERROR)
|
set(_ERROR)
|
||||||
@ -123,39 +85,16 @@ function(mason_use _PACKAGE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Unpack the package
|
# Unpack the package
|
||||||
message(STATUS "[Mason] Unpacking package to ${_INSTALL_PATH_RELATIVE}...")
|
message("[Mason] Unpacking package to ${_INSTALL_PATH_RELATIVE}...")
|
||||||
file(MAKE_DIRECTORY "${_INSTALL_PATH}")
|
file(MAKE_DIRECTORY "${_INSTALL_PATH}")
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${CMAKE_COMMAND} -E tar xzf "${_CACHE_PATH}"
|
COMMAND ${CMAKE_COMMAND} -E tar xzf "${_CACHE_PATH}"
|
||||||
WORKING_DIRECTORY "${_INSTALL_PATH}")
|
WORKING_DIRECTORY "${_INSTALL_PATH}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Create a config file if it doesn't exist in the package
|
# Error out if there is no config file.
|
||||||
# TODO: remove this once all packages have a mason.ini file
|
|
||||||
if(NOT EXISTS "${_INSTALL_PATH}/mason.ini")
|
if(NOT EXISTS "${_INSTALL_PATH}/mason.ini")
|
||||||
# Change pkg-config files
|
message(FATAL_ERROR "[Mason] Could not find mason.ini for package ${_PACKAGE} ${_VERSION}")
|
||||||
file(GLOB_RECURSE _PKGCONFIG_FILES "${_INSTALL_PATH}/*.pc")
|
|
||||||
foreach(_PKGCONFIG_FILE IN ITEMS ${_PKGCONFIG_FILES})
|
|
||||||
file(READ "${_PKGCONFIG_FILE}" _PKGCONFIG_FILE_CONTENT)
|
|
||||||
string(REGEX REPLACE "(^|\n)prefix=[^\n]*" "\\1prefix=${_INSTALL_PATH}" _PKGCONFIG_FILE_CONTENT "${_PKGCONFIG_FILE_CONTENT}")
|
|
||||||
file(WRITE "${_PKGCONFIG_FILE}" "${_PKGCONFIG_FILE_CONTENT}")
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if(NOT EXISTS "${MASON_COMMAND}")
|
|
||||||
message(FATAL_ERROR "[Mason] Could not find Mason command at ${MASON_COMMAND}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(_FAILED)
|
|
||||||
set(_ERROR)
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${MASON_COMMAND} config ${_PACKAGE} ${_VERSION}
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
||||||
OUTPUT_FILE "${_INSTALL_PATH}/mason.ini"
|
|
||||||
RESULT_VARIABLE _FAILED
|
|
||||||
ERROR_VARIABLE _ERROR)
|
|
||||||
if(_FAILED)
|
|
||||||
message(FATAL_ERROR "[Mason] Could not get configuration for package ${_PACKAGE} ${_VERSION}: ${_ERROR}")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(MASON_PACKAGE_${_PACKAGE}_PREFIX "${_INSTALL_PATH}" CACHE STRING "${_PACKAGE} ${_INSTALL_PATH}" FORCE)
|
set(MASON_PACKAGE_${_PACKAGE}_PREFIX "${_INSTALL_PATH}" CACHE STRING "${_PACKAGE} ${_INSTALL_PATH}" FORCE)
|
||||||
@ -229,3 +168,48 @@ macro(target_add_mason_package _TARGET _VISIBILITY _PACKAGE)
|
|||||||
target_compile_options(${_TARGET} ${_VISIBILITY} "${MASON_PACKAGE_${_PACKAGE}_OPTIONS}")
|
target_compile_options(${_TARGET} ${_VISIBILITY} "${MASON_PACKAGE_${_PACKAGE}_OPTIONS}")
|
||||||
target_link_libraries(${_TARGET} ${_VISIBILITY} "${MASON_PACKAGE_${_PACKAGE}_LIBRARIES}")
|
target_link_libraries(${_TARGET} ${_VISIBILITY} "${MASON_PACKAGE_${_PACKAGE}_LIBRARIES}")
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
|
||||||
|
string(RANDOM LENGTH 16 MASON_INVOCATION)
|
||||||
|
|
||||||
|
# Read environment variables if CMake is run in command mode
|
||||||
|
if (CMAKE_ARGC)
|
||||||
|
set(MASON_PLATFORM "$ENV{MASON_PLATFORM}")
|
||||||
|
set(MASON_PLATFORM_VERSION "$ENV{MASON_PLATFORM_VERSION}")
|
||||||
|
set(MASON_PACKAGE_DIR "$ENV{MASON_PACKAGE_DIR}")
|
||||||
|
set(MASON_REPOSITORY "$ENV{MASON_REPOSITORY}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Directory where Mason packages are located; typically ends with mason_packages
|
||||||
|
if (NOT MASON_PACKAGE_DIR)
|
||||||
|
set(MASON_PACKAGE_DIR "${CMAKE_SOURCE_DIR}/mason_packages")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# URL prefix of where packages are located.
|
||||||
|
if (NOT MASON_REPOSITORY)
|
||||||
|
set(MASON_REPOSITORY "https://mason-binaries.s3.amazonaws.com")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
mason_detect_platform()
|
||||||
|
|
||||||
|
# Execute commands if CMake is run in command mode
|
||||||
|
if (CMAKE_ARGC)
|
||||||
|
# Collect remaining arguments for passing to mason_use
|
||||||
|
set(_MASON_ARGS)
|
||||||
|
if (${CMAKE_ARGC} LESS 5)
|
||||||
|
message(FATAL_ERROR "Usage: mason.sh [install|prefix] PACKAGE VERSION")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (${CMAKE_ARGV3} STREQUAL "install")
|
||||||
|
# Install the package
|
||||||
|
mason_use(${CMAKE_ARGV4} VERSION ${CMAKE_ARGV5})
|
||||||
|
elseif (${CMAKE_ARGV3} STREQUAL "prefix")
|
||||||
|
set(PKG_PREFIX "${MASON_PACKAGE_DIR}/${MASON_PLATFORM}-${MASON_PLATFORM_VERSION}/${CMAKE_ARGV4}/${CMAKE_ARGV5}")
|
||||||
|
# CMake can't write to stdout with message()
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -E echo "${PKG_PREFIX}")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Usage: mason.sh [install|prefix] PACKAGE VERSION")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
endif()
|
3
scripts/mason.sh
Executable file
3
scripts/mason.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
cmake -P cmake/mason.cmake "$@"
|
@ -15,20 +15,15 @@ OSMIUM_TAG=v2.11.0
|
|||||||
VARIANT_REPO="https://github.com/mapbox/variant.git"
|
VARIANT_REPO="https://github.com/mapbox/variant.git"
|
||||||
VARIANT_TAG=v1.1.0
|
VARIANT_TAG=v1.1.0
|
||||||
|
|
||||||
MASON_REPO="https://github.com/mapbox/mason.git"
|
|
||||||
MASON_TAG=v0.7.0
|
|
||||||
|
|
||||||
SOL_REPO="https://github.com/ThePhD/sol2.git"
|
SOL_REPO="https://github.com/ThePhD/sol2.git"
|
||||||
SOL_TAG=v2.15.5
|
SOL_TAG=v2.15.5
|
||||||
|
|
||||||
VARIANT_LATEST=$(curl "https://api.github.com/repos/mapbox/variant/releases/latest" | jq ".tag_name")
|
VARIANT_LATEST=$(curl "https://api.github.com/repos/mapbox/variant/releases/latest" | jq ".tag_name")
|
||||||
OSMIUM_LATEST=$(curl "https://api.github.com/repos/osmcode/libosmium/releases/latest" | jq ".tag_name")
|
OSMIUM_LATEST=$(curl "https://api.github.com/repos/osmcode/libosmium/releases/latest" | jq ".tag_name")
|
||||||
MASON_LATEST=$(curl "https://api.github.com/repos/mapbox/mason/releases/latest" | jq ".tag_name")
|
|
||||||
SOL_LATEST=$(curl "https://api.github.com/repos/ThePhD/sol2/releases/latest" | jq ".tag_name")
|
SOL_LATEST=$(curl "https://api.github.com/repos/ThePhD/sol2/releases/latest" | jq ".tag_name")
|
||||||
|
|
||||||
echo "Latest osmium release is $OSMIUM_LATEST, pulling in \"$OSMIUM_TAG\""
|
echo "Latest osmium release is $OSMIUM_LATEST, pulling in \"$OSMIUM_TAG\""
|
||||||
echo "Latest variant release is $VARIANT_LATEST, pulling in \"$VARIANT_TAG\""
|
echo "Latest variant release is $VARIANT_LATEST, pulling in \"$VARIANT_TAG\""
|
||||||
echo "Latest mason release is $MASON_LATEST, pulling in \"$MASON_TAG\""
|
|
||||||
echo "Latest sol2 release is $SOL_LATEST, pulling in \"$SOL_TAG\""
|
echo "Latest sol2 release is $SOL_LATEST, pulling in \"$SOL_TAG\""
|
||||||
|
|
||||||
read -p "Update osmium (y/n) " ok
|
read -p "Update osmium (y/n) " ok
|
||||||
@ -51,16 +46,6 @@ then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
read -p "Update mason (y/n) " ok
|
|
||||||
if [[ $ok =~ [yY] ]]
|
|
||||||
then
|
|
||||||
if [ -d "third_party/mason" ]; then
|
|
||||||
git subtree pull -P third_party/mason/ $MASON_REPO $MASON_TAG --squash
|
|
||||||
else
|
|
||||||
git subtree add -P third_party/mason/ $MASON_REPO $MASON_TAG --squash
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
read -p "Update sol2 (y/n) " ok
|
read -p "Update sol2 (y/n) " ok
|
||||||
if [[ $ok =~ [yY] ]]
|
if [[ $ok =~ [yY] ]]
|
||||||
then
|
then
|
||||||
|
1
third_party/mason/.gitignore
vendored
1
third_party/mason/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
mason_packages
|
|
30
third_party/mason/.travis.yml
vendored
30
third_party/mason/.travis.yml
vendored
@ -1,30 +0,0 @@
|
|||||||
language: generic
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: osx
|
|
||||||
osx_image: xcode8
|
|
||||||
compiler: clang
|
|
||||||
- os: linux
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
install:
|
|
||||||
- |
|
|
||||||
export
|
|
||||||
if [[ ${MASON_PLATFORM:-unset} == 'unset' ]] || [[ ${MASON_PLATFORM} == 'osx' ]] || [[ ${MASON_PLATFORM} == 'linux' ]]; then
|
|
||||||
# If platform is Linux or OSX, we might still be cross compiling if the
|
|
||||||
# MASON_PLATFORM_VERSION is not the same as the host platform.
|
|
||||||
if [[ ${CXX:-unset} == 'unset' ]] || [[ ${CXX} == "clang" ]] ; then
|
|
||||||
if [[ ${MASON_PLATFORM_VERSION} == `uname -m` ]] || [[ -z ${MASON_PLATFORM_VERSION} ]]; then
|
|
||||||
echo "Installing clang for OSX/Linux via 'install' target"
|
|
||||||
source utils/toolchain.sh
|
|
||||||
which ${CC}
|
|
||||||
${CC} -v
|
|
||||||
which ${CXX}
|
|
||||||
${CXX} -v
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./test/all.sh
|
|
99
third_party/mason/CHANGELOG.md
vendored
99
third_party/mason/CHANGELOG.md
vendored
@ -1,99 +0,0 @@
|
|||||||
# Mason releases
|
|
||||||
|
|
||||||
## 0.7.0
|
|
||||||
|
|
||||||
- Added
|
|
||||||
- or-tools 5.1
|
|
||||||
- jni.hpp 3.0.0
|
|
||||||
- libpng 1.6.28
|
|
||||||
- jpeg turbo 1.5.1
|
|
||||||
- freetype 2.7.1
|
|
||||||
- harfbuzz 1.4.2 (links no deps)
|
|
||||||
- harfbuzz 1.4.2-ft (links freetype 2.7.1)
|
|
||||||
- libpq and postgres 9.6.1
|
|
||||||
- webp 0.6.0
|
|
||||||
- protobuf 3.2.0
|
|
||||||
- proj 4.9.3
|
|
||||||
- libtiff 4.0.7
|
|
||||||
- gdal 2.1.3
|
|
||||||
- cairo 1.14.8
|
|
||||||
- geojsonvt 6.2.0
|
|
||||||
- tbb 2017_20161128
|
|
||||||
- kdbush 0.1.1-1
|
|
||||||
- benchmark 1.0.0-1
|
|
||||||
- jni 2.0.0-1
|
|
||||||
- earcut 0.12.2
|
|
||||||
- libgdal 2.1.3 (minimal package of just headers, lib, data)
|
|
||||||
|
|
||||||
- Fixed
|
|
||||||
- gcc 5.3.0-i686 lib file corrected
|
|
||||||
- unique_resource pinned to cba309e
|
|
||||||
- gdal-config to work even if not linked
|
|
||||||
- api-trace now built with g++-5
|
|
||||||
|
|
||||||
Changes: https://github.com/mapbox/mason/compare/v0.6.0...v0.7.0
|
|
||||||
|
|
||||||
## 0.6.0
|
|
||||||
|
|
||||||
- Added valgrind 3.12.0, earcut 0.12.1, protozero 1.5.0/1.5.1,
|
|
||||||
libprogram_options 1.62.0-cxx11abi, jemalloc 4.4.0, llnode 1.4.1,
|
|
||||||
Omnibus mesa 13.0.3, cmake 3.7.2, minjur 0.1.0, libosmium, 2.11.0,
|
|
||||||
tippecanoe 1.16.3, sqlite 3.16.2, osmium-tool 1.5.1, apitrace 6a30de1,
|
|
||||||
nsis 3.01, llvm-argdumper and lldb-server to lldb package
|
|
||||||
- Removed valgrind latest, minjur latest, tippecanoe latest
|
|
||||||
- Fixed harfbuzz package (#327), boost_regex_icu variant
|
|
||||||
|
|
||||||
Changes: https://github.com/mapbox/mason/compare/v0.5.0...v0.6.0
|
|
||||||
|
|
||||||
## 0.5.0
|
|
||||||
|
|
||||||
- Various fixes to support cross compiling
|
|
||||||
- Support for cross compiling to cortex_a9 on travis
|
|
||||||
- Added vector-tile 1.0.0-rc4, zlib_shared 1.2.8
|
|
||||||
- Fixes to zlib 1.2.8 ldflags
|
|
||||||
|
|
||||||
Changes: https://github.com/mapbox/mason/compare/v0.4.0...v0.5.0
|
|
||||||
|
|
||||||
## 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
|
|
||||||
- Added v8 `5.1.281.47` and `3.14.5.10`
|
|
||||||
- Fixed boost library name reporting
|
|
||||||
- Added tippecanoe `1.15.1`
|
|
||||||
- Added `iwyu` and `asan_symbolize` python script to llvm+clang++ packages
|
|
||||||
|
|
||||||
Changes: https://github.com/mapbox/mason/compare/v0.2.0...v0.3.0
|
|
||||||
|
|
||||||
## 0.2.0
|
|
||||||
|
|
||||||
- Added icu 58.1, mesa egl, boost 1.62.0, gdb 7.12, Android NDK r13b, binutils latest,
|
|
||||||
variant 1.1.4, geometry 0.9.0, geojson 0.4.0, pkgconfig 0.29.1, wagyu 1.0
|
|
||||||
- Removed boost *all* packages
|
|
||||||
- Renamed `TRAVIS_TOKEN` to `MASON_TRAVIS_TOKEN`
|
|
||||||
- Now including llvm-ar and llvm-ranlib in clang++ package
|
|
||||||
- Now setting secure variables in mason rather than .travis.yml per package
|
|
||||||
|
|
||||||
Changes: https://github.com/mapbox/mason/compare/v0.1.1...v0.2.0
|
|
||||||
|
|
||||||
## 0.1.1
|
|
||||||
|
|
||||||
- Added binutils 2.27, expat 2.2.0, mesa 13.0.0, and llvm 4.0.0 (in-development)
|
|
||||||
- Improved mason.cmake to support packages that report multiple static libs
|
|
||||||
- Improved llvm >= 3.8.1 packages to support `-flto` on linux
|
|
||||||
|
|
||||||
## 0.1.0
|
|
||||||
- First versioned release
|
|
379
third_party/mason/README.md
vendored
379
third_party/mason/README.md
vendored
@ -1,379 +0,0 @@
|
|||||||
# Mason
|
|
||||||
|
|
||||||
Mason can compile C/C++ code, publish packages to S3, and install those packages via binaries.
|
|
||||||
|
|
||||||
Mason does all its work locally inside `./mason_packages` and therefore does not require privileges for, or conflict with, system-wide packages.
|
|
||||||
|
|
||||||
Mason works on both OS X and Linux.
|
|
||||||
|
|
||||||
[](https://travis-ci.org/mapbox/mason)
|
|
||||||
|
|
||||||
### Goals
|
|
||||||
|
|
||||||
Mason is a package manager designed for developers who package standalone applications and who need complete control over dependency versions.
|
|
||||||
|
|
||||||
Because Mason is developed by Mapbox the default S3 bucket and set of available packages are driven by Mapbox developers. For other developers: 1) fork Mason and ideally rename it to something like `mason-{yourorg}`, 2) configure it against your own s3 bucket, and 3) go ahead an publish your own packages to an S3 bucket of your creation.
|
|
||||||
|
|
||||||
### Comparisons
|
|
||||||
|
|
||||||
Mason is like [npm](https://github.com/npm/npm) because it installs packages in the current working directory (`./mason_packages`) rather than globally.
|
|
||||||
|
|
||||||
Mason is like [homebrew](http://brew.sh/) because it requires no use of `sudo` to install packages.
|
|
||||||
|
|
||||||
Mason is like linux package managers like `apt-get` or `yum` because it works on linux.
|
|
||||||
|
|
||||||
Mason is unlike all of the above package managers because:
|
|
||||||
|
|
||||||
- Mason runs on both Linux and OS X and creates a single set of binaries that work on >= OS X 10.8 and >= Ubuntu Precise (rather than building binaries per version).
|
|
||||||
- Mason strongly prefers static libraries over shared libraries
|
|
||||||
- Mason has zero understanding of dependency trees: it leaves complete control to the developer for how packages relate.
|
|
||||||
- Mason does not depend on any specific runtime language (like python, node.js or ruby). It is a just a few bash scripts.
|
|
||||||
- Mason depends on [travis.ci](https://travis-ci.org) for creating and publishing binaries.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
#### Symlink
|
|
||||||
|
|
||||||
You need to install Mason to your user directory into `~/.mason`.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone -b master --single-branch https://github.com/mapbox/mason.git ~/.mason
|
|
||||||
sudo ln -s ~/.mason/mason /usr/local/bin/mason
|
|
||||||
```
|
|
||||||
|
|
||||||
The second line is optional.
|
|
||||||
|
|
||||||
#### Submodule
|
|
||||||
|
|
||||||
Mason can be added a submodule to your repository instead of creating a global symlink. This is helpful for other contributors to get set up quickly. Make sure to include the final part of the following command `.mason/` so your submodule path has the leading `.` instead of just being `mason/`.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git submodule add git@github.com:mapbox/mason.git .mason/
|
|
||||||
```
|
|
||||||
|
|
||||||
This will append a few lines to your `.gitmodules` file. Make sure to change the `url` parameter to `https` instead of `git@github` ssh protocol.
|
|
||||||
|
|
||||||
```
|
|
||||||
[submodule ".mason"]
|
|
||||||
path = .mason
|
|
||||||
url = https://github.com/mapbox/mason.git
|
|
||||||
```
|
|
||||||
|
|
||||||
Update your `Makefile` to point to the mason scripts and provide an installation script for the necessary dependencies. The following installs two Mason packages with the `make mason_packages` command.
|
|
||||||
|
|
||||||
```Make
|
|
||||||
MASON ?= .mason/mason
|
|
||||||
|
|
||||||
$(MASON):
|
|
||||||
git submodule update --init
|
|
||||||
|
|
||||||
mason_packages: $(MASON)
|
|
||||||
$(MASON) install geometry.hpp 0.7.0
|
|
||||||
$(MASON) install variant 1.1.0
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Most commands are structured like this:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mason <command> <library> <version>
|
|
||||||
```
|
|
||||||
|
|
||||||
The `command` can be one of the following
|
|
||||||
|
|
||||||
* `install`: Installs the specified library/version
|
|
||||||
* `remove`: Removes the specified library/version
|
|
||||||
* `build`: Forces a build from source (= skip pre-built binary detection)
|
|
||||||
* `publish`: Uploads the built binaries to the S3 bucket
|
|
||||||
* `prefix`: Prints the absolute path to the library installation directory
|
|
||||||
* `version`: Prints the actual version of the library (only useful when version is `system`)
|
|
||||||
* `cflags`: Prints C/C++ compiler flags
|
|
||||||
* `ldflags`: Prints linker flags
|
|
||||||
* `link`: Creates symlinks for packages in `mason_packages/.link`
|
|
||||||
* `trigger`: Trigger a build and publish operation on Travis CI
|
|
||||||
|
|
||||||
### `install`
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ mason install libuv 0.11.29
|
|
||||||
* Downloading binary package osx-10.10/libuv/0.11.29.tar.gz...
|
|
||||||
######################################################################## 100.0%
|
|
||||||
* Installed binary package at /Users/user/mason_packages/osx-10.10/libuv/0.11.29
|
|
||||||
```
|
|
||||||
|
|
||||||
Installs [libuv](https://github.com/joyent/libuv) into the current folder in the `mason_packages` directory. Libraries are versioned by platform and version number, so you can install several different versions of the same library along each other. Similarly, you can also install libraries for different platforms alongside each other, for example library binaries for OS X and iOS.
|
|
||||||
|
|
||||||
The `install` command first checks if the specified library/version is already present for this platform, and if so, exits. This means you can run it multiple times (e.g. as part of a configuration script) without doing unnecessary work.
|
|
||||||
|
|
||||||
Next, Mason checks whether there are pre-built binaries available in the S3 bucket for the current platform. If that is the case, they are downloaded and unzipped and the installation is complete.
|
|
||||||
|
|
||||||
If no pre-built binaries are available, Mason is going to build the library according to the script in the `mason_packages/.build` folder, and install into the platform- and library-specific directory.
|
|
||||||
|
|
||||||
|
|
||||||
### `remove`
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ mason remove libuv 0.11.29
|
|
||||||
* Removing existing package...
|
|
||||||
/Users/user/mason_packages/osx-10.10/libuv/0.11.29/include/uv-darwin.h
|
|
||||||
[...]
|
|
||||||
/Users/user/mason_packages/osx-10.10/libuv/0.11.29
|
|
||||||
```
|
|
||||||
|
|
||||||
Removes the specified library/version from the package directory.
|
|
||||||
|
|
||||||
### `build`
|
|
||||||
|
|
||||||
This command works like the `install` command, except that it *doesn't* check for existing library installations, and that it *doesn't* check for pre-built binaries. I.e. it first removes the current installation and *always* builds the library from source. This is useful when you are working on a build script and want to fresh builds.
|
|
||||||
|
|
||||||
### `publish`
|
|
||||||
|
|
||||||
Creates a gzipped tarball of the specified platform/library/version and uploads it to the `mason-binaries` S3 bucket. If you want to use this feature, you need write access to the bucket and need to specify the environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`.
|
|
||||||
|
|
||||||
### `prefix`
|
|
||||||
|
|
||||||
```bash
|
|
||||||
~ $ mason prefix libuv 0.11.29
|
|
||||||
/Users/user/mason_packages/osx-10.10/libuv/0.11.29
|
|
||||||
```
|
|
||||||
|
|
||||||
This prints the absolute path to the installation directory of the the library/version. Likely, this folder has the typical `include` and `lib` folders.
|
|
||||||
|
|
||||||
### `cflags`
|
|
||||||
|
|
||||||
```bash
|
|
||||||
~ $ mason cflags libuv 0.11.29
|
|
||||||
-I/Users/user/mason_packages/osx-10.10/libuv/0.11.29/include
|
|
||||||
```
|
|
||||||
|
|
||||||
Prints the C/C++ compiler flags that are required to compile source code with this library. Likely, this is just the include path, but may also contain other flags.
|
|
||||||
|
|
||||||
### `ldflags`
|
|
||||||
|
|
||||||
```bash
|
|
||||||
~ $ mason ldflags libuv 0.11.29
|
|
||||||
-L/Users/user/mason_packages/osx-10.10/libuv/0.11.29/lib -luv -lpthread -ldl
|
|
||||||
```
|
|
||||||
|
|
||||||
Prints the linker flags that are required to link against this library.
|
|
||||||
|
|
||||||
### `link`
|
|
||||||
|
|
||||||
```bash
|
|
||||||
~ $ mason link libuv 0.11.29
|
|
||||||
```
|
|
||||||
|
|
||||||
This command only works if the package has already been installed. When run it symlinks the versioned `lib`, `include`, `share`, and `bin` folders of the package into a shared structure that is unversioned. For example if `mason prefix libuv 0.11.29` was `./mason_packages/osx-10.10/libuv/0.11.29` then the library would become available at `./mason_packages/.link/lib/libuv.a`
|
|
||||||
|
|
||||||
### `trigger`
|
|
||||||
|
|
||||||
In order to ensure that all prebuilt binaries are consistent and reproducible, we perform the final build and publish operation on Travis CI.
|
|
||||||
|
|
||||||
First set the `MASON_TRAVIS_TOKEN` environment variable. You can do this either by installing the `travis` gem and running `travis token` or by using `curl` to hit the Travis api directly. See details on this below. **WARNING: be careful to keep this token safe. Cycling it requires emailing support@travis-ci.com. Giving someone an access token is like giving them full access to your Travis account.**
|
|
||||||
|
|
||||||
Once you are set up with your `MASON_TRAVIS_TOKEN` then use the `trigger` command to kick off a build:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
./mason trigger <package name> <package version>
|
|
||||||
```
|
|
||||||
|
|
||||||
Run this command from the root of a local mason repository checkout. It makes a request to the Travis API to build and publish the specified version of the package, using the Travis configuration in `./scripts/${MASON_NAME}/${MASON_VERSION}/.travis.yml`.
|
|
||||||
|
|
||||||
1) Using curl and travis api to generate MASON_TRAVIS_TOKEN
|
|
||||||
|
|
||||||
First generate a github personal access token that has `repo` scope by going to https://github.com/settings/tokens. More details at https://help.github.com/articles/creating-an-access-token-for-command-line-use/.
|
|
||||||
|
|
||||||
Then set that in your environment and run:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
GITHUB_TOKEN=<github token>
|
|
||||||
|
|
||||||
curl -s -i https://api.travis-ci.org/auth/github \
|
|
||||||
-H "User-Agent: Travis/1.0" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-H "Accept: application/vnd.travis-ci.2+json" \
|
|
||||||
-H "Host: api.travis-ci.org" \
|
|
||||||
-d "{\"github_token\": \"${GITHUB_TOKEN}\"}"
|
|
||||||
```
|
|
||||||
|
|
||||||
2) Use the travis command
|
|
||||||
|
|
||||||
For details see https://docs.travis-ci.com/user/triggering-builds and https://github.com/travis-ci/travis.rb#readme
|
|
||||||
|
|
||||||
## Writing build scripts
|
|
||||||
|
|
||||||
Each version of each package has its own directory in scripts/${package}/${version}, e.g. [`scripts/libuv/0.11.29`](https://github.com/mapbox/mason/tree/master/scripts/libuv/0.11.29). The directory must contain a file called `script.sh`, which is structured like this:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=libuv
|
|
||||||
MASON_VERSION=0.11.29
|
|
||||||
MASON_LIB_FILE=lib/libuv.a
|
|
||||||
MASON_PKGCONFIG_FILE=lib/pkgconfig/libuv.pc
|
|
||||||
```
|
|
||||||
|
|
||||||
Declare these variables first. `MASON_NAME` and `MASON_VERSION` are mandatory. If the install script build a static library, specify the relative path in the installation directory in `MASON_LIB_FILE`. This is used to check whether an installation actually exists before proceeding to download/build the library anew. You can optionally specify `MASON_PKGCONFIG_FILE` as the relative path to the pig-config file if the library has one. If the library doesn't have one, you need to override the functions `mason_cflags` and `mason_ldflags` (see below).
|
|
||||||
|
|
||||||
Then, we're loading the build system with
|
|
||||||
|
|
||||||
```bash
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
Next, we're defining a function that obtains the source code and unzips it:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
https://github.com/joyent/libuv/archive/v0.11.29.tar.gz \
|
|
||||||
5bf49a8652f680557cbaf335a160187b2da3bf7f
|
|
||||||
|
|
||||||
mason_extract_tar_gz
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/libuv-${MASON_VERSION}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
In that function, you should use `mason_download` as a shortcut to download the tarball. The second argument to is a hash generated with `git hash-object` and used to verify that the source code downloaded matches the expected file. The function also caches downloaded tarballs in the `mason_packages/.cache` folder.
|
|
||||||
|
|
||||||
`mason_extract_tar_gz` unpacks the archive into the `mason_packages/.build` folder. If the tarball is BZip2 compressed, you can also use `mason_extract_tar_bz2` instead.
|
|
||||||
|
|
||||||
Lastly, the `MASON_BUILD_PATH` variable contains the path to the unpacked folder inside the `.build` directory.
|
|
||||||
|
|
||||||
Then, you can optionally specify a function that is run before compiling, e.g. a script that generates configuration files:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
function mason_prepare_compile {
|
|
||||||
./autogen.sh
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
The heart of the script is the `mason_compile` function because it performs the actual build of the source code. There are a few variables available that you need to use to make sure that the package will work correctly.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
function mason_compile {
|
|
||||||
./configure \
|
|
||||||
--prefix=${MASON_PREFIX} \
|
|
||||||
${MASON_HOST_ARG} \
|
|
||||||
--enable-static \
|
|
||||||
--disable-shared \
|
|
||||||
--disable-dependency-tracking
|
|
||||||
|
|
||||||
make install -j${MASON_CONCURRENCY}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
In particular, you have to set the build system's installation prefix to `MASON_PREFIX`. For cross-platform builds, you have to specify the `MASON_HOST_ARG`, which is empty for regular builds and is set to the correct host platform for cross-compiles (e.g. iOS builds use `--host=arm-apple-darwin`).
|
|
||||||
|
|
||||||
If the build system supports building concurrently, you can tell it do do so by providing the number of parallel tasks from `MASON_CONCURRENCY`.
|
|
||||||
|
|
||||||
|
|
||||||
Next, the `mason_clean` function tells Mason how to clean up the build folder. This is required for multi-architecture builds. E.g. iOS builds perform a Simulator (Intel architecture) build first, then an iOS (ARM architecture) build. The results are `lipo`ed into one universal archive file.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Finally, we're going to run the everything:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mason_run "$@"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Variables
|
|
||||||
|
|
||||||
Name | Description
|
|
||||||
---|---
|
|
||||||
`MASON_DIR` | The directory where Mason itself is installed. Defaults to the current directory.
|
|
||||||
`MASON_ROOT` | Absolute path the `mason_packages` directory. Example: `/Users/user/mason_packages`.
|
|
||||||
`MASON_PLATFORM` | Platform of the current invocation. Currently one of `osx`, `ios` or `linux`.
|
|
||||||
`MASON_PLATFORM_VERSION` | Version of the platform. It must include the architecture if the produced binaries are architecture-specific (e.g. on Linux). Example: `10.10`
|
|
||||||
`MASON_NAME` | Name specified in the `script.sh` file. Example: `libuv`
|
|
||||||
`MASON_VERSION` | Version specified in the `script.sh` file. Example: `0.11.29`
|
|
||||||
`MASON_SLUG` | Combination of the name and version. Example: `libuv-0.11.29`
|
|
||||||
`MASON_PREFIX` | Absolute installation path. Example: `/Users/user/mason_packages/osx-10.10/libuv/0.11.29`
|
|
||||||
`MASON_BUILD_PATH` | Absolute path to the build root. Example: `/Users/user/mason_packages/.build/libuv-0.11.29`
|
|
||||||
`MASON_BUCKET` | S3 bucket that is used for storing pre-built binary packages. Example: `mason-binaries`
|
|
||||||
`MASON_BINARIES` | Relative path to the gzipped tarball in the `.binaries` directory. Example: `osx-10.10/libuv/0.11.29.tar.gz`
|
|
||||||
`MASON_BINARIES_PATH` | Absolute path to the gzipped tarball. Example: `/Users/user/mason_packages/.binaries/osx-10.10/libuv/0.11.29.tar.gz`
|
|
||||||
`MASON_CONCURRENCY` | Number of CPU cores. Example: `8`
|
|
||||||
`MASON_HOST_ARG` | Cross-compilation arguments. Example: `--host=x86_64-apple-darwin`
|
|
||||||
`MASON_LIB_FILE` | Relative path to the library file in the install directory. Example: `lib/libuv.a`
|
|
||||||
`MASON_PKGCONFIG_FILE` | Relative path to the pkg-config file in the install directory. Example: `lib/pkgconfig/libuv.pc`
|
|
||||||
`MASON_XCODE_ROOT` | OS X specific; Path to the Xcode Developer directory. Example: `/Applications/Xcode.app/Contents/Developer`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Customization
|
|
||||||
|
|
||||||
In addition to the override functions described above, you can also override the `mason_cflags` and `mason_ldflags` functions. By default, they're using `pkg-config` to determine these flags and print them to standard output. If a library doesn't include a `.pc` file, or has some other mechanism for determining the build flags, you can run them instead:
|
|
||||||
|
|
||||||
|
|
||||||
```bash
|
|
||||||
function mason_ldflags {
|
|
||||||
${MASON_PREFIX}/bin/curl-config --static-libs`
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### System packages
|
|
||||||
|
|
||||||
Some packages ship with operating systems, or can be easily installed with operating-specific package managers. For example, `libpng` is available on most systems and the version you're using doesn't really matter since it is mature and hasn't added any significant new APIs in recent years. To create a system package for it, use this `script.sh` file:
|
|
||||||
|
|
||||||
|
|
||||||
```bash
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=libpng
|
|
||||||
MASON_VERSION=system
|
|
||||||
MASON_SYSTEM_PACKAGE=true
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
if [ ! $(pkg-config libpng --exists; echo $?) = 0 ]; then
|
|
||||||
mason_error "Cannot find libpng with pkg-config"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
function mason_system_version {
|
|
||||||
mkdir -p "${MASON_PREFIX}"
|
|
||||||
cd "${MASON_PREFIX}"
|
|
||||||
if [ ! -f version ]; then
|
|
||||||
echo "#include <png.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <assert.h>
|
|
||||||
int main() {
|
|
||||||
assert(PNG_LIBPNG_VER == png_access_version_number());
|
|
||||||
printf(\"%s\", PNG_LIBPNG_VER_STRING);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
" > version.c && ${CC:-cc} version.c $(mason_cflags) $(mason_ldflags) -o version
|
|
||||||
fi
|
|
||||||
./version
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
pkg-config libpng --cflags
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
pkg-config libpng --libs
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
||||||
```
|
|
||||||
|
|
||||||
System packages are marked with `MASON_SYSTEM_PACKAGE=true`. We're also first using `pkg-config` to check whether the library is present at all. The `mason_system_version` function creates a small executable which outputs the actual version. It is the only thing that is cached in the installation directory.
|
|
||||||
|
|
||||||
We have to override the `mason_cflags` and `mason_ldflags` commands since the regular commands return flags for static libraries, but in the case of system packages, we want to dynamically link against the package.
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
Downloaded source tarballs are cached in `mason_packages/.cache`. If for some reason the initial download failed, but it still left a file in that directory, make sure you delete the partial download there.
|
|
73
third_party/mason/cloudformation/travis.template
vendored
73
third_party/mason/cloudformation/travis.template
vendored
@ -1,73 +0,0 @@
|
|||||||
{
|
|
||||||
"AWSTemplateFormatVersion": "2010-09-09",
|
|
||||||
"Description": "mason bucket resources",
|
|
||||||
"Resources": {
|
|
||||||
"BuildUser": {
|
|
||||||
"Type": "AWS::IAM::User",
|
|
||||||
"Properties": {
|
|
||||||
"Policies": [
|
|
||||||
{
|
|
||||||
"PolicyName": "list",
|
|
||||||
"PolicyDocument": {
|
|
||||||
"Statement": [
|
|
||||||
{
|
|
||||||
"Action": [
|
|
||||||
"s3:ListBucket"
|
|
||||||
],
|
|
||||||
"Effect": "Allow",
|
|
||||||
"Resource": [
|
|
||||||
"arn:aws:s3:::mason-binaries"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"PolicyName": "build",
|
|
||||||
"PolicyDocument": {
|
|
||||||
"Statement": [
|
|
||||||
{
|
|
||||||
"Action": [
|
|
||||||
"s3:DeleteObject",
|
|
||||||
"s3:GetObject",
|
|
||||||
"s3:GetObjectAcl",
|
|
||||||
"s3:PutObject",
|
|
||||||
"s3:PutObjectAcl"
|
|
||||||
],
|
|
||||||
"Effect": "Allow",
|
|
||||||
"Resource": [
|
|
||||||
"arn:aws:s3:::mason-binaries/*"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"BuildUserKey": {
|
|
||||||
"Type": "AWS::IAM::AccessKey",
|
|
||||||
"Properties": {
|
|
||||||
"UserName": {
|
|
||||||
"Ref": "BuildUser"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Outputs": {
|
|
||||||
"AccessKeyId": {
|
|
||||||
"Value": {
|
|
||||||
"Ref": "BuildUserKey"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"SecretAccessKey": {
|
|
||||||
"Value": {
|
|
||||||
"Fn::GetAtt": [
|
|
||||||
"BuildUserKey",
|
|
||||||
"SecretAccessKey"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
13
third_party/mason/contributing.md
vendored
13
third_party/mason/contributing.md
vendored
@ -1,13 +0,0 @@
|
|||||||
# Release process
|
|
||||||
|
|
||||||
- Increment version at the top of `mason`
|
|
||||||
- Update changelog
|
|
||||||
- Ensure tests are passing
|
|
||||||
- Tag a release:
|
|
||||||
|
|
||||||
```
|
|
||||||
TAG_NAME=$(cat mason | grep MASON_RELEASED_VERSION= | cut -c25-29)
|
|
||||||
git tag v${TAG_NAME} -a -m "v${TAG_NAME}" && git push --tags
|
|
||||||
```
|
|
||||||
|
|
||||||
- Go to https://github.com/mapbox/mason/releases/new and create a new release
|
|
87
third_party/mason/mason
vendored
87
third_party/mason/mason
vendored
@ -1,87 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_COMMAND=$1 ; shift
|
|
||||||
MASON_NAME=$1 ; shift
|
|
||||||
MASON_VERSION=$1 ; shift
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
MASON_RELEASED_VERSION="0.7.0"
|
|
||||||
|
|
||||||
if [ "${MASON_COMMAND}" = "--version" ]; then
|
|
||||||
echo ${MASON_RELEASED_VERSION}
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
function usage {
|
|
||||||
echo "Usage: $0 <command> <lib> <version>"
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -z "${MASON_COMMAND}" ]; then
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
ROOTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
|
||||||
MASON_DIR=${MASON_DIR:-$ROOTDIR}
|
|
||||||
|
|
||||||
if [ "${MASON_COMMAND}" = "env" ]; then
|
|
||||||
. ${MASON_DIR}/mason.sh > /dev/null
|
|
||||||
eval echo \$${MASON_NAME}
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${MASON_NAME}" ]; then
|
|
||||||
usage
|
|
||||||
echo "Missing <lib>"
|
|
||||||
exit 1
|
|
||||||
elif [ -z "${MASON_VERSION}" ]; then
|
|
||||||
usage
|
|
||||||
echo "Missing <version>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${MASON_COMMAND}" = "trigger" ]; then
|
|
||||||
if [ -z "${MASON_TRAVIS_TOKEN}" ]; then
|
|
||||||
echo "MASON_TRAVIS_TOKEN is not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
config=$(ruby <<RUBY
|
|
||||||
require 'yaml'
|
|
||||||
require 'json'
|
|
||||||
config = YAML.load_file("scripts/${MASON_NAME}/${MASON_VERSION}/.travis.yml")
|
|
||||||
config["env"] ||= {}
|
|
||||||
config["env"]["global"] ||= []
|
|
||||||
config["env"]["global"] << {"secure" => "VI6PAoen/TwUM2ynPt8890HKq6zc/e/jTZwYX1D9/BdzkOrTcztxZxO9hP5lsnYeqcNeLXgHpO4LVxm95gjodLLkSXUNW6JndRaiCVHS7dwkN+Oe9XWJajw5z1fRJjnCxhgICfHK/J3H+klKtvOJb2OMDc6W7UAoH/OWGDbBJ5w="}
|
|
||||||
config["env"]["global"] << {"secure" => "BVefSxpbYyQbruXm61pDwnawEN0KdvM865muccfEshAM9pPxd24NoB7JYeUdkktgWnO3QCmy3RTw0ck7DbjHTt0HT6AqXcNFYjCxbLWM+jmQDnDv8bxWas/2XU8jP+vK+OUDsYE5IL7ZevBYPY1dUWv6fOQt7NPKnhoar9KsDoQ="}
|
|
||||||
config["env"]["global"] << "MASON_NAME=${MASON_NAME}" << "MASON_VERSION=${MASON_VERSION}"
|
|
||||||
puts JSON.pretty_generate(config)
|
|
||||||
RUBY
|
|
||||||
)
|
|
||||||
|
|
||||||
body="{
|
|
||||||
\"request\": {
|
|
||||||
\"message\": \"Building ${MASON_NAME} ${MASON_VERSION}\",
|
|
||||||
\"branch\": \"$(git rev-parse --abbrev-ref HEAD)\",
|
|
||||||
\"config\": ${config}
|
|
||||||
}
|
|
||||||
}"
|
|
||||||
|
|
||||||
curl -s -X POST https://api.travis-ci.org/repo/mapbox%2Fmason/requests \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-H "Accept: application/json" \
|
|
||||||
-H "Travis-API-Version: 3" \
|
|
||||||
-H "Authorization: token ${MASON_TRAVIS_TOKEN}" \
|
|
||||||
-d "$body"
|
|
||||||
|
|
||||||
echo "Now go to https://travis-ci.org/mapbox/mason/builds to view build status"
|
|
||||||
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
export MASON_DIR
|
|
||||||
bash "${MASON_DIR}/scripts/${MASON_NAME}/${MASON_VERSION}/script.sh" "${MASON_COMMAND}" "$@"
|
|
730
third_party/mason/mason.sh
vendored
730
third_party/mason/mason.sh
vendored
@ -1,730 +0,0 @@
|
|||||||
set -e
|
|
||||||
set -o pipefail
|
|
||||||
# set -x
|
|
||||||
|
|
||||||
export MASON_ROOT=${MASON_ROOT:-`pwd`/mason_packages}
|
|
||||||
MASON_BUCKET=${MASON_BUCKET:-mason-binaries}
|
|
||||||
MASON_IGNORE_OSX_SDK=${MASON_IGNORE_OSX_SDK:-false}
|
|
||||||
|
|
||||||
MASON_UNAME=`uname -s`
|
|
||||||
if [ ${MASON_UNAME} = 'Darwin' ]; then
|
|
||||||
MASON_PLATFORM=${MASON_PLATFORM:-osx}
|
|
||||||
MASON_XCODE_ROOT=`"xcode-select" -p`
|
|
||||||
elif [ ${MASON_UNAME} = 'Linux' ]; then
|
|
||||||
MASON_PLATFORM=${MASON_PLATFORM:-linux}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# In non-interactive environments like Travis CI, we can't use -s because it'll fill up the log
|
|
||||||
# way too fast
|
|
||||||
case $- in
|
|
||||||
*i*) MASON_CURL_ARGS= ;; # interactive
|
|
||||||
*) MASON_CURL_ARGS=-s ;; # non-interative
|
|
||||||
esac
|
|
||||||
|
|
||||||
case ${MASON_UNAME} in
|
|
||||||
'Darwin') MASON_CONCURRENCY=`sysctl -n hw.ncpu` ;;
|
|
||||||
'Linux') MASON_CONCURRENCY=$(lscpu -p | egrep -v '^#' | wc -l) ;;
|
|
||||||
*) MASON_CONCURRENCY=1 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
||||||
function mason_step { >&2 echo -e "\033[1m\033[36m* $1\033[0m"; }
|
|
||||||
function mason_substep { >&2 echo -e "\033[1m\033[36m* $1\033[0m"; }
|
|
||||||
function mason_success { >&2 echo -e "\033[1m\033[32m* $1\033[0m"; }
|
|
||||||
function mason_error { >&2 echo -e "\033[1m\033[31m$1\033[0m"; }
|
|
||||||
|
|
||||||
|
|
||||||
case ${MASON_ROOT} in
|
|
||||||
*\ * ) mason_error "Directory '${MASON_ROOT} contains spaces."; exit ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
export MASON_HOST_ARG="--host=x86_64-apple-darwin"
|
|
||||||
export MASON_PLATFORM_VERSION=`uname -m`
|
|
||||||
|
|
||||||
if [[ ${MASON_IGNORE_OSX_SDK} == false ]]; then
|
|
||||||
MASON_SDK_VERSION=`xcrun --sdk macosx --show-sdk-version`
|
|
||||||
MASON_SDK_ROOT=${MASON_XCODE_ROOT}/Platforms/MacOSX.platform/Developer
|
|
||||||
MASON_SDK_PATH="${MASON_SDK_ROOT}/SDKs/MacOSX${MASON_SDK_VERSION}.sdk"
|
|
||||||
|
|
||||||
if [[ ${MASON_SYSTEM_PACKAGE} && ${MASON_SDK_VERSION%%.*} -ge 10 && ${MASON_SDK_VERSION##*.} -ge 11 ]]; then
|
|
||||||
export MASON_DYNLIB_SUFFIX="tbd"
|
|
||||||
else
|
|
||||||
export MASON_DYNLIB_SUFFIX="dylib"
|
|
||||||
fi
|
|
||||||
|
|
||||||
MIN_SDK_VERSION_FLAG="-mmacosx-version-min=10.8"
|
|
||||||
SYSROOT_FLAGS="-isysroot ${MASON_SDK_PATH} -arch x86_64 ${MIN_SDK_VERSION_FLAG}"
|
|
||||||
export CFLAGS="${SYSROOT_FLAGS}"
|
|
||||||
export CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden -stdlib=libc++ -std=c++11"
|
|
||||||
# NOTE: OSX needs '-stdlib=libc++ -std=c++11' in both CXXFLAGS and LDFLAGS
|
|
||||||
# to correctly target c++11 for build systems that don't know about it yet (like libgeos 3.4.2)
|
|
||||||
# But because LDFLAGS is also for C libs we can only put these flags into LDFLAGS per package
|
|
||||||
export LDFLAGS="-Wl,-search_paths_first ${SYSROOT_FLAGS}"
|
|
||||||
export CXX="/usr/bin/clang++"
|
|
||||||
export CC="/usr/bin/clang"
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif [ ${MASON_PLATFORM} = 'ios' ]; then
|
|
||||||
export MASON_HOST_ARG="--host=arm-apple-darwin"
|
|
||||||
export MASON_PLATFORM_VERSION="8.0" # Deployment target version
|
|
||||||
|
|
||||||
MASON_SDK_VERSION=`xcrun --sdk iphoneos --show-sdk-version`
|
|
||||||
MASON_SDK_ROOT=${MASON_XCODE_ROOT}/Platforms/iPhoneOS.platform/Developer
|
|
||||||
MASON_SDK_PATH="${MASON_SDK_ROOT}/SDKs/iPhoneOS${MASON_SDK_VERSION}.sdk"
|
|
||||||
|
|
||||||
MIN_SDK_VERSION_FLAG="-miphoneos-version-min=${MASON_PLATFORM_VERSION}"
|
|
||||||
export MASON_IOS_CFLAGS="${MIN_SDK_VERSION_FLAG} -isysroot ${MASON_SDK_PATH}"
|
|
||||||
if [[ ${MASON_SDK_VERSION%%.*} -ge 9 ]]; then
|
|
||||||
export MASON_IOS_CFLAGS="${MASON_IOS_CFLAGS} -fembed-bitcode"
|
|
||||||
export MASON_DYNLIB_SUFFIX="tbd"
|
|
||||||
else
|
|
||||||
export MASON_DYNLIB_SUFFIX="dylib"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ `xcrun --sdk iphonesimulator --show-sdk-version` != ${MASON_SDK_VERSION} ]; then
|
|
||||||
mason_error "iPhone Simulator SDK version doesn't match iPhone SDK version"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
MASON_SDK_ROOT=${MASON_XCODE_ROOT}/Platforms/iPhoneSimulator.platform/Developer
|
|
||||||
MASON_SDK_PATH="${MASON_SDK_ROOT}/SDKs/iPhoneSimulator${MASON_SDK_VERSION}.sdk"
|
|
||||||
export MASON_ISIM_CFLAGS="${MIN_SDK_VERSION_FLAG} -isysroot ${MASON_SDK_PATH}"
|
|
||||||
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
|
|
||||||
export MASON_DYNLIB_SUFFIX="so"
|
|
||||||
|
|
||||||
# Assume current system is the target platform
|
|
||||||
if [ -z ${MASON_PLATFORM_VERSION} ] ; then
|
|
||||||
export MASON_PLATFORM_VERSION=`uname -m`
|
|
||||||
fi
|
|
||||||
|
|
||||||
export CFLAGS="-fPIC"
|
|
||||||
export CXXFLAGS="${CFLAGS} -std=c++11"
|
|
||||||
|
|
||||||
if [ `uname -m` != ${MASON_PLATFORM_VERSION} ] ; then
|
|
||||||
# Install the cross compiler
|
|
||||||
MASON_XC_PACKAGE_NAME=gcc
|
|
||||||
MASON_XC_PACKAGE_VERSION=${MASON_XC_GCC_VERSION:-5.3.0}-${MASON_PLATFORM_VERSION}
|
|
||||||
MASON_XC_PACKAGE=${MASON_XC_PACKAGE_NAME}-${MASON_XC_PACKAGE_VERSION}
|
|
||||||
MASON_XC_ROOT=$(MASON_PLATFORM= MASON_PLATFORM_VERSION= ${MASON_DIR}/mason prefix ${MASON_XC_PACKAGE_NAME} ${MASON_XC_PACKAGE_VERSION})
|
|
||||||
if [[ ! ${MASON_XC_ROOT} =~ ".build" ]] && [ ! -d ${MASON_XC_ROOT} ] ; then
|
|
||||||
MASON_PLATFORM= MASON_PLATFORM_VERSION= ${MASON_DIR}/mason install ${MASON_XC_PACKAGE_NAME} ${MASON_XC_PACKAGE_VERSION}
|
|
||||||
MASON_XC_ROOT=$(MASON_PLATFORM= MASON_PLATFORM_VERSION= ${MASON_DIR}/mason prefix ${MASON_XC_PACKAGE_NAME} ${MASON_XC_PACKAGE_VERSION})
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Load toolchain specific variables
|
|
||||||
if [[ ! ${MASON_XC_ROOT} =~ ".build" ]] && [ -f ${MASON_XC_ROOT}/toolchain.sh ] ; then
|
|
||||||
source ${MASON_XC_ROOT}/toolchain.sh
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif [ ${MASON_PLATFORM} = 'android' ]; then
|
|
||||||
case "${MASON_PLATFORM_VERSION}" in
|
|
||||||
arm-v5-9) export MASON_ANDROID_ABI=arm-v5 ;;
|
|
||||||
arm-v7-9) export MASON_ANDROID_ABI=arm-v7 ;;
|
|
||||||
arm-v8-21) export MASON_ANDROID_ABI=arm-v8 ;;
|
|
||||||
x86-9) export MASON_ANDROID_ABI=x86 ;;
|
|
||||||
x86-64-21) export MASON_ANDROID_ABI=x86-64 ;;
|
|
||||||
mips-9) export MASON_ANDROID_ABI=mips ;;
|
|
||||||
mips64-21) export MASON_ANDROID_ABI=mips64 ;;
|
|
||||||
*) export MASON_ANDROID_ABI=${MASON_ANDROID_ABI:-arm-v7}
|
|
||||||
esac
|
|
||||||
|
|
||||||
CFLAGS="-g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security"
|
|
||||||
LDFLAGS="-Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now"
|
|
||||||
export CPPFLAGS="-D__ANDROID__"
|
|
||||||
|
|
||||||
if [ ${MASON_ANDROID_ABI} = 'arm-v8' ]; then
|
|
||||||
MASON_ANDROID_TOOLCHAIN="aarch64-linux-android"
|
|
||||||
export MASON_HOST_ARG="--host=${MASON_ANDROID_TOOLCHAIN}"
|
|
||||||
|
|
||||||
CFLAGS="-target aarch64-none-linux-android ${CFLAGS}"
|
|
||||||
|
|
||||||
export JNIDIR="arm64-v8a"
|
|
||||||
MASON_ANDROID_ARCH="arm64"
|
|
||||||
MASON_ANDROID_PLATFORM="21"
|
|
||||||
|
|
||||||
elif [ ${MASON_ANDROID_ABI} = 'arm-v7' ]; then
|
|
||||||
MASON_ANDROID_TOOLCHAIN="arm-linux-androideabi"
|
|
||||||
export MASON_HOST_ARG="--host=${MASON_ANDROID_TOOLCHAIN}"
|
|
||||||
|
|
||||||
CFLAGS="-target armv7-none-linux-androideabi ${CFLAGS} -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -mthumb"
|
|
||||||
LDFLAGS="${LDFLAGS} -Wl,--fix-cortex-a8 -Wl,--exclude-libs,libunwind.a"
|
|
||||||
|
|
||||||
export JNIDIR="armeabi-v7a"
|
|
||||||
MASON_ANDROID_ARCH="arm"
|
|
||||||
MASON_ANDROID_PLATFORM="9"
|
|
||||||
|
|
||||||
elif [ ${MASON_ANDROID_ABI} = 'arm-v5' ]; then
|
|
||||||
MASON_ANDROID_TOOLCHAIN="arm-linux-androideabi"
|
|
||||||
export MASON_HOST_ARG="--host=${MASON_ANDROID_TOOLCHAIN}"
|
|
||||||
|
|
||||||
CFLAGS="-target armv5te-none-linux-androideabi ${CFLAGS} -march=armv5te -mtune=xscale -msoft-float -fno-integrated-as -mthumb"
|
|
||||||
LDFLAGS="${LDFLAGS} -Wl,--exclude-libs,libunwind.a"
|
|
||||||
|
|
||||||
export JNIDIR="armeabi"
|
|
||||||
MASON_ANDROID_ARCH="arm"
|
|
||||||
MASON_ANDROID_PLATFORM="9"
|
|
||||||
|
|
||||||
elif [ ${MASON_ANDROID_ABI} = 'x86' ]; then
|
|
||||||
MASON_ANDROID_TOOLCHAIN="i686-linux-android"
|
|
||||||
export MASON_HOST_ARG="--host=${MASON_ANDROID_TOOLCHAIN}"
|
|
||||||
|
|
||||||
CFLAGS="-target i686-none-linux-android ${CFLAGS}"
|
|
||||||
|
|
||||||
export JNIDIR="x86"
|
|
||||||
MASON_ANDROID_ARCH="x86"
|
|
||||||
MASON_ANDROID_PLATFORM="9"
|
|
||||||
|
|
||||||
elif [ ${MASON_ANDROID_ABI} = 'x86-64' ]; then
|
|
||||||
MASON_ANDROID_TOOLCHAIN="x86_64-linux-android"
|
|
||||||
export MASON_HOST_ARG="--host=${MASON_ANDROID_TOOLCHAIN}"
|
|
||||||
|
|
||||||
export JNIDIR="x86_64"
|
|
||||||
CFLAGS="-target x86_64-none-linux-android ${CFLAGS}"
|
|
||||||
|
|
||||||
MASON_ANDROID_ARCH="x86_64"
|
|
||||||
MASON_ANDROID_PLATFORM="21"
|
|
||||||
|
|
||||||
elif [ ${MASON_ANDROID_ABI} = 'mips' ]; then
|
|
||||||
MASON_ANDROID_TOOLCHAIN="mipsel-linux-android"
|
|
||||||
export MASON_HOST_ARG="--host=${MASON_ANDROID_TOOLCHAIN}"
|
|
||||||
|
|
||||||
CFLAGS="-target mipsel-none-linux-android ${CFLAGS} -mips32"
|
|
||||||
|
|
||||||
export JNIDIR="mips"
|
|
||||||
MASON_ANDROID_ARCH="mips"
|
|
||||||
MASON_ANDROID_PLATFORM="9"
|
|
||||||
|
|
||||||
elif [ ${MASON_ANDROID_ABI} = 'mips-64' ]; then
|
|
||||||
MASON_ANDROID_TOOLCHAIN="mips64el-linux-android"
|
|
||||||
export MASON_HOST_ARG="--host=${MASON_ANDROID_TOOLCHAIN}"
|
|
||||||
|
|
||||||
CFLAGS="-target mips64el-none-linux-android ${CFLAGS}"
|
|
||||||
|
|
||||||
export JNIDIR="mips64"
|
|
||||||
MASON_ANDROID_ARCH="mips64"
|
|
||||||
MASON_ANDROID_PLATFORM="21"
|
|
||||||
fi
|
|
||||||
|
|
||||||
export MASON_DYNLIB_SUFFIX="so"
|
|
||||||
export MASON_PLATFORM_VERSION="${MASON_ANDROID_ABI}-${MASON_ANDROID_PLATFORM}"
|
|
||||||
MASON_API_LEVEL=${MASON_API_LEVEL:-android-$MASON_ANDROID_PLATFORM}
|
|
||||||
|
|
||||||
# Installs the native SDK
|
|
||||||
export MASON_NDK_PACKAGE_VERSION=${MASON_ANDROID_ARCH}-${MASON_ANDROID_PLATFORM}-r13b
|
|
||||||
MASON_SDK_ROOT=$(MASON_PLATFORM= MASON_PLATFORM_VERSION= ${MASON_DIR}/mason prefix android-ndk ${MASON_NDK_PACKAGE_VERSION})
|
|
||||||
if [ ! -d ${MASON_SDK_ROOT} ] ; then
|
|
||||||
MASON_PLATFORM= MASON_PLATFORM_VERSION= ${MASON_DIR}/mason install android-ndk ${MASON_NDK_PACKAGE_VERSION}
|
|
||||||
fi
|
|
||||||
MASON_SDK_PATH="${MASON_SDK_ROOT}/sysroot"
|
|
||||||
export PATH=${MASON_SDK_ROOT}/bin:${PATH}
|
|
||||||
|
|
||||||
export CFLAGS="--sysroot=${MASON_SDK_PATH} ${CFLAGS}"
|
|
||||||
export CXXFLAGS="--sysroot=${MASON_SDK_PATH} ${CFLAGS}"
|
|
||||||
export LDFLAGS="--sysroot=${MASON_SDK_PATH} ${LDFLAGS}"
|
|
||||||
|
|
||||||
export CXX="${MASON_ANDROID_TOOLCHAIN}-clang++"
|
|
||||||
export CC="${MASON_ANDROID_TOOLCHAIN}-clang"
|
|
||||||
export LD="${MASON_ANDROID_TOOLCHAIN}-ld"
|
|
||||||
export AR="${MASON_ANDROID_TOOLCHAIN}-ar"
|
|
||||||
export RANLIB="${MASON_ANDROID_TOOLCHAIN}-ranlib"
|
|
||||||
export STRIP="${MASON_ANDROID_TOOLCHAIN}-strip"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Variable defaults
|
|
||||||
MASON_HOST_ARG=${MASON_HOST_ARG:-}
|
|
||||||
MASON_PLATFORM_VERSION=${MASON_PLATFORM_VERSION:-0}
|
|
||||||
MASON_NAME=${MASON_NAME:-nopackage}
|
|
||||||
MASON_VERSION=${MASON_VERSION:-noversion}
|
|
||||||
MASON_HEADER_ONLY=${MASON_HEADER_ONLY:-false}
|
|
||||||
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}
|
|
||||||
fi
|
|
||||||
MASON_PREFIX=${MASON_ROOT}/${MASON_PLATFORM_ID}/${MASON_NAME}/${MASON_VERSION}
|
|
||||||
MASON_BINARIES=${MASON_PLATFORM_ID}/${MASON_NAME}/${MASON_VERSION}.tar.gz
|
|
||||||
MASON_BINARIES_PATH=${MASON_ROOT}/.binaries/${MASON_BINARIES}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function mason_check_existing {
|
|
||||||
# skip installing if it already exists
|
|
||||||
if [ ${MASON_HEADER_ONLY:-false} = true ] ; then
|
|
||||||
if [ -d "${MASON_PREFIX}" ] ; then
|
|
||||||
mason_success "Already installed at ${MASON_PREFIX}"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
elif [ ${MASON_SYSTEM_PACKAGE:-false} = true ]; then
|
|
||||||
if [ -f "${MASON_PREFIX}/version" ] ; then
|
|
||||||
mason_success "Using system-provided ${MASON_NAME} $(set -e;mason_system_version)"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ -f "${MASON_PREFIX}/${MASON_LIB_FILE}" ] ; then
|
|
||||||
mason_success "Already installed at ${MASON_PREFIX}"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function mason_check_installed {
|
|
||||||
# skip installing if it already exists
|
|
||||||
if [ ${MASON_HEADER_ONLY:-false} = true ] ; then
|
|
||||||
if [ -d "${MASON_PREFIX}" ] ; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
elif [ ${MASON_SYSTEM_PACKAGE:-false} = true ]; then
|
|
||||||
if [ -f "${MASON_PREFIX}/version" ] ; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
elif [ -f "${MASON_PREFIX}/${MASON_LIB_FILE}" ] ; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
mason_error "Package ${MASON_NAME} ${MASON_VERSION} isn't installed"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function mason_clear_existing {
|
|
||||||
if [ -d "${MASON_PREFIX}" ]; then
|
|
||||||
mason_step "Removing existing package... ${MASON_PREFIX}"
|
|
||||||
rm -rf "${MASON_PREFIX}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function mason_download {
|
|
||||||
mkdir -p "${MASON_ROOT}/.cache"
|
|
||||||
cd "${MASON_ROOT}/.cache"
|
|
||||||
if [ ! -f ${MASON_SLUG} ] ; then
|
|
||||||
mason_step "Downloading $1..."
|
|
||||||
CURL_RESULT=0
|
|
||||||
curl --retry 3 ${MASON_CURL_ARGS} -f -S -L "$1" -o ${MASON_SLUG} || CURL_RESULT=$?
|
|
||||||
if [[ ${CURL_RESULT} != 0 ]]; then
|
|
||||||
mason_error "Failed to download ${1} (returncode: $CURL_RESULT)"
|
|
||||||
exit $RESULT
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
MASON_HASH=`git hash-object ${MASON_SLUG}`
|
|
||||||
if [ "$2" != "${MASON_HASH}" ] ; then
|
|
||||||
mason_error "Hash ${MASON_HASH} of file ${MASON_ROOT}/.cache/${MASON_SLUG} doesn't match $2"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_setup_build_dir {
|
|
||||||
rm -rf "${MASON_ROOT}/.build/${MASON_SLUG}"
|
|
||||||
mkdir -p "${MASON_ROOT}/.build/"
|
|
||||||
cd "${MASON_ROOT}/.build/"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_extract_tar_gz {
|
|
||||||
mason_setup_build_dir
|
|
||||||
tar xzf ../.cache/${MASON_SLUG} $@
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_extract_tar_bz2 {
|
|
||||||
mason_setup_build_dir
|
|
||||||
tar xjf ../.cache/${MASON_SLUG} $@
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_extract_tar_xz {
|
|
||||||
mason_setup_build_dir
|
|
||||||
tar xJf ../.cache/${MASON_SLUG} $@
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_prepare_compile {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
mason_error "COMPILE FUNCTION MISSING"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function bash_lndir() {
|
|
||||||
oldifs=$IFS
|
|
||||||
IFS='
|
|
||||||
'
|
|
||||||
src=$(cd "$1" ; pwd)
|
|
||||||
dst=$(cd "$2" ; pwd)
|
|
||||||
find "$src" -type d |
|
|
||||||
while read dir; do
|
|
||||||
mkdir -p "$dst${dir#$src}"
|
|
||||||
done
|
|
||||||
|
|
||||||
find "$src" -type f -o -type l |
|
|
||||||
while read src_f; do
|
|
||||||
dst_f="$dst${src_f#$src}"
|
|
||||||
if [[ ! -f $dst_f ]]; then
|
|
||||||
ln -s "$src_f" "$dst_f"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
IFS=$oldifs
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function run_lndir() {
|
|
||||||
# TODO: cp is fast, but inconsistent across osx
|
|
||||||
#/bin/cp -R -n ${MASON_PREFIX}/* ${TARGET_SUBDIR}
|
|
||||||
mason_step "Linking ${MASON_PREFIX}"
|
|
||||||
mason_step "Links will be inside ${TARGET_SUBDIR}"
|
|
||||||
if hash lndir 2>/dev/null; then
|
|
||||||
mason_substep "Using $(which lndir) for symlinking"
|
|
||||||
lndir -silent ${MASON_PREFIX}/ ${TARGET_SUBDIR} 2>/dev/null
|
|
||||||
else
|
|
||||||
mason_substep "Using bash fallback for symlinking (install lndir for faster symlinking)"
|
|
||||||
bash_lndir ${MASON_PREFIX}/ ${TARGET_SUBDIR}
|
|
||||||
fi
|
|
||||||
mason_step "Done linking ${MASON_PREFIX}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_link {
|
|
||||||
if [ ! -d "${MASON_PREFIX}" ] ; then
|
|
||||||
mason_error "${MASON_PREFIX} not found, please install first"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
TARGET_SUBDIR="${MASON_ROOT}/.link/"
|
|
||||||
mkdir -p ${TARGET_SUBDIR}
|
|
||||||
run_lndir
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function mason_build {
|
|
||||||
mason_load_source
|
|
||||||
|
|
||||||
mason_step "Building for Platform '${MASON_PLATFORM}/${MASON_PLATFORM_VERSION}'..."
|
|
||||||
cd "${MASON_BUILD_PATH}"
|
|
||||||
mason_prepare_compile
|
|
||||||
|
|
||||||
if [ ${MASON_PLATFORM} = 'ios' ]; then
|
|
||||||
|
|
||||||
SIMULATOR_TARGETS="i386 x86_64"
|
|
||||||
DEVICE_TARGETS="armv7 arm64"
|
|
||||||
LIB_FOLDERS=
|
|
||||||
|
|
||||||
for ARCH in ${SIMULATOR_TARGETS} ; do
|
|
||||||
mason_substep "Building for iOS Simulator ${ARCH}..."
|
|
||||||
export CFLAGS="${MASON_ISIM_CFLAGS} -arch ${ARCH}"
|
|
||||||
export CXXFLAGS="${MASON_ISIM_CFLAGS} -arch ${ARCH}"
|
|
||||||
cd "${MASON_BUILD_PATH}"
|
|
||||||
mason_compile
|
|
||||||
cd "${MASON_PREFIX}"
|
|
||||||
mv lib lib-isim-${ARCH}
|
|
||||||
for i in lib-isim-${ARCH}/*.a ; do lipo -info $i ; done
|
|
||||||
LIB_FOLDERS="${LIB_FOLDERS} lib-isim-${ARCH}"
|
|
||||||
done
|
|
||||||
|
|
||||||
for ARCH in ${DEVICE_TARGETS} ; do
|
|
||||||
mason_substep "Building for iOS ${ARCH}..."
|
|
||||||
export CFLAGS="${MASON_IOS_CFLAGS} -arch ${ARCH}"
|
|
||||||
export CXXFLAGS="${MASON_IOS_CFLAGS} -arch ${ARCH}"
|
|
||||||
cd "${MASON_BUILD_PATH}"
|
|
||||||
mason_compile
|
|
||||||
cd "${MASON_PREFIX}"
|
|
||||||
mv lib lib-ios-${ARCH}
|
|
||||||
for i in lib-ios-${ARCH}/*.a ; do lipo -info $i ; done
|
|
||||||
LIB_FOLDERS="${LIB_FOLDERS} lib-ios-${ARCH}"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Create universal binary
|
|
||||||
mason_substep "Creating Universal Binary..."
|
|
||||||
cd "${MASON_PREFIX}"
|
|
||||||
mkdir -p lib
|
|
||||||
for LIB in $(find ${LIB_FOLDERS} -name "*.a" | xargs basename | sort | uniq) ; do
|
|
||||||
lipo -create $(find ${LIB_FOLDERS} -name "${LIB}") -output lib/${LIB}
|
|
||||||
lipo -info lib/${LIB}
|
|
||||||
done
|
|
||||||
|
|
||||||
cd "${MASON_PREFIX}"
|
|
||||||
rm -rf ${LIB_FOLDERS}
|
|
||||||
elif [ ${MASON_PLATFORM} = 'android' ]; then
|
|
||||||
cd "${MASON_BUILD_PATH}"
|
|
||||||
mason_compile
|
|
||||||
else
|
|
||||||
cd "${MASON_BUILD_PATH}"
|
|
||||||
mason_compile
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_success "Installed at ${MASON_PREFIX}"
|
|
||||||
|
|
||||||
#rm -rf ${MASON_ROOT}/.build
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_config_custom {
|
|
||||||
# Override this function in your script to add more configuration variables
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_config {
|
|
||||||
local MASON_CONFIG_CFLAGS MASON_CONFIG_LDFLAGS MASON_CONFIG_STATIC_LIBS MASON_CONFIG_PREFIX LN
|
|
||||||
local MASON_CONFIG_INCLUDE_DIRS MASON_CONFIG_DEFINITIONS MASON_CONFIG_OPTIONS
|
|
||||||
|
|
||||||
MASON_CONFIG_CFLAGS=$(set -e;mason_cflags)
|
|
||||||
MASON_CONFIG_LDFLAGS=$(set -e;mason_ldflags)
|
|
||||||
MASON_CONFIG_STATIC_LIBS=$(set -e;mason_static_libs)
|
|
||||||
MASON_CONFIG_PREFIX="{prefix}"
|
|
||||||
|
|
||||||
# Split up the cflags into include dirs, definitions and options.
|
|
||||||
LN=$'\n'
|
|
||||||
MASON_CONFIG_CFLAGS="${MASON_CONFIG_CFLAGS// -/${LN}-}"
|
|
||||||
MASON_CONFIG_INCLUDE_DIRS=$(echo -n "${MASON_CONFIG_CFLAGS}" | sed -nE 's/^-(I|isystem) *([^ ]+)/\2/p' | uniq)
|
|
||||||
MASON_CONFIG_DEFINITIONS=$(echo -n "${MASON_CONFIG_CFLAGS}" | sed -nE 's/^-(D) *([^ ]+)/\2/p')
|
|
||||||
MASON_CONFIG_OPTIONS=$(echo -n "${MASON_CONFIG_CFLAGS}" | sed -nE '/^-(D|I|isystem) *([^ ]+)/!p')
|
|
||||||
|
|
||||||
echo "name=${MASON_NAME}"
|
|
||||||
echo "version=${MASON_VERSION}"
|
|
||||||
if ${MASON_HEADER_ONLY}; then
|
|
||||||
echo "header_only=${MASON_HEADER_ONLY}"
|
|
||||||
else
|
|
||||||
echo "platform=${MASON_PLATFORM}"
|
|
||||||
echo "platform_version=${MASON_PLATFORM_VERSION}"
|
|
||||||
fi
|
|
||||||
for name in include_dirs definitions options ldflags static_libs ; do
|
|
||||||
eval value=\$MASON_CONFIG_$(echo ${name} | tr '[:lower:]' '[:upper:]')
|
|
||||||
if [ ! -z "${value}" ]; then
|
|
||||||
echo ${name}=${value//${MASON_PREFIX}/${MASON_CONFIG_PREFIX}}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
mason_config_custom
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_write_config {
|
|
||||||
local INI_FILE
|
|
||||||
INI_FILE="${MASON_PREFIX}/mason.ini"
|
|
||||||
echo "`mason_config`" > "${INI_FILE}"
|
|
||||||
mason_substep "Wrote configuration file ${INI_FILE}:"
|
|
||||||
cat ${INI_FILE}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_try_binary {
|
|
||||||
MASON_BINARIES_DIR=`dirname "${MASON_BINARIES}"`
|
|
||||||
mkdir -p "${MASON_ROOT}/.binaries/${MASON_BINARIES_DIR}"
|
|
||||||
|
|
||||||
# try downloading from S3
|
|
||||||
if [ ! -f "${MASON_BINARIES_PATH}" ] ; then
|
|
||||||
mason_step "Downloading binary package ${MASON_BINARIES}..."
|
|
||||||
curl --retry 3 ${MASON_CURL_ARGS} -f -L \
|
|
||||||
https://${MASON_BUCKET}.s3.amazonaws.com/${MASON_BINARIES} \
|
|
||||||
-o "${MASON_BINARIES_PATH}.tmp" && \
|
|
||||||
mv "${MASON_BINARIES_PATH}.tmp" "${MASON_BINARIES_PATH}" || \
|
|
||||||
mason_step "Binary not available yet for https://${MASON_BUCKET}.s3.amazonaws.com/${MASON_BINARIES}"
|
|
||||||
else
|
|
||||||
mason_step "Updating binary package ${MASON_BINARIES}..."
|
|
||||||
curl --retry 3 ${MASON_CURL_ARGS} -f -L -z "${MASON_BINARIES_PATH}" \
|
|
||||||
https://${MASON_BUCKET}.s3.amazonaws.com/${MASON_BINARIES} \
|
|
||||||
-o "${MASON_BINARIES_PATH}.tmp"
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
if [ -f "${MASON_BINARIES_PATH}.tmp" ]; then
|
|
||||||
mv "${MASON_BINARIES_PATH}.tmp" "${MASON_BINARIES_PATH}"
|
|
||||||
else
|
|
||||||
mason_step "Binary package is still up to date"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
mason_step "Binary not available yet for ${MASON_BINARIES}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# unzip the file if it exists
|
|
||||||
if [ -f "${MASON_BINARIES_PATH}" ] ; then
|
|
||||||
mkdir -p "${MASON_PREFIX}"
|
|
||||||
cd "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# Try to force the ownership of the unpacked files
|
|
||||||
# to the current user using fakeroot if available
|
|
||||||
`which fakeroot` tar xzf "${MASON_BINARIES_PATH}"
|
|
||||||
|
|
||||||
if [ ! -z ${MASON_PKGCONFIG_FILE:-} ] ; then
|
|
||||||
if [ -f "${MASON_PREFIX}/${MASON_PKGCONFIG_FILE}" ] ; then
|
|
||||||
# Change the prefix
|
|
||||||
MASON_ESCAPED_PREFIX=$(echo "${MASON_PREFIX}" | sed -e 's/[\/&]/\\&/g')
|
|
||||||
sed -i.bak "s/prefix=.*/prefix=${MASON_ESCAPED_PREFIX}/" \
|
|
||||||
"${MASON_PREFIX}/${MASON_PKGCONFIG_FILE}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_success "Installed binary package at ${MASON_PREFIX}"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function mason_pkgconfig {
|
|
||||||
MASON_PKGCONFIG_FILES=""
|
|
||||||
for pkgconfig_file in ${MASON_PKGCONFIG_FILE}; do
|
|
||||||
MASON_PKGCONFIG_FILES="${MASON_PKGCONFIG_FILES} ${MASON_PREFIX}/${pkgconfig_file}"
|
|
||||||
done
|
|
||||||
echo pkg-config ${MASON_PKGCONFIG_FILES}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
local FLAGS
|
|
||||||
FLAGS=$(set -e;`mason_pkgconfig` --static --cflags)
|
|
||||||
# Replace double-prefix in case we use a sysroot.
|
|
||||||
echo ${FLAGS//${MASON_SYSROOT}${MASON_PREFIX}/${MASON_PREFIX}}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
local FLAGS
|
|
||||||
FLAGS=$(set -e;`mason_pkgconfig` --static --libs)
|
|
||||||
# Replace double-prefix in case we use a sysroot.
|
|
||||||
echo ${FLAGS//${MASON_SYSROOT}${MASON_PREFIX}/${MASON_PREFIX}}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_static_libs {
|
|
||||||
if [ -z "${MASON_LIB_FILE}" ]; then
|
|
||||||
mason_substep "Linking ${MASON_NAME} ${MASON_VERSION} dynamically"
|
|
||||||
elif [ -f "${MASON_PREFIX}/${MASON_LIB_FILE}" ]; then
|
|
||||||
echo "${MASON_PREFIX}/${MASON_LIB_FILE}"
|
|
||||||
else
|
|
||||||
mason_error "No static library file '${MASON_PREFIX}/${MASON_LIB_FILE}'"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_prefix {
|
|
||||||
echo ${MASON_PREFIX}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_version {
|
|
||||||
if [ ${MASON_SYSTEM_PACKAGE:-false} = true ]; then
|
|
||||||
mason_system_version
|
|
||||||
else
|
|
||||||
echo ${MASON_VERSION}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_list_existing_package {
|
|
||||||
local PREFIX RESULT
|
|
||||||
PREFIX=$1
|
|
||||||
RESULT=$(aws s3api head-object --bucket mason-binaries --key $PREFIX/$MASON_NAME/$MASON_VERSION.tar.gz 2>/dev/null)
|
|
||||||
if [ ! -z "${RESULT}" ]; then
|
|
||||||
printf "%-30s %6.1fM %s\n" \
|
|
||||||
"${PREFIX}" \
|
|
||||||
"$(bc -l <<< "$(echo ${RESULT} | jq -r .ContentLength) / 1000000")" \
|
|
||||||
"$(echo ${RESULT} | jq -r .LastModified)"
|
|
||||||
else
|
|
||||||
printf "%-30s %s\n" "${PREFIX}" "<missing>"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_list_existing {
|
|
||||||
if [ ${MASON_SYSTEM_PACKAGE:-false} = true ]; then
|
|
||||||
mason_error "System packages don't have published packages."
|
|
||||||
exit 1
|
|
||||||
elif [ ${MASON_HEADER_ONLY:-false} = true ]; then
|
|
||||||
mason_list_existing_package headers
|
|
||||||
else
|
|
||||||
for PREFIX in $(jq -r .CommonPrefixes[].Prefix[0:-1] <<< "$(aws s3api list-objects --bucket=mason-binaries --delimiter=/)") ; do
|
|
||||||
if [ ${PREFIX} != "headers" -a ${PREFIX} != "prebuilt" ] ; then
|
|
||||||
mason_list_existing_package ${PREFIX}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_publish {
|
|
||||||
local CONTENT_TYPE DATE MD5 SIGNATURE
|
|
||||||
if [ ! ${MASON_HEADER_ONLY:-false} = true ] && [ ! -z ${MASON_LIB_FILE:-} ] && [ ! -f "${MASON_PREFIX}/${MASON_LIB_FILE}" ]; then
|
|
||||||
mason_error "Required library file ${MASON_PREFIX}/${MASON_LIB_FILE} doesn't exist."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${AWS_ACCESS_KEY_ID}" ]; then
|
|
||||||
mason_error "AWS_ACCESS_KEY_ID is not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${AWS_SECRET_ACCESS_KEY}" ]; then
|
|
||||||
mason_error "AWS_SECRET_ACCESS_KEY is not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p `dirname ${MASON_BINARIES_PATH}`
|
|
||||||
cd "${MASON_PREFIX}"
|
|
||||||
rm -rf "${MASON_BINARIES_PATH}"
|
|
||||||
tar czf "${MASON_BINARIES_PATH}" .
|
|
||||||
(cd "${MASON_ROOT}/.binaries" && ls -lh "${MASON_BINARIES}")
|
|
||||||
mason_step "Uploading binary package..."
|
|
||||||
|
|
||||||
CONTENT_TYPE="application/octet-stream"
|
|
||||||
DATE="$(LC_ALL=C date -u +"%a, %d %b %Y %X %z")"
|
|
||||||
MD5="$(openssl md5 -binary < "${MASON_BINARIES_PATH}" | base64)"
|
|
||||||
SIGNATURE="$(printf "PUT\n$MD5\n$CONTENT_TYPE\n$DATE\nx-amz-acl:public-read\n/${MASON_BUCKET}/${MASON_BINARIES}" | openssl sha1 -binary -hmac "$AWS_SECRET_ACCESS_KEY" | base64)"
|
|
||||||
|
|
||||||
curl -S -T "${MASON_BINARIES_PATH}" https://${MASON_BUCKET}.s3.amazonaws.com/${MASON_BINARIES} \
|
|
||||||
-H "Date: $DATE" \
|
|
||||||
-H "Authorization: AWS $AWS_ACCESS_KEY_ID:$SIGNATURE" \
|
|
||||||
-H "Content-Type: $CONTENT_TYPE" \
|
|
||||||
-H "Content-MD5: $MD5" \
|
|
||||||
-H "x-amz-acl: public-read"
|
|
||||||
|
|
||||||
echo https://${MASON_BUCKET}.s3.amazonaws.com/${MASON_BINARIES}
|
|
||||||
curl -f -I https://${MASON_BUCKET}.s3.amazonaws.com/${MASON_BINARIES}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_run {
|
|
||||||
if [ "$1" == "install" ]; then
|
|
||||||
if [ ${MASON_SYSTEM_PACKAGE:-false} = true ]; then
|
|
||||||
mason_check_existing
|
|
||||||
mason_clear_existing
|
|
||||||
mason_build
|
|
||||||
mason_write_config
|
|
||||||
mason_success "Installed system-provided ${MASON_NAME} $(set -e;mason_system_version)"
|
|
||||||
else
|
|
||||||
mason_check_existing
|
|
||||||
mason_clear_existing
|
|
||||||
mason_try_binary
|
|
||||||
mason_build
|
|
||||||
mason_write_config
|
|
||||||
fi
|
|
||||||
elif [ "$1" == "link" ]; then
|
|
||||||
mason_link
|
|
||||||
elif [ "$1" == "remove" ]; then
|
|
||||||
mason_clear_existing
|
|
||||||
elif [ "$1" == "publish" ]; then
|
|
||||||
mason_publish
|
|
||||||
elif [ "$1" == "build" ]; then
|
|
||||||
mason_clear_existing
|
|
||||||
mason_build
|
|
||||||
mason_write_config
|
|
||||||
elif [ "$1" == "cflags" ]; then
|
|
||||||
mason_check_installed
|
|
||||||
mason_cflags
|
|
||||||
elif [ "$1" == "ldflags" ]; then
|
|
||||||
mason_check_installed
|
|
||||||
mason_ldflags
|
|
||||||
elif [ "$1" == "config" ]; then
|
|
||||||
mason_check_installed
|
|
||||||
mason_config
|
|
||||||
elif [ "$1" == "static_libs" ]; then
|
|
||||||
mason_check_installed
|
|
||||||
mason_static_libs
|
|
||||||
elif [ "$1" == "version" ]; then
|
|
||||||
mason_check_installed
|
|
||||||
mason_version
|
|
||||||
elif [ "$1" == "prefix" ]; then
|
|
||||||
mason_prefix
|
|
||||||
elif [ "$1" == "existing" ]; then
|
|
||||||
mason_list_existing
|
|
||||||
elif [ $1 ]; then
|
|
||||||
mason_error "Unknown command '$1'"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
mason_error "Usage: $0 <command> <lib> <version>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
16
third_party/mason/scripts/7z/9.20.1/.travis.yml
vendored
16
third_party/mason/scripts/7z/9.20.1/.travis.yml
vendored
@ -1,16 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: osx
|
|
||||||
compiler: clang
|
|
||||||
- os: linux
|
|
||||||
compiler: clang
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
45
third_party/mason/scripts/7z/9.20.1/script.sh
vendored
45
third_party/mason/scripts/7z/9.20.1/script.sh
vendored
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=7z
|
|
||||||
MASON_VERSION=9.20.1
|
|
||||||
MASON_LIB_FILE=bin/7z
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
https://downloads.sourceforge.net/project/p7zip/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2 \
|
|
||||||
30b1ff90105134947c67427bfc5c570857051f50
|
|
||||||
|
|
||||||
mason_extract_tar_bz2
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/p7zip_${MASON_VERSION}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_prepare_compile {
|
|
||||||
if [ $(uname -s) = 'Darwin' ]; then
|
|
||||||
cp makefile.macosx_64bits makefile.machine
|
|
||||||
elif [ $(uname -s) = 'Linux' ]; then
|
|
||||||
cp makefile.linux_clang_amd64 makefile.linux
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
make all3 -j${MASON_CONCURRENCY}
|
|
||||||
mkdir -p "${MASON_PREFIX}"
|
|
||||||
cp -rv bin "${MASON_PREFIX}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
61
third_party/mason/scripts/Qt/system/script.sh
vendored
61
third_party/mason/scripts/Qt/system/script.sh
vendored
@ -1,61 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=Qt
|
|
||||||
MASON_VERSION=system
|
|
||||||
MASON_SYSTEM_PACKAGE=true
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
QT_LIBS=(${2:-QtCore})
|
|
||||||
|
|
||||||
if hash qmake 2>/dev/null; then
|
|
||||||
QMAKE_CMD=qmake
|
|
||||||
#Some systems such as Fedora23 uses qmake-qt5
|
|
||||||
elif hash qmake-qt5 2>/dev/null; then
|
|
||||||
QMAKE_CMD=qmake-qt5
|
|
||||||
elif hash qmake-qt4 2>/dev/null; then
|
|
||||||
QMAKE_CMD=qmake-qt4
|
|
||||||
else
|
|
||||||
mason_error "Can't find qmake executable"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Qt5 libs are called Qt5*, so we have to use the correct name to pkg-config
|
|
||||||
QT_VERSION_MAJOR=$($QMAKE_CMD -query QT_VERSION | cut -d. -f1)
|
|
||||||
if [ ${QT_VERSION_MAJOR} -gt 4 ] ; then
|
|
||||||
QT_LIBS=(${QT_LIBS[@]/#Qt/Qt${QT_VERSION_MAJOR}})
|
|
||||||
fi
|
|
||||||
|
|
||||||
for LIB in ${QT_LIBS[@]} ; do
|
|
||||||
if ! `pkg-config ${LIB} --exists` ; then
|
|
||||||
mason_error "Can't find ${LIB}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
function mason_system_version {
|
|
||||||
if [ ${QT_VERSION_MAJOR} -gt 4 ] ; then
|
|
||||||
pkg-config Qt${QT_VERSION_MAJOR}Core --modversion
|
|
||||||
else
|
|
||||||
pkg-config QtCore --modversion
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_build {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
# pkg-config on OS X returns "-framework\ QtCore", which results in invalid arguments.
|
|
||||||
function cleanup_args {
|
|
||||||
python -c "import sys, re; print re.sub(r'(-framework)\\\\', r'\\1', ' '.join(sys.argv[1:]))" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
echo ${MASON_CFLAGS} $(cleanup_args `pkg-config ${QT_LIBS[@]} --cflags`)
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
echo ${MASON_LDFLAGS} $(cleanup_args `pkg-config ${QT_LIBS[@]} --libs`)
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,8 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
45
third_party/mason/scripts/afl/2.19b/script.sh
vendored
45
third_party/mason/scripts/afl/2.19b/script.sh
vendored
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=afl
|
|
||||||
MASON_VERSION=2.19b
|
|
||||||
MASON_LIB_FILE=bin/afl-fuzz
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
http://lcamtuf.coredump.cx/afl/releases/afl-2.19b.tgz \
|
|
||||||
6627c7b7c873e26fb7fbb6fd574c93676442d8b2
|
|
||||||
|
|
||||||
mason_extract_tar_gz
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-${MASON_VERSION}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_prepare_compile {
|
|
||||||
${MASON_DIR}/mason install clang 3.8.0
|
|
||||||
MASON_CLANG=$(${MASON_DIR}/mason prefix clang 3.8.0)
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
export PATH=${MASON_CLANG}/bin:$PATH CXX=clang++ CC=clang
|
|
||||||
make -j${MASON_CONCURRENCY}
|
|
||||||
cd llvm_mode
|
|
||||||
make -j${MASON_CONCURRENCY}
|
|
||||||
cd ..
|
|
||||||
PREFIX=${MASON_PREFIX} make install
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_static_libs {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,4 +0,0 @@
|
|||||||
- Versions are a concatenation of the architecture slug and the NDK release version
|
|
||||||
- Starting with r13, they are named "<mason platform version>-<api level>-<ndk version>"
|
|
||||||
- They contain a toolchain.sh + toolchain.cmake file
|
|
||||||
- Eventually we're going to remove Android-vars from mason.sh
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=arm-9-r10e
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-darwin-x86_64.bin \
|
|
||||||
dea2dd3939eea3289cab075804abb153014b78d3
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin \
|
|
||||||
285606ba6882d27d99ed469fc5533cc3c93967f5
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
chmod +x ../.cache/${MASON_SLUG}
|
|
||||||
../.cache/${MASON_SLUG} > /dev/null
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r10e
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="arm-linux-androideabi-4.9" \
|
|
||||||
--llvm-version="3.6" \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="arm" \
|
|
||||||
--platform="android-9"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=arm-9-r11c
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-darwin-x86_64.zip \
|
|
||||||
0c6fa2017dd5237f6270887c85feedc4aafb3aef
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip \
|
|
||||||
0c646e2fceb3ef853e1832f4aa3a0dc4c16d2229
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r11c
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r11c
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="arm-linux-androideabi-clang" \
|
|
||||||
--use-llvm \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="arm" \
|
|
||||||
--platform="android-9"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=arm-9-r12b
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64.zip \
|
|
||||||
1a3bbdde35a240086b022cdf13ddcf40c27caa6e
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip \
|
|
||||||
c6286e131c233c25537a306eae0a29d50b352b91
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r12b
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r12b
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch arm \
|
|
||||||
--api 9 \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=arm-9-r13b
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r13b-darwin-x86_64.zip \
|
|
||||||
b822dd239f63cd2e1e72c823c41bd732da2e5ad6
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip \
|
|
||||||
b95dd1fba5096ca3310a67e90b2a5a8aca3ddec7
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r13b
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r13b
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch arm \
|
|
||||||
--api 9 \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,7 +0,0 @@
|
|||||||
sudo: false
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=$(basename $(dirname "${BASH_SOURCE[0]}"))
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
export MASON_ANDROID_TOOLCHAIN="arm-linux-androideabi"
|
|
||||||
export MASON_CFLAGS="-target armv5te-none-linux-androideabi -march=armv5te -mtune=xscale -msoft-float -fno-integrated-as -mthumb"
|
|
||||||
export MASON_LDFLAGS="-Wl,--exclude-libs,libunwind.a"
|
|
||||||
export MASON_ANDROID_ABI="armeabi"
|
|
||||||
export MASON_ANDROID_NDK_ARCH="arm"
|
|
||||||
|
|
||||||
. ${MASON_DIR}/scripts/android-ndk/script-${MASON_VERSION##*-}.sh
|
|
@ -1,7 +0,0 @@
|
|||||||
sudo: false
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=$(basename $(dirname "${BASH_SOURCE[0]}"))
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
export MASON_ANDROID_TOOLCHAIN="arm-linux-androideabi"
|
|
||||||
export MASON_CFLAGS="-target armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -mthumb"
|
|
||||||
export MASON_LDFLAGS="-Wl,--fix-cortex-a8 -Wl,--exclude-libs,libunwind.a"
|
|
||||||
export MASON_ANDROID_ABI="armeabi-v7a"
|
|
||||||
export MASON_ANDROID_NDK_ARCH="arm"
|
|
||||||
|
|
||||||
. ${MASON_DIR}/scripts/android-ndk/script-${MASON_VERSION##*-}.sh
|
|
@ -1,7 +0,0 @@
|
|||||||
sudo: false
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=$(basename $(dirname "${BASH_SOURCE[0]}"))
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
export MASON_ANDROID_TOOLCHAIN="aarch64-linux-android"
|
|
||||||
export MASON_CFLAGS="-target aarch64-none-linux-android"
|
|
||||||
export MASON_LDFLAGS=""
|
|
||||||
export MASON_ANDROID_ABI="arm64-v8a"
|
|
||||||
export MASON_ANDROID_NDK_ARCH="arm64"
|
|
||||||
|
|
||||||
. ${MASON_DIR}/scripts/android-ndk/script-${MASON_VERSION##*-}.sh
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,43 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=arm64-21-r10e-gcc
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-darwin-x86_64.bin \
|
|
||||||
dea2dd3939eea3289cab075804abb153014b78d3
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin \
|
|
||||||
285606ba6882d27d99ed469fc5533cc3c93967f5
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
chmod +x ../.cache/${MASON_SLUG}
|
|
||||||
../.cache/${MASON_SLUG} > /dev/null
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r10e
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="aarch64-linux-android-4.9" \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--arch="arm64" \
|
|
||||||
--platform="android-21"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=arm64-21-r10e
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-darwin-x86_64.bin \
|
|
||||||
dea2dd3939eea3289cab075804abb153014b78d3
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin \
|
|
||||||
285606ba6882d27d99ed469fc5533cc3c93967f5
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
chmod +x ../.cache/${MASON_SLUG}
|
|
||||||
../.cache/${MASON_SLUG} > /dev/null
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r10e
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="aarch64-linux-android-4.9" \
|
|
||||||
--llvm-version="3.6" \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="arm64" \
|
|
||||||
--platform="android-21"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=arm64-21-r11c
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-darwin-x86_64.zip \
|
|
||||||
0c6fa2017dd5237f6270887c85feedc4aafb3aef
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip \
|
|
||||||
0c646e2fceb3ef853e1832f4aa3a0dc4c16d2229
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r11c
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r11c
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="aarch64-linux-android-clang" \
|
|
||||||
--use-llvm \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="arm64" \
|
|
||||||
--platform="android-21"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=arm64-21-r12b
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64.zip \
|
|
||||||
1a3bbdde35a240086b022cdf13ddcf40c27caa6e
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip \
|
|
||||||
c6286e131c233c25537a306eae0a29d50b352b91
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r12b
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r12b
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch arm64 \
|
|
||||||
--api 21 \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=arm64-21-r13b
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r13b-darwin-x86_64.zip \
|
|
||||||
b822dd239f63cd2e1e72c823c41bd732da2e5ad6
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip \
|
|
||||||
b95dd1fba5096ca3310a67e90b2a5a8aca3ddec7
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r13b
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r13b
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch arm64 \
|
|
||||||
--api 21 \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,7 +0,0 @@
|
|||||||
sudo: false
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,14 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=$(basename $(dirname "${BASH_SOURCE[0]}"))
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
export MASON_ANDROID_TOOLCHAIN="mips64el-linux-android"
|
|
||||||
export MASON_CFLAGS="-target mips64el-none-linux-android"
|
|
||||||
export MASON_LDFLAGS=""
|
|
||||||
export MASON_ANDROID_ABI="mips64"
|
|
||||||
export MASON_ANDROID_NDK_ARCH="mips64"
|
|
||||||
|
|
||||||
. ${MASON_DIR}/scripts/android-ndk/script-${MASON_VERSION##*-}.sh
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=mips-9-r10e
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-darwin-x86_64.bin \
|
|
||||||
dea2dd3939eea3289cab075804abb153014b78d3
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin \
|
|
||||||
285606ba6882d27d99ed469fc5533cc3c93967f5
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
chmod +x ../.cache/${MASON_SLUG}
|
|
||||||
../.cache/${MASON_SLUG} > /dev/null
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r10e
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="mipsel-linux-android-4.9" \
|
|
||||||
--llvm-version="3.6" \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="mips" \
|
|
||||||
--platform="android-9"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=mips-9-r11c
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-darwin-x86_64.zip \
|
|
||||||
0c6fa2017dd5237f6270887c85feedc4aafb3aef
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip \
|
|
||||||
0c646e2fceb3ef853e1832f4aa3a0dc4c16d2229
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r11c
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r11c
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="mipsel-linux-android-clang" \
|
|
||||||
--use-llvm \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="mips" \
|
|
||||||
--platform="android-9"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=mips-9-r12b
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64.zip \
|
|
||||||
1a3bbdde35a240086b022cdf13ddcf40c27caa6e
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip \
|
|
||||||
c6286e131c233c25537a306eae0a29d50b352b91
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r12b
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r12b
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch mips \
|
|
||||||
--api 9 \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,7 +0,0 @@
|
|||||||
sudo: false
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=$(basename $(dirname "${BASH_SOURCE[0]}"))
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
export MASON_ANDROID_TOOLCHAIN="mipsel-linux-android"
|
|
||||||
export MASON_CFLAGS="-target mipsel-none-linux-android -mips32"
|
|
||||||
export MASON_LDFLAGS=""
|
|
||||||
export MASON_ANDROID_ABI="mips"
|
|
||||||
export MASON_ANDROID_NDK_ARCH="mips"
|
|
||||||
|
|
||||||
. ${MASON_DIR}/scripts/android-ndk/script-${MASON_VERSION##*-}.sh
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=mips64-21-r10e
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-darwin-x86_64.bin \
|
|
||||||
dea2dd3939eea3289cab075804abb153014b78d3
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin \
|
|
||||||
285606ba6882d27d99ed469fc5533cc3c93967f5
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
chmod +x ../.cache/${MASON_SLUG}
|
|
||||||
../.cache/${MASON_SLUG} > /dev/null
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r10e
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="mips64el-linux-android-4.9" \
|
|
||||||
--llvm-version="3.6" \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="mips64" \
|
|
||||||
--platform="android-21"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=mips64-21-r11c
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-darwin-x86_64.zip \
|
|
||||||
0c6fa2017dd5237f6270887c85feedc4aafb3aef
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip \
|
|
||||||
0c646e2fceb3ef853e1832f4aa3a0dc4c16d2229
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r11c
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r11c
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="mips64el-linux-android-clang" \
|
|
||||||
--use-llvm \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="mips64" \
|
|
||||||
--platform="android-21"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=mips64-21-r12b
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64.zip \
|
|
||||||
1a3bbdde35a240086b022cdf13ddcf40c27caa6e
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip \
|
|
||||||
c6286e131c233c25537a306eae0a29d50b352b91
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r12b
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r12b
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch mips64 \
|
|
||||||
--api 21 \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=mips64-21-r13b
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r13b-darwin-x86_64.zip \
|
|
||||||
b822dd239f63cd2e1e72c823c41bd732da2e5ad6
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip \
|
|
||||||
b95dd1fba5096ca3310a67e90b2a5a8aca3ddec7
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r13b
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r13b
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch mips64 \
|
|
||||||
--api 21 \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,52 +0,0 @@
|
|||||||
export MASON_ANDROID_PLATFORM_VERSION=${MASON_VERSION%-*}
|
|
||||||
export MASON_ANDROID_NDK_VERSION=${MASON_VERSION##*-}
|
|
||||||
export MASON_ANDROID_NDK_API_LEVEL=${MASON_ANDROID_PLATFORM_VERSION##*-}
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-${MASON_ANDROID_NDK_VERSION}-darwin-x86_64.zip \
|
|
||||||
b822dd239f63cd2e1e72c823c41bd732da2e5ad6
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-${MASON_ANDROID_NDK_VERSION}-linux-x86_64.zip \
|
|
||||||
b95dd1fba5096ca3310a67e90b2a5a8aca3ddec7
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-${MASON_ANDROID_NDK_VERSION}
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-${MASON_ANDROID_NDK_VERSION}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch ${MASON_ANDROID_NDK_ARCH} \
|
|
||||||
--api ${MASON_ANDROID_NDK_API_LEVEL} \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
|
|
||||||
# Add a toolchain.sh and toolchain.cmake file.
|
|
||||||
ROOT="${MASON_PREFIX}" ${MASON_DIR}/scripts/android-ndk/write_toolchain-${MASON_ANDROID_NDK_VERSION}.sh
|
|
||||||
|
|
||||||
# Copy the gdbserver
|
|
||||||
mkdir -p "${MASON_PREFIX}/prebuilt"
|
|
||||||
cp -rv "${MASON_BUILD_PATH}/prebuilt/android-${MASON_ANDROID_NDK_ARCH}/gdbserver" "${MASON_PREFIX}/prebuilt"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,39 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o pipefail
|
|
||||||
set -u
|
|
||||||
|
|
||||||
export CFLAGS="${MASON_CFLAGS} --sysroot=\${MASON_XC_ROOT}/sysroot -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security"
|
|
||||||
export LDFLAGS="${MASON_LDFLAGS} --sysroot=\${MASON_XC_ROOT}/sysroot -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now"
|
|
||||||
|
|
||||||
# Write CMake toolchain file
|
|
||||||
CMAKE_TOOLCHAIN="${ROOT}/toolchain.cmake"
|
|
||||||
echo "set(CMAKE_SYSTEM_NAME Android)" > "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(CMAKE_SYSTEM_VERSION 1)" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(CMAKE_C_COMPILER \"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-clang\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(CMAKE_CXX_COMPILER \"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-clang++\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(CMAKE_RANLIB \"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-ranlib\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(CMAKE_C_FLAGS \"${CFLAGS} \${CMAKE_C_FLAGS}\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(CMAKE_CXX_FLAGS \"${CFLAGS} \${CMAKE_CXX_FLAGS}\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(CMAKE_EXE_LINKER_FLAGS \"${LDFLAGS} \${CMAKE_EXE_LINKER_FLAGS}\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(CMAKE_SHARED_LINKER_FLAGS \"${LDFLAGS} \${CMAKE_SHARED_LINKER_FLAGS}\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(STRIP_COMMAND \"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-strip\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(ANDROID_TOOLCHAIN \"${MASON_ANDROID_TOOLCHAIN}\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(ANDROID_ABI \"${MASON_ANDROID_ABI}\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
echo "set(ANDROID_NATIVE_API_LEVEL \"${MASON_ANDROID_NDK_API_LEVEL}\")" >> "${CMAKE_TOOLCHAIN}"
|
|
||||||
|
|
||||||
# Write shell script toolchain file
|
|
||||||
SHELL_TOOLCHAIN="${ROOT}/toolchain.sh"
|
|
||||||
echo "export CC=\"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-clang\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export CXX=\"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-clang++\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export LD=\"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-ld\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export LINK=\"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-clang++\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export AR=\"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-ar\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export RANLIB=\"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-ranlib\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export STRIP=\"\${MASON_XC_ROOT}/bin/${MASON_ANDROID_TOOLCHAIN}-strip\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export CFLAGS=\"${CFLAGS} \${CFLAGS}\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export CXXFLAGS=\"${CFLAGS} \${CXXFLAGS}\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export ANDROID_TOOLCHAIN=\"${MASON_ANDROID_TOOLCHAIN}\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export ANDROID_ABI=\"${MASON_ANDROID_ABI}\"" >> "${SHELL_TOOLCHAIN}"
|
|
||||||
echo "export ANDROID_NATIVE_API_LEVEL=\"${MASON_ANDROID_NDK_API_LEVEL}\"" >> "${SHELL_TOOLCHAIN}"
|
|
@ -1,7 +0,0 @@
|
|||||||
sudo: false
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=$(basename $(dirname "${BASH_SOURCE[0]}"))
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
export MASON_ANDROID_TOOLCHAIN="x86_64-linux-android"
|
|
||||||
export MASON_CFLAGS="-target x86_64-none-linux-android"
|
|
||||||
export MASON_LDFLAGS=""
|
|
||||||
export MASON_ANDROID_ABI="x86_64"
|
|
||||||
export MASON_ANDROID_NDK_ARCH="x86_64"
|
|
||||||
|
|
||||||
. ${MASON_DIR}/scripts/android-ndk/script-${MASON_VERSION##*-}.sh
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,49 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=x86-9-r10e
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-darwin-x86_64.bin \
|
|
||||||
dea2dd3939eea3289cab075804abb153014b78d3
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin \
|
|
||||||
285606ba6882d27d99ed469fc5533cc3c93967f5
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
chmod +x ../.cache/${MASON_SLUG}
|
|
||||||
../.cache/${MASON_SLUG} > /dev/null
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r10e
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="x86-4.9" \
|
|
||||||
--llvm-version="3.6" \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="x86" \
|
|
||||||
--platform="android-9"
|
|
||||||
|
|
||||||
mkdir -p ${MASON_PREFIX}/prebuilt/android-x86/gdbserver
|
|
||||||
cp -Rv ${MASON_BUILD_PATH}/prebuilt/android-x86/gdbserver/* \
|
|
||||||
${MASON_PREFIX}/prebuilt/android-x86/gdbserver/
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=x86-9-r11c
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-darwin-x86_64.zip \
|
|
||||||
0c6fa2017dd5237f6270887c85feedc4aafb3aef
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip \
|
|
||||||
0c646e2fceb3ef853e1832f4aa3a0dc4c16d2229
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r11c
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r11c
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="x86-clang" \
|
|
||||||
--use-llvm \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="x86" \
|
|
||||||
--platform="android-9"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=x86-9-r12b
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64.zip \
|
|
||||||
1a3bbdde35a240086b022cdf13ddcf40c27caa6e
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip \
|
|
||||||
c6286e131c233c25537a306eae0a29d50b352b91
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r12b
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r12b
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch x86 \
|
|
||||||
--api 9 \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,7 +0,0 @@
|
|||||||
sudo: false
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=$(basename $(dirname "${BASH_SOURCE[0]}"))
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
export MASON_ANDROID_TOOLCHAIN="i686-linux-android"
|
|
||||||
export MASON_CFLAGS="-target i686-none-linux-android"
|
|
||||||
export MASON_LDFLAGS=""
|
|
||||||
export MASON_ANDROID_ABI="x86"
|
|
||||||
export MASON_ANDROID_NDK_ARCH="x86"
|
|
||||||
|
|
||||||
. ${MASON_DIR}/scripts/android-ndk/script-${MASON_VERSION##*-}.sh
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=x86_64-21-r10e
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-darwin-x86_64.bin \
|
|
||||||
dea2dd3939eea3289cab075804abb153014b78d3
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin \
|
|
||||||
285606ba6882d27d99ed469fc5533cc3c93967f5
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
chmod +x ../.cache/${MASON_SLUG}
|
|
||||||
../.cache/${MASON_SLUG} > /dev/null
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r10e
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="x86_64-4.9" \
|
|
||||||
--llvm-version="3.6" \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="x86_64" \
|
|
||||||
--platform="android-21"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=x86_64-21-r11c
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-darwin-x86_64.zip \
|
|
||||||
0c6fa2017dd5237f6270887c85feedc4aafb3aef
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip \
|
|
||||||
0c646e2fceb3ef853e1832f4aa3a0dc4c16d2229
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r11c
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r11c
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make-standalone-toolchain.sh \
|
|
||||||
--toolchain="x86_64-clang" \
|
|
||||||
--use-llvm \
|
|
||||||
--package-dir="${MASON_BUILD_PATH}/package-dir/" \
|
|
||||||
--install-dir="${MASON_PREFIX}" \
|
|
||||||
--stl="libcxx" \
|
|
||||||
--arch="x86_64" \
|
|
||||||
--platform="android-21"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=x86_64-21-r12b
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64.zip \
|
|
||||||
1a3bbdde35a240086b022cdf13ddcf40c27caa6e
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip \
|
|
||||||
c6286e131c233c25537a306eae0a29d50b352b91
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r12b
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r12b
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch x86_64 \
|
|
||||||
--api 21 \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=android-ndk
|
|
||||||
MASON_VERSION=x86_64-21-r13b
|
|
||||||
MASON_LIB_FILE=
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
if [ ${MASON_PLATFORM} = 'osx' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r13b-darwin-x86_64.zip \
|
|
||||||
b822dd239f63cd2e1e72c823c41bd732da2e5ad6
|
|
||||||
elif [ ${MASON_PLATFORM} = 'linux' ]; then
|
|
||||||
mason_download \
|
|
||||||
http://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip \
|
|
||||||
b95dd1fba5096ca3310a67e90b2a5a8aca3ddec7
|
|
||||||
fi
|
|
||||||
|
|
||||||
mason_setup_build_dir
|
|
||||||
rm -rf ./android-ndk-r13b
|
|
||||||
unzip -q ../.cache/${MASON_SLUG} $@
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/android-ndk-r13b
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf ${MASON_PREFIX}
|
|
||||||
mkdir -p ${MASON_PREFIX}
|
|
||||||
|
|
||||||
${MASON_BUILD_PATH}/build/tools/make_standalone_toolchain.py \
|
|
||||||
--force \
|
|
||||||
--arch x86_64 \
|
|
||||||
--api 21 \
|
|
||||||
--stl libc++ \
|
|
||||||
--install-dir "${MASON_PREFIX}"
|
|
||||||
|
|
||||||
# NDK r12 ships with .so files which are preferred when linking, but cause
|
|
||||||
# errors on devices when it's not present.
|
|
||||||
find "${MASON_PREFIX}" -name "libstdc++.so" -delete
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,18 +0,0 @@
|
|||||||
language: generic
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: linux
|
|
||||||
dist: trusty
|
|
||||||
sudo: false
|
|
||||||
env: CXX=g++-5 CC=gcc-5
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
- g++-5
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,37 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=apitrace
|
|
||||||
MASON_VERSION=6a30de1
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
https://github.com/apitrace/apitrace/archive/${MASON_VERSION}.tar.gz \
|
|
||||||
622308260cbbe770672ee0753f650aafa7e1a04e
|
|
||||||
|
|
||||||
mason_extract_tar_gz
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-6a30de197ad8221e6481510155025a9f93dfd5c3
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-DCMAKE_INSTALL_PREFIX="${MASON_PREFIX}"
|
|
||||||
make -C build
|
|
||||||
make -C build install
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,45 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
exclude:
|
|
||||||
- os: linux
|
|
||||||
include:
|
|
||||||
- os: osx
|
|
||||||
osx_image: xcode7
|
|
||||||
env: MASON_PLATFORM=ios
|
|
||||||
compiler: clang
|
|
||||||
- os: osx
|
|
||||||
osx_image: xcode7
|
|
||||||
env: MASON_PLATFORM=osx
|
|
||||||
compiler: clang
|
|
||||||
- os: linux
|
|
||||||
env: MASON_PLATFORM=linux
|
|
||||||
compiler: clang
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
- llvm-toolchain-precise-3.7
|
|
||||||
- george-edison55-precise-backports
|
|
||||||
packages:
|
|
||||||
- clang-3.7
|
|
||||||
- cmake
|
|
||||||
- cmake-data
|
|
||||||
|
|
||||||
cache: apt
|
|
||||||
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- if [[ ${MASON_PLATFORM} == "osx" || ${MASON_PLATFORM} == "ios" ]]; then brew install cmake ; fi
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- if [[ ${MASON_PLATFORM} == "linux" && ${CXX} == "clang++" ]]; then export CXX="clang++-3.7" CC="clang-3.7" ; fi
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,63 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=benchmark
|
|
||||||
MASON_VERSION=1.0.0-1
|
|
||||||
MASON_LIB_FILE=lib/libbenchmark.a
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
https://github.com/google/benchmark/archive/v1.0.0.tar.gz \
|
|
||||||
dcf87e5faead951fd1e9ab103cb36a7c8ebe4837
|
|
||||||
|
|
||||||
mason_extract_tar_gz
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/benchmark-1.0.0
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf build
|
|
||||||
mkdir -p build
|
|
||||||
cd build
|
|
||||||
if [ ${MASON_PLATFORM} == 'ios' ] ; then
|
|
||||||
# Make sure CMake thinks we're cross-compiling and manually set the exit codes
|
|
||||||
# because CMake can't run the test programs
|
|
||||||
echo "set (CMAKE_SYSTEM_NAME Darwin)" > toolchain.cmake
|
|
||||||
cmake \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=toolchain.cmake \
|
|
||||||
-DRUN_HAVE_STD_REGEX=1 \
|
|
||||||
-DRUN_HAVE_POSIX_REGEX=0 \
|
|
||||||
-DRUN_HAVE_STEADY_CLOCK=0 \
|
|
||||||
-DCMAKE_CXX_FLAGS="${CFLAGS:-}" \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_INSTALL_PREFIX="${MASON_PREFIX}" \
|
|
||||||
-DBENCHMARK_ENABLE_LTO=ON \
|
|
||||||
-DBENCHMARK_ENABLE_TESTING=OFF \
|
|
||||||
..
|
|
||||||
else
|
|
||||||
cmake \
|
|
||||||
${MASON_CMAKE_TOOLCHAIN} \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_INSTALL_PREFIX="${MASON_PREFIX}" \
|
|
||||||
-DBENCHMARK_ENABLE_LTO=ON \
|
|
||||||
-DBENCHMARK_ENABLE_TESTING=OFF \
|
|
||||||
..
|
|
||||||
fi
|
|
||||||
|
|
||||||
make install -j${MASON_CONCURRENCY}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
echo -isystem ${MASON_PREFIX}/include
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
echo -lpthread
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_static_libs {
|
|
||||||
echo ${MASON_PREFIX}/${MASON_LIB_FILE}
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,45 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
exclude:
|
|
||||||
- os: linux
|
|
||||||
include:
|
|
||||||
- os: osx
|
|
||||||
osx_image: xcode7
|
|
||||||
env: MASON_PLATFORM=ios
|
|
||||||
compiler: clang
|
|
||||||
- os: osx
|
|
||||||
osx_image: xcode7
|
|
||||||
env: MASON_PLATFORM=osx
|
|
||||||
compiler: clang
|
|
||||||
- os: linux
|
|
||||||
env: MASON_PLATFORM=linux
|
|
||||||
compiler: clang
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
- llvm-toolchain-precise-3.7
|
|
||||||
- george-edison55-precise-backports
|
|
||||||
packages:
|
|
||||||
- clang-3.7
|
|
||||||
- cmake
|
|
||||||
- cmake-data
|
|
||||||
|
|
||||||
cache: apt
|
|
||||||
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- if [[ ${MASON_PLATFORM} == "osx" || ${MASON_PLATFORM} == "ios" ]]; then brew install cmake ; fi
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- if [[ ${MASON_PLATFORM} == "linux" && ${CXX} == "clang++" ]]; then export CXX="clang++-3.7" CC="clang-3.7" ; fi
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,63 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=benchmark
|
|
||||||
MASON_VERSION=1.0.0
|
|
||||||
MASON_LIB_FILE=lib/libbenchmark.a
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
https://github.com/google/benchmark/archive/v1.0.0.tar.gz \
|
|
||||||
dcf87e5faead951fd1e9ab103cb36a7c8ebe4837
|
|
||||||
|
|
||||||
mason_extract_tar_gz
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/benchmark-${MASON_VERSION}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
rm -rf build
|
|
||||||
mkdir -p build
|
|
||||||
cd build
|
|
||||||
if [ ${MASON_PLATFORM} == 'ios' ] ; then
|
|
||||||
# Make sure CMake thinks we're cross-compiling and manually set the exit codes
|
|
||||||
# because CMake can't run the test programs
|
|
||||||
echo "set (CMAKE_SYSTEM_NAME Darwin)" > toolchain.cmake
|
|
||||||
cmake \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=toolchain.cmake \
|
|
||||||
-DRUN_HAVE_STD_REGEX=1 \
|
|
||||||
-DRUN_HAVE_POSIX_REGEX=0 \
|
|
||||||
-DRUN_HAVE_STEADY_CLOCK=0 \
|
|
||||||
-DCMAKE_CXX_FLAGS="${CFLAGS:-}" \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_INSTALL_PREFIX="${MASON_PREFIX}" \
|
|
||||||
-DBENCHMARK_ENABLE_LTO=ON \
|
|
||||||
-DBENCHMARK_ENABLE_TESTING=OFF \
|
|
||||||
..
|
|
||||||
else
|
|
||||||
cmake \
|
|
||||||
${MASON_CMAKE_TOOLCHAIN} \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_INSTALL_PREFIX="${MASON_PREFIX}" \
|
|
||||||
-DBENCHMARK_ENABLE_LTO=ON \
|
|
||||||
-DBENCHMARK_ENABLE_TESTING=OFF \
|
|
||||||
..
|
|
||||||
fi
|
|
||||||
|
|
||||||
make install -j${MASON_CONCURRENCY}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
echo -isystem ${MASON_PREFIX}/include
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
echo -lpthread
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_static_libs {
|
|
||||||
echo ${MASON_PREFIX}/${MASON_LIB_FILE}
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,23 +0,0 @@
|
|||||||
language: generic
|
|
||||||
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
- llvm-toolchain-precise-3.7
|
|
||||||
packages:
|
|
||||||
- clang-3.7
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: linux
|
|
||||||
compiler: clang
|
|
||||||
env: CXX=clang++-3.7 CC=clang-3.7
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=binutils
|
|
||||||
MASON_VERSION=2.26
|
|
||||||
MASON_LIB_FILE=bin/ld
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
http://ftp.gnu.org/gnu/binutils/${MASON_NAME}-${MASON_VERSION}.tar.bz2 \
|
|
||||||
05b22d6ef8003e76f7d05500363a3ee8cc66a7ae
|
|
||||||
|
|
||||||
mason_extract_tar_bz2
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
make -j${MASON_CONCURRENCY}
|
|
||||||
make install
|
|
||||||
}
|
|
||||||
|
|
||||||
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,20 +0,0 @@
|
|||||||
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
|
|
||||||
- bison
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,42 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=binutils
|
|
||||||
MASON_VERSION=2.27
|
|
||||||
MASON_LIB_FILE=bin/ld
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
http://ftp.gnu.org/gnu/binutils/${MASON_NAME}-${MASON_VERSION}.tar.bz2 \
|
|
||||||
7e62c56ea660080882af2c8644d566765a77a0b8
|
|
||||||
|
|
||||||
mason_extract_tar_bz2
|
|
||||||
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-${MASON_VERSION}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
# we unset CFLAGS otherwise they will clobber defaults inside binutils
|
|
||||||
unset CFLAGS
|
|
||||||
./configure \
|
|
||||||
--prefix=${MASON_PREFIX} \
|
|
||||||
--enable-gold \
|
|
||||||
--enable-plugins \
|
|
||||||
--enable-static \
|
|
||||||
--disable-shared \
|
|
||||||
--disable-dependency-tracking
|
|
||||||
|
|
||||||
make -j${MASON_CONCURRENCY}
|
|
||||||
make install
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,21 +0,0 @@
|
|||||||
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
|
|
||||||
- bison
|
|
||||||
- texinfo
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
@ -1,41 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=binutils
|
|
||||||
MASON_VERSION=f0e9390be
|
|
||||||
MASON_LIB_FILE=bin/ld
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
export MASON_BUILD_PATH=${MASON_ROOT}/.build/${MASON_NAME}-${MASON_VERSION}
|
|
||||||
git clone git://sourceware.org/git/binutils-gdb.git ${MASON_BUILD_PATH}
|
|
||||||
cd ${MASON_BUILD_PATH}
|
|
||||||
git checkout f0e9390be5bbfa3ee777d81dacfccd713ebddb68
|
|
||||||
cd ../
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
# we unset CFLAGS otherwise they will clobber defaults inside binutils
|
|
||||||
unset CFLAGS
|
|
||||||
./configure \
|
|
||||||
--prefix=${MASON_PREFIX} \
|
|
||||||
--enable-gold \
|
|
||||||
--enable-plugins \
|
|
||||||
--enable-static \
|
|
||||||
--disable-shared \
|
|
||||||
--disable-werror \
|
|
||||||
--disable-dependency-tracking
|
|
||||||
|
|
||||||
make -j${MASON_CONCURRENCY}
|
|
||||||
make install
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_clean {
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
49
third_party/mason/scripts/boost/1.57.0/script.sh
vendored
49
third_party/mason/scripts/boost/1.57.0/script.sh
vendored
@ -1,49 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=boost
|
|
||||||
MASON_VERSION=1.57.0
|
|
||||||
MASON_HEADER_ONLY=true
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
BOOST_ROOT=${MASON_PREFIX}
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
http://downloads.sourceforge.net/project/boost/boost/1.57.0/boost_1_57_0.tar.bz2 \
|
|
||||||
397306fa6d0858c4885fbba7d43a0164dcb7f53e
|
|
||||||
|
|
||||||
mason_extract_tar_bz2 boost_1_57_0/boost
|
|
||||||
|
|
||||||
MASON_BUILD_PATH=${MASON_ROOT}/.build/boost_1_57_0
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_prefix {
|
|
||||||
echo "${BOOST_ROOT}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
mkdir -p ${BOOST_ROOT}/include
|
|
||||||
mv ${MASON_ROOT}/.build/boost_1_57_0/boost ${BOOST_ROOT}/include
|
|
||||||
|
|
||||||
# work around NDK bug https://code.google.com/p/android/issues/detail?id=79483
|
|
||||||
|
|
||||||
patch ${BOOST_ROOT}/include/boost/core/demangle.hpp <<< "19a20,21
|
|
||||||
> #if !defined(__ANDROID__)
|
|
||||||
>
|
|
||||||
25a28,29
|
|
||||||
> #endif
|
|
||||||
>
|
|
||||||
"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
echo "-I${BOOST_ROOT}/include"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
49
third_party/mason/scripts/boost/1.58.0/script.sh
vendored
49
third_party/mason/scripts/boost/1.58.0/script.sh
vendored
@ -1,49 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=boost
|
|
||||||
MASON_VERSION=1.58.0
|
|
||||||
MASON_HEADER_ONLY=true
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
BOOST_ROOT=${MASON_PREFIX}
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
http://downloads.sourceforge.net/project/boost/boost/1.58.0/boost_1_58_0.tar.bz2 \
|
|
||||||
43e46651e762e4daf72a5d21dca86ae151e65378
|
|
||||||
|
|
||||||
mason_extract_tar_bz2 boost_1_58_0/boost
|
|
||||||
|
|
||||||
MASON_BUILD_PATH=${MASON_ROOT}/.build/boost_1_58_0
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_prefix {
|
|
||||||
echo "${BOOST_ROOT}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
mkdir -p ${BOOST_ROOT}/include
|
|
||||||
mv ${MASON_ROOT}/.build/boost_1_58_0/boost ${BOOST_ROOT}/include
|
|
||||||
|
|
||||||
# work around NDK bug https://code.google.com/p/android/issues/detail?id=79483
|
|
||||||
|
|
||||||
patch ${BOOST_ROOT}/include/boost/core/demangle.hpp <<< "19a20,21
|
|
||||||
> #if !defined(__ANDROID__)
|
|
||||||
>
|
|
||||||
25a28,29
|
|
||||||
> #endif
|
|
||||||
>
|
|
||||||
"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
echo "-I${BOOST_ROOT}/include"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,12 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
49
third_party/mason/scripts/boost/1.59.0/script.sh
vendored
49
third_party/mason/scripts/boost/1.59.0/script.sh
vendored
@ -1,49 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
MASON_NAME=boost
|
|
||||||
MASON_VERSION=1.59.0
|
|
||||||
MASON_HEADER_ONLY=true
|
|
||||||
|
|
||||||
. ${MASON_DIR}/mason.sh
|
|
||||||
|
|
||||||
BOOST_ROOT=${MASON_PREFIX}
|
|
||||||
|
|
||||||
function mason_load_source {
|
|
||||||
mason_download \
|
|
||||||
http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.bz2 \
|
|
||||||
ff2e48f4d7e3c4b393d41e07a2f5d923b990967d
|
|
||||||
|
|
||||||
mason_extract_tar_bz2 boost_1_59_0/boost
|
|
||||||
|
|
||||||
MASON_BUILD_PATH=${MASON_ROOT}/.build/boost_1_59_0
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_prefix {
|
|
||||||
echo "${BOOST_ROOT}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_compile {
|
|
||||||
mkdir -p ${BOOST_ROOT}/include
|
|
||||||
mv ${MASON_ROOT}/.build/boost_1_59_0/boost ${BOOST_ROOT}/include
|
|
||||||
|
|
||||||
# work around NDK bug https://code.google.com/p/android/issues/detail?id=79483
|
|
||||||
|
|
||||||
patch ${BOOST_ROOT}/include/boost/core/demangle.hpp <<< "19a20,21
|
|
||||||
> #if !defined(__ANDROID__)
|
|
||||||
>
|
|
||||||
25a28,29
|
|
||||||
> #endif
|
|
||||||
>
|
|
||||||
"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_cflags {
|
|
||||||
echo "-I${BOOST_ROOT}/include"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mason_ldflags {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
mason_run "$@"
|
|
@ -1,8 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./mason build ${MASON_NAME} ${MASON_VERSION}
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./mason publish ${MASON_NAME} ${MASON_VERSION}
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user