From b8898ef4108d8ba01d8462fcc05a0ef427d2fc20 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 8 Nov 2016 15:29:49 -0800 Subject: [PATCH 1/2] mason improvements --- CMakeLists.txt | 23 +++++++++++++++++------ scripts/update_dependencies.sh | 2 +- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0827bbc8c..4ec7259c1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,7 @@ if(ENABLE_MASON) set(MASON_CLANG_VERSION "3.8.1") set(MASON_BOOST_VERSION "1.61.0") set(MASON_STXXL_VERSION "1.4.1") - set(MASON_EXPAT_VERSION "2.1.1") + set(MASON_EXPAT_VERSION "2.2.0") set(MASON_LUA_VERSION "5.2.4") set(MASON_LUABIND_VERSION "e414c57bcb687bb3091b7c55bbff6947f052e46b") set(MASON_BZIP2_VERSION "1.0.6") @@ -32,6 +32,12 @@ if(ENABLE_MASON) set(MASON_CCACHE_VERSION "3.3.1") message(STATUS "Enabling mason") + + find_program(CURL_FOUND curl) + if(NOT CURL_FOUND) + message(FATAL_ERROR "curl command required with -DENABLE_MASON") + endif() + set(MASON_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/third_party/mason/mason) include(${CMAKE_CURRENT_SOURCE_DIR}/third_party/mason/mason.cmake) if(NOT CMAKE_CXX_COMPILER) @@ -400,6 +406,10 @@ if(ENABLE_MASON) set(ENV{CCACHE_CPP2} "true") endif() + # note: we avoid calling find_package(Osmium ...) here to ensure that the + # expat and bzip2 are used from mason rather than the system + include_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libosmium/include) + else() find_package(Boost 1.49.0 REQUIRED COMPONENTS ${BOOST_COMPONENTS}) @@ -450,6 +460,12 @@ else() endif() endif() + # note libosmium depends on expat and bzip2 + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libosmium/cmake") + set(OSMIUM_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libosmium/include") + find_package(Osmium REQUIRED COMPONENTS io) + include_directories(SYSTEM ${OSMIUM_INCLUDE_DIR}) + endif() # even with mason builds we want to link to system zlib @@ -457,11 +473,6 @@ endif() find_package(ZLIB REQUIRED) add_dependency_includes(${ZLIB_INCLUDE_DIRS}) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libosmium/cmake") -set(OSMIUM_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libosmium/include") -find_package(Osmium REQUIRED COMPONENTS io) -include_directories(SYSTEM ${OSMIUM_INCLUDE_DIR}) - if(NOT WIN32 AND NOT Boost_USE_STATIC_LIBS) add_dependency_defines(-DBOOST_TEST_DYN_LINK) endif() diff --git a/scripts/update_dependencies.sh b/scripts/update_dependencies.sh index 97bf37700..68f39a1d0 100755 --- a/scripts/update_dependencies.sh +++ b/scripts/update_dependencies.sh @@ -16,7 +16,7 @@ VARIANT_REPO=https://github.com/mapbox/variant.git VARIANT_TAG=v1.1.0 MASON_REPO=https://github.com/mapbox/mason.git -MASON_TAG=v0.1.0 +MASON_TAG=v0.1.1 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") From a5db3d72f1bc9a8253e327a18d535d244a635b6a Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Tue, 8 Nov 2016 15:30:44 -0800 Subject: [PATCH 2/2] Squashed 'third_party/mason/' changes from 1b3085e..8df1478 58ae447 bump to v0.1.1 c5ef33f rename llvm 4.x to 4.0.0 [skip ci] 5d5d26b add llvm 4.x based sub-packages 9708680 only set LIBCXX_ENABLE_STATIC_ABI_LIBRARY for linux [skip ci] 6918fb0 install LLVMgold.so on linux [skip ci] ab20ff7 binutils: using 'all-gold' breaks make install on linux [skip ci] cb8b15f fix binutils install [skip ci] df77b02 properly set LLVM_BINUTILS_INCDIR value [skip ci] 295d4db binutils gold fixes [skip ci] ac85676 enable LLVMgold.so for linux [skip ci] acc4249 add binutils 2.27 16d4452 add lldb and llvm-cov 3.8.1 packages 757b908 remove patching no longer needed [skip ci] 69415b5 better fix for statically linking/linked libc++ with llvm 3.8.1 [skip ci] 43933ed Added mesa-13.0.0-glx (non-CXX11ABI) 2bb81cc Added mesa-13.0.0-glx d70e3ef LLVM_EXTERNALIZE_DEBUGINFO is osx specific ba737bf llvm 3.8.1 linux build fixes 4279f58 Updates for mesa 13.0.0 d544278 Revert typo in mason.sh 03ecb2c Add mesa 13.0.0 (Gallium-OSMesa) 0997905 Add expat 2.2.0 f41eb6d mason.cmake: multiple static libs also need to be split c9fcd1a add lldb to llvm 3.8.1 [skip ci] 6d8e16c minor llvm/clang++ improvements b2bdb33 Add note that we need to create a github release [skip ci] git-subtree-dir: third_party/mason git-subtree-split: 8df14782dda0c2c7314b5c6dba98e9e36a67eedc --- CHANGELOG.md | 6 ++ contributing.md | 3 +- mason | 2 +- mason.cmake | 2 +- scripts/binutils/2.27/.travis.yml | 25 ++++++++ scripts/binutils/2.27/script.sh | 42 +++++++++++++ scripts/clang++/4.0.0/.travis.yml | 16 +++++ scripts/clang++/4.0.0/script.sh | 17 ++++++ scripts/clang++/base/common.sh | 20 +++--- scripts/clang-format/4.0.0/.travis.yml | 16 +++++ scripts/clang-format/4.0.0/script.sh | 17 ++++++ scripts/clang-tidy/4.0.0/.travis.yml | 16 +++++ scripts/clang-tidy/4.0.0/script.sh | 17 ++++++ scripts/expat/2.2.0/.travis.yml | 24 ++++++++ scripts/expat/2.2.0/script.sh | 36 +++++++++++ scripts/lldb/3.8.1/.travis.yml | 22 +++++++ scripts/lldb/3.8.1/script.sh | 17 ++++++ scripts/lldb/4.0.0/.travis.yml | 16 +++++ scripts/lldb/4.0.0/script.sh | 17 ++++++ scripts/llvm-cov/3.8.1/.travis.yml | 22 +++++++ scripts/llvm-cov/3.8.1/script.sh | 17 ++++++ scripts/llvm-cov/4.0.0/.travis.yml | 16 +++++ scripts/llvm-cov/4.0.0/script.sh | 17 ++++++ scripts/llvm/3.8.1/script.sh | 1 + scripts/llvm/3.9.0/README.md | 10 ++- scripts/llvm/{4.x => 4.0.0}/.travis.yml | 0 scripts/llvm/{4.x => 4.0.0}/README.md | 0 scripts/llvm/{4.x => 4.0.0}/script.sh | 0 scripts/llvm/base/common.sh | 61 ++++++++++++------- scripts/mesa/13.0.0-cxx11abi/.travis.yml | 30 +++++++++ scripts/mesa/13.0.0-cxx11abi/script.sh | 63 +++++++++++++++++++ scripts/mesa/13.0.0-glx-cxx11abi/.travis.yml | 30 +++++++++ scripts/mesa/13.0.0-glx-cxx11abi/script.sh | 64 ++++++++++++++++++++ scripts/mesa/13.0.0-glx/.travis.yml | 30 +++++++++ scripts/mesa/13.0.0-glx/script.sh | 64 ++++++++++++++++++++ scripts/mesa/13.0.0/.travis.yml | 30 +++++++++ scripts/mesa/13.0.0/script.sh | 61 +++++++++++++++++++ test/unit.sh | 2 +- 38 files changed, 811 insertions(+), 38 deletions(-) create mode 100644 scripts/binutils/2.27/.travis.yml create mode 100755 scripts/binutils/2.27/script.sh create mode 100644 scripts/clang++/4.0.0/.travis.yml create mode 100755 scripts/clang++/4.0.0/script.sh create mode 100644 scripts/clang-format/4.0.0/.travis.yml create mode 100755 scripts/clang-format/4.0.0/script.sh create mode 100644 scripts/clang-tidy/4.0.0/.travis.yml create mode 100755 scripts/clang-tidy/4.0.0/script.sh create mode 100644 scripts/expat/2.2.0/.travis.yml create mode 100755 scripts/expat/2.2.0/script.sh create mode 100644 scripts/lldb/3.8.1/.travis.yml create mode 100755 scripts/lldb/3.8.1/script.sh create mode 100644 scripts/lldb/4.0.0/.travis.yml create mode 100755 scripts/lldb/4.0.0/script.sh create mode 100644 scripts/llvm-cov/3.8.1/.travis.yml create mode 100755 scripts/llvm-cov/3.8.1/script.sh create mode 100644 scripts/llvm-cov/4.0.0/.travis.yml create mode 100755 scripts/llvm-cov/4.0.0/script.sh rename scripts/llvm/{4.x => 4.0.0}/.travis.yml (100%) rename scripts/llvm/{4.x => 4.0.0}/README.md (100%) rename scripts/llvm/{4.x => 4.0.0}/script.sh (100%) create mode 100644 scripts/mesa/13.0.0-cxx11abi/.travis.yml create mode 100755 scripts/mesa/13.0.0-cxx11abi/script.sh create mode 100644 scripts/mesa/13.0.0-glx-cxx11abi/.travis.yml create mode 100755 scripts/mesa/13.0.0-glx-cxx11abi/script.sh create mode 100644 scripts/mesa/13.0.0-glx/.travis.yml create mode 100755 scripts/mesa/13.0.0-glx/script.sh create mode 100644 scripts/mesa/13.0.0/.travis.yml create mode 100755 scripts/mesa/13.0.0/script.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c5bb119e..3fd9607d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 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 \ No newline at end of file diff --git a/contributing.md b/contributing.md index 490b419b0..a264fed42 100644 --- a/contributing.md +++ b/contributing.md @@ -4,4 +4,5 @@ - Increment version in test/unit.sh - Update changelog - Ensure tests are passing -- Tag a release: `git tag v0.1.0 -a -m "v0.1.0" && git push --tags` \ No newline at end of file +- Tag a release: `git tag v0.1.0 -a -m "v0.1.0" && git push --tags` +- Go to https://github.com/mapbox/mason/releases/new and create a new release diff --git a/mason b/mason index 2c8c72a01..497b0fc70 100755 --- a/mason +++ b/mason @@ -7,7 +7,7 @@ MASON_VERSION=$1 ; shift set -e set -o pipefail -MASON_RELEASED_VERSION="0.1.0" +MASON_RELEASED_VERSION="0.1.1" if [ "${MASON_COMMAND}" = "--version" ]; then echo ${MASON_RELEASED_VERSION} diff --git a/mason.cmake b/mason.cmake index 6a1f21c91..d2ff03fca 100644 --- a/mason.cmake +++ b/mason.cmake @@ -174,7 +174,7 @@ function(mason_use _PACKAGE) string(REPLACE "=" "" _KEY "${_KEY}") string(STRIP "${_KEY}" _KEY) string(TOUPPER "${_KEY}" _KEY) - if(_KEY STREQUAL "INCLUDE_DIRS") + if(_KEY STREQUAL "INCLUDE_DIRS" OR _KEY STREQUAL "STATIC_LIBS" ) separate_arguments(_VALUE) endif() set(MASON_PACKAGE_${_PACKAGE}_${_KEY} "${_VALUE}" CACHE STRING "${_PACKAGE} ${_KEY}" FORCE) diff --git a/scripts/binutils/2.27/.travis.yml b/scripts/binutils/2.27/.travis.yml new file mode 100644 index 000000000..4fdce7bb2 --- /dev/null +++ b/scripts/binutils/2.27/.travis.yml @@ -0,0 +1,25 @@ +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 + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} +- ./mason publish ${MASON_NAME} ${MASON_VERSION} diff --git a/scripts/binutils/2.27/script.sh b/scripts/binutils/2.27/script.sh new file mode 100755 index 000000000..649013ae7 --- /dev/null +++ b/scripts/binutils/2.27/script.sh @@ -0,0 +1,42 @@ +#!/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 "$@" diff --git a/scripts/clang++/4.0.0/.travis.yml b/scripts/clang++/4.0.0/.travis.yml new file mode 100644 index 000000000..68ea01f4e --- /dev/null +++ b/scripts/clang++/4.0.0/.travis.yml @@ -0,0 +1,16 @@ +language: generic + +matrix: + include: + - os: osx + - os: linux + sudo: false + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} +- ./mason publish ${MASON_NAME} ${MASON_VERSION} \ No newline at end of file diff --git a/scripts/clang++/4.0.0/script.sh b/scripts/clang++/4.0.0/script.sh new file mode 100755 index 000000000..391259e3c --- /dev/null +++ b/scripts/clang++/4.0.0/script.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# dynamically determine the path to this package +HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )" + +# dynamically take name of package from directory +MASON_NAME=$(basename $(dirname $HERE)) +# dynamically take the version of the package from directory +MASON_VERSION=$(basename $HERE) +MASON_LIB_FILE=bin/${MASON_NAME} + +. ${MASON_DIR}/mason.sh + +# inherit all functions from base +source ${HERE}/../../${MASON_NAME}/base/common.sh + +mason_run "$@" diff --git a/scripts/clang++/base/common.sh b/scripts/clang++/base/common.sh index 5147275f0..87f7438a8 100755 --- a/scripts/clang++/base/common.sh +++ b/scripts/clang++/base/common.sh @@ -4,11 +4,15 @@ function mason_build { ${MASON_DIR}/mason install llvm ${MASON_VERSION} CLANG_PREFIX=$(${MASON_DIR}/mason prefix llvm ${MASON_VERSION}) + MAJOR_MINOR=$(echo $MASON_VERSION | cut -d '.' -f1-2) + # copy bin mkdir -p "${MASON_PREFIX}/bin" - cp "${CLANG_PREFIX}/bin/${MASON_NAME}" "${MASON_PREFIX}/bin/" - cp "${CLANG_PREFIX}/bin/clang" "${MASON_PREFIX}/bin/" - cp "${CLANG_PREFIX}/bin/llvm-symbolizer" "${MASON_PREFIX}/bin/" + cp -a "${CLANG_PREFIX}/bin/${MASON_NAME}" "${MASON_PREFIX}/bin/" + cp -a "${CLANG_PREFIX}/bin/${MASON_NAME}-${MAJOR_MINOR}" "${MASON_PREFIX}/bin/" + cp -a "${CLANG_PREFIX}/bin/clang" "${MASON_PREFIX}/bin/" + cp -a "${CLANG_PREFIX}/bin/clang-${MAJOR_MINOR}" "${MASON_PREFIX}/bin/" + cp -a "${CLANG_PREFIX}/bin/llvm-symbolizer" "${MASON_PREFIX}/bin/" # copy share mkdir -p "${MASON_PREFIX}/share" @@ -20,16 +24,12 @@ function mason_build { mkdir -p "${MASON_PREFIX}/lib" cp -r ${CLANG_PREFIX}/lib/libc++* "${MASON_PREFIX}/lib/" cp -r ${CLANG_PREFIX}/lib/libLTO.* "${MASON_PREFIX}/lib/" + if [[ $(uname -s) == 'Linux' ]]; then + cp -r ${CLANG_PREFIX}/lib/LLVMgold* "${MASON_PREFIX}/lib/" + fi mkdir -p "${MASON_PREFIX}/lib/clang" cp -R ${CLANG_PREFIX}/lib/clang/${MASON_VERSION} "${MASON_PREFIX}/lib/clang/" - # fixup symlinks - cd "${MASON_PREFIX}/bin/" - MAJOR_MINOR=$(echo $MASON_VERSION | cut -d '.' -f1-2) - rm -f "clang++-${MAJOR_MINOR}" - ln -s "clang++" "clang++-${MAJOR_MINOR}" - rm -f "clang-${MAJOR_MINOR}" - ln -s "clang" "clang-${MAJOR_MINOR}" } function mason_cflags { diff --git a/scripts/clang-format/4.0.0/.travis.yml b/scripts/clang-format/4.0.0/.travis.yml new file mode 100644 index 000000000..68ea01f4e --- /dev/null +++ b/scripts/clang-format/4.0.0/.travis.yml @@ -0,0 +1,16 @@ +language: generic + +matrix: + include: + - os: osx + - os: linux + sudo: false + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} +- ./mason publish ${MASON_NAME} ${MASON_VERSION} \ No newline at end of file diff --git a/scripts/clang-format/4.0.0/script.sh b/scripts/clang-format/4.0.0/script.sh new file mode 100755 index 000000000..391259e3c --- /dev/null +++ b/scripts/clang-format/4.0.0/script.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# dynamically determine the path to this package +HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )" + +# dynamically take name of package from directory +MASON_NAME=$(basename $(dirname $HERE)) +# dynamically take the version of the package from directory +MASON_VERSION=$(basename $HERE) +MASON_LIB_FILE=bin/${MASON_NAME} + +. ${MASON_DIR}/mason.sh + +# inherit all functions from base +source ${HERE}/../../${MASON_NAME}/base/common.sh + +mason_run "$@" diff --git a/scripts/clang-tidy/4.0.0/.travis.yml b/scripts/clang-tidy/4.0.0/.travis.yml new file mode 100644 index 000000000..68ea01f4e --- /dev/null +++ b/scripts/clang-tidy/4.0.0/.travis.yml @@ -0,0 +1,16 @@ +language: generic + +matrix: + include: + - os: osx + - os: linux + sudo: false + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} +- ./mason publish ${MASON_NAME} ${MASON_VERSION} \ No newline at end of file diff --git a/scripts/clang-tidy/4.0.0/script.sh b/scripts/clang-tidy/4.0.0/script.sh new file mode 100755 index 000000000..391259e3c --- /dev/null +++ b/scripts/clang-tidy/4.0.0/script.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# dynamically determine the path to this package +HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )" + +# dynamically take name of package from directory +MASON_NAME=$(basename $(dirname $HERE)) +# dynamically take the version of the package from directory +MASON_VERSION=$(basename $HERE) +MASON_LIB_FILE=bin/${MASON_NAME} + +. ${MASON_DIR}/mason.sh + +# inherit all functions from base +source ${HERE}/../../${MASON_NAME}/base/common.sh + +mason_run "$@" diff --git a/scripts/expat/2.2.0/.travis.yml b/scripts/expat/2.2.0/.travis.yml new file mode 100644 index 000000000..ef9476a66 --- /dev/null +++ b/scripts/expat/2.2.0/.travis.yml @@ -0,0 +1,24 @@ +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 + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} +- ./mason publish ${MASON_NAME} ${MASON_VERSION} diff --git a/scripts/expat/2.2.0/script.sh b/scripts/expat/2.2.0/script.sh new file mode 100755 index 000000000..acdd8a32b --- /dev/null +++ b/scripts/expat/2.2.0/script.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +MASON_NAME=expat +MASON_VERSION=2.2.0 +MASON_LIB_FILE=lib/libexpat.a +MASON_PKGCONFIG_FILE=lib/pkgconfig/expat.pc + +. ${MASON_DIR}/mason.sh + +function mason_load_source { + mason_download \ + https://downloads.sourceforge.net/project/expat/expat/${MASON_VERSION}/expat-${MASON_VERSION}.tar.bz2 \ + de632147cebfb22e51c8ef35fe0f8badcd424a47 + + 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 install -j${MASON_CONCURRENCY} +} + + +function mason_clean { + make clean +} + +mason_run "$@" diff --git a/scripts/lldb/3.8.1/.travis.yml b/scripts/lldb/3.8.1/.travis.yml new file mode 100644 index 000000000..c992578d9 --- /dev/null +++ b/scripts/lldb/3.8.1/.travis.yml @@ -0,0 +1,22 @@ +language: generic + +matrix: + include: + - os: osx + - os: linux + sudo: false + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - libstdc++-5-dev + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} +- ./mason publish ${MASON_NAME} ${MASON_VERSION} \ No newline at end of file diff --git a/scripts/lldb/3.8.1/script.sh b/scripts/lldb/3.8.1/script.sh new file mode 100755 index 000000000..391259e3c --- /dev/null +++ b/scripts/lldb/3.8.1/script.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# dynamically determine the path to this package +HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )" + +# dynamically take name of package from directory +MASON_NAME=$(basename $(dirname $HERE)) +# dynamically take the version of the package from directory +MASON_VERSION=$(basename $HERE) +MASON_LIB_FILE=bin/${MASON_NAME} + +. ${MASON_DIR}/mason.sh + +# inherit all functions from base +source ${HERE}/../../${MASON_NAME}/base/common.sh + +mason_run "$@" diff --git a/scripts/lldb/4.0.0/.travis.yml b/scripts/lldb/4.0.0/.travis.yml new file mode 100644 index 000000000..68ea01f4e --- /dev/null +++ b/scripts/lldb/4.0.0/.travis.yml @@ -0,0 +1,16 @@ +language: generic + +matrix: + include: + - os: osx + - os: linux + sudo: false + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} +- ./mason publish ${MASON_NAME} ${MASON_VERSION} \ No newline at end of file diff --git a/scripts/lldb/4.0.0/script.sh b/scripts/lldb/4.0.0/script.sh new file mode 100755 index 000000000..391259e3c --- /dev/null +++ b/scripts/lldb/4.0.0/script.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# dynamically determine the path to this package +HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )" + +# dynamically take name of package from directory +MASON_NAME=$(basename $(dirname $HERE)) +# dynamically take the version of the package from directory +MASON_VERSION=$(basename $HERE) +MASON_LIB_FILE=bin/${MASON_NAME} + +. ${MASON_DIR}/mason.sh + +# inherit all functions from base +source ${HERE}/../../${MASON_NAME}/base/common.sh + +mason_run "$@" diff --git a/scripts/llvm-cov/3.8.1/.travis.yml b/scripts/llvm-cov/3.8.1/.travis.yml new file mode 100644 index 000000000..c992578d9 --- /dev/null +++ b/scripts/llvm-cov/3.8.1/.travis.yml @@ -0,0 +1,22 @@ +language: generic + +matrix: + include: + - os: osx + - os: linux + sudo: false + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - libstdc++-5-dev + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} +- ./mason publish ${MASON_NAME} ${MASON_VERSION} \ No newline at end of file diff --git a/scripts/llvm-cov/3.8.1/script.sh b/scripts/llvm-cov/3.8.1/script.sh new file mode 100755 index 000000000..391259e3c --- /dev/null +++ b/scripts/llvm-cov/3.8.1/script.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# dynamically determine the path to this package +HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )" + +# dynamically take name of package from directory +MASON_NAME=$(basename $(dirname $HERE)) +# dynamically take the version of the package from directory +MASON_VERSION=$(basename $HERE) +MASON_LIB_FILE=bin/${MASON_NAME} + +. ${MASON_DIR}/mason.sh + +# inherit all functions from base +source ${HERE}/../../${MASON_NAME}/base/common.sh + +mason_run "$@" diff --git a/scripts/llvm-cov/4.0.0/.travis.yml b/scripts/llvm-cov/4.0.0/.travis.yml new file mode 100644 index 000000000..68ea01f4e --- /dev/null +++ b/scripts/llvm-cov/4.0.0/.travis.yml @@ -0,0 +1,16 @@ +language: generic + +matrix: + include: + - os: osx + - os: linux + sudo: false + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} +- ./mason publish ${MASON_NAME} ${MASON_VERSION} \ No newline at end of file diff --git a/scripts/llvm-cov/4.0.0/script.sh b/scripts/llvm-cov/4.0.0/script.sh new file mode 100755 index 000000000..391259e3c --- /dev/null +++ b/scripts/llvm-cov/4.0.0/script.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# dynamically determine the path to this package +HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )" + +# dynamically take name of package from directory +MASON_NAME=$(basename $(dirname $HERE)) +# dynamically take the version of the package from directory +MASON_VERSION=$(basename $HERE) +MASON_LIB_FILE=bin/${MASON_NAME} + +. ${MASON_DIR}/mason.sh + +# inherit all functions from base +source ${HERE}/../../${MASON_NAME}/base/common.sh + +mason_run "$@" diff --git a/scripts/llvm/3.8.1/script.sh b/scripts/llvm/3.8.1/script.sh index f629f4140..3358c96a0 100755 --- a/scripts/llvm/3.8.1/script.sh +++ b/scripts/llvm/3.8.1/script.sh @@ -18,6 +18,7 @@ function setup_release() { get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/libunwind-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/projects/libunwind 90c0184ca72e1999fec304f76bfa10340f038ee5 get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/lld-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/lld 416c36ded12ead42dc4739d52eabf22267300883 get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/clang-tools-extra-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/clang/tools/extra ea40e36d54dc8c9bb21cbebcc872a3221a2ed685 + get_llvm_project "http://llvm.org/releases/${MASON_VERSION}/lldb-${MASON_VERSION}.src.tar.xz" ${MASON_BUILD_PATH}/tools/lldb c8c38fa9ab92f9021067678f1a1c8f07ea75ac93 } mason_run "$@" diff --git a/scripts/llvm/3.9.0/README.md b/scripts/llvm/3.9.0/README.md index bbcf428f5..aad6b888d 100644 --- a/scripts/llvm/3.9.0/README.md +++ b/scripts/llvm/3.9.0/README.md @@ -34,6 +34,10 @@ VERSION=3.9.0 ./mason publish clang-tidy ${VERSION} ./mason build clang-format ${VERSION} ./mason publish clang-format ${VERSION} +./mason build lldb ${VERSION} +./mason publish lldb ${VERSION} +./mason build llvm-cov ${VERSION} +./mason publish llvm-cov ${VERSION} ``` #### OSX details @@ -66,9 +70,9 @@ To accomplish this (c++11 build of clang++ and linking to libc++ instead of an u ```sh ./mason install clang++ 3.9.0 -CLANG_39_PREFIX=$(./mason prefix clang 3.8.0) -export CXX=${CLANG_38_PREFIX}/bin/clang++-3.9 -export CC=${CLANG_38_PREFIX}/bin/clang-3.9 +CLANG_39_PREFIX=$(./mason prefix clang++ 3.9.0) +export CXX=${CLANG_39_PREFIX}/bin/clang++-3.9 +export CC=${CLANG_39_PREFIX}/bin/clang-3.9 ./mason build llvm 3.9.0 ``` diff --git a/scripts/llvm/4.x/.travis.yml b/scripts/llvm/4.0.0/.travis.yml similarity index 100% rename from scripts/llvm/4.x/.travis.yml rename to scripts/llvm/4.0.0/.travis.yml diff --git a/scripts/llvm/4.x/README.md b/scripts/llvm/4.0.0/README.md similarity index 100% rename from scripts/llvm/4.x/README.md rename to scripts/llvm/4.0.0/README.md diff --git a/scripts/llvm/4.x/script.sh b/scripts/llvm/4.0.0/script.sh similarity index 100% rename from scripts/llvm/4.x/script.sh rename to scripts/llvm/4.0.0/script.sh diff --git a/scripts/llvm/base/common.sh b/scripts/llvm/base/common.sh index d7a51e590..473069faf 100755 --- a/scripts/llvm/base/common.sh +++ b/scripts/llvm/base/common.sh @@ -15,25 +15,25 @@ function get_llvm_project() { fi local EXPECTED_HASH=${3:-false} local file_basename=$(basename ${URL}) - local local_checkout=$(pwd)/${file_basename} + local local_file_or_checkout=$(pwd)/${file_basename} if [[ ${URL} =~ '.git' ]]; then - if [ ! -d ${local_checkout} ] ; then - mason_step "cloning ${URL} to ${local_checkout}" - git clone --depth 1 ${URL} ${local_checkout} + if [ ! -d ${local_file_or_checkout} ] ; then + mason_step "cloning ${URL} to ${local_file_or_checkout}" + git clone --depth 1 ${URL} ${local_file_or_checkout} else mason_substep "already cloned ${URL}, pulling to update" - (cd ${local_checkout} && git pull) + (cd ${local_file_or_checkout} && git pull) fi - mason_step "moving ${local_checkout} into place at ${TO_DIR}" - cp -r ${local_checkout} ${TO_DIR} + mason_step "moving ${local_file_or_checkout} into place at ${TO_DIR}" + cp -r ${local_file_or_checkout} ${TO_DIR} else - if [ ! -f ${local_file} ] ; then - mason_step "Downloading ${URL} to ${local_file}" + if [ ! -f ${local_file_or_checkout} ] ; then + mason_step "Downloading ${URL} to ${local_file_or_checkout}" curl --retry 3 -f -L -O "${URL}" else - mason_substep "already downloaded $1 to ${local_file}" + mason_substep "already downloaded $1 to ${local_file_or_checkout}" fi - OBJECT_HASH=$(git hash-object ${local_file}) + export OBJECT_HASH=$(git hash-object ${local_file_or_checkout}) if [[ ${EXPECTED_HASH:-false} == false ]]; then mason_error "Warning: no expected hash provided by script.sh, actual was ${OBJECT_HASH}" else @@ -44,8 +44,8 @@ function get_llvm_project() { mason_success "Success: hash matched: ${EXPECTED_HASH} (expected) == ${OBJECT_HASH} (actual)" fi fi - mason_step "uncompressing ${local_file}" - tar xf ${local_file} + mason_step "uncompressing ${local_file_or_checkout}" + tar xf ${local_file_or_checkout} local uncompressed_dir=${file_basename/.tar.xz} mason_step "moving ${uncompressed_dir} into place at ${TO_DIR}" mv ${uncompressed_dir} ${TO_DIR} @@ -88,6 +88,12 @@ function mason_prepare_compile { MASON_CMAKE=$(${MASON_DIR}/mason prefix cmake ${CMAKE_VERSION}) ${MASON_DIR}/mason install ninja ${NINJA_VERSION} MASON_NINJA=$(${MASON_DIR}/mason prefix ninja ${NINJA_VERSION}) + + if [[ $(uname -s) == 'Linux' ]]; then + BINUTILS_VERSION=2.27 + ${MASON_DIR}/mason install binutils ${BINUTILS_VERSION} + LLVM_BINUTILS_INCDIR=$(${MASON_DIR}/mason prefix binutils ${BINUTILS_VERSION})/include + fi } function mason_compile { @@ -95,6 +101,7 @@ function mason_compile { export CC="${CC:-clang}" # knock out lldb doc building, to remove doxygen dependency perl -i -p -e "s/add_subdirectory\(docs\)//g;" tools/lldb/CMakeLists.txt + mkdir -p ./build cd ./build CMAKE_EXTRA_ARGS="" @@ -112,31 +119,43 @@ function mason_compile { CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCLANG_DEFAULT_CXX_STDLIB=libc++" CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DDEFAULT_SYSROOT=/" CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11" - CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DLLVM_CREATE_XCODE_TOOLCHAIN=ON" + CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DLLVM_CREATE_XCODE_TOOLCHAIN=ON -DLLVM_EXTERNALIZE_DEBUGINFO=ON" fi + MAJOR_MINOR=$(echo $MASON_VERSION | cut -d '.' -f1-2) + + if [[ $(uname -s) == 'Linux' ]]; then + CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DLLVM_BINUTILS_INCDIR=${LLVM_BINUTILS_INCDIR}" + if [[ ${MAJOR_MINOR} == "3.8" ]]; then + # note: LIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON is only needed with llvm < 3.9.0 to avoid libcxx(abi) build breaking when only a static libc++ exists + CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON" + fi + fi + # we link to libc++ even on linux to avoid runtime dependency on libstdc++: # https://github.com/mapbox/mason/issues/252 export CXXFLAGS="-stdlib=libc++ ${CXXFLAGS//-mmacosx-version-min=10.8}" export LDFLAGS="-stdlib=libc++ ${LDFLAGS//-mmacosx-version-min=10.8}" if [[ $(uname -s) == 'Linux' ]]; then export LDFLAGS="${LDFLAGS} -Wl,--start-group -L$(pwd)/lib -lc++ -lc++abi -pthread -lc -lgcc_s" + fi # llvm may request c++14 instead so let's not force c++11 - # TODO: -fvisibility=hidden breaks just lldb export CXXFLAGS="${CXXFLAGS//-std=c++11}" # TODO: test this #-DLLVM_ENABLE_LTO=ON \ + ${MASON_CMAKE}/bin/cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=${MASON_PREFIX} \ -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_TARGETS_TO_BUILD="ARM;X86;AArch64" \ -DCMAKE_CXX_COMPILER_LAUNCHER="${MASON_CCACHE}/bin/ccache" \ -DCMAKE_CXX_COMPILER="$CXX" \ -DCMAKE_C_COMPILER="$CC" \ -DLIBCXX_ENABLE_ASSERTIONS=OFF \ + -DLIBCXX_ENABLE_SHARED=OFF \ -DLIBCXXABI_ENABLE_SHARED=OFF \ -DLIBUNWIND_ENABLE_SHARED=OFF \ - -DLIBCXX_ENABLE_SHARED=OFF \ -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ -DLLVM_ENABLE_ASSERTIONS=OFF \ -DCLANG_VENDOR="mapbox/mason" \ @@ -148,13 +167,15 @@ function mason_compile { -DCMAKE_MAKE_PROGRAM=${MASON_NINJA}/bin/ninja \ ${CMAKE_EXTRA_ARGS} + ${MASON_NINJA}/bin/ninja unwind -j${MASON_CONCURRENCY} + # make libc++ and libc++abi first # this ensures that the LD_LIBRARY_PATH above will be valid # and that clang++ on linux will be able to link itself to # this same instance of libc++ - ${MASON_NINJA}/bin/ninja unwind -v -j${MASON_CONCURRENCY} - ${MASON_NINJA}/bin/ninja cxxabi -v -j${MASON_CONCURRENCY} - ${MASON_NINJA}/bin/ninja cxx -v -j${MASON_CONCURRENCY} + ${MASON_NINJA}/bin/ninja cxx -j${MASON_CONCURRENCY} + + ${MASON_NINJA}/bin/ninja lldb -j${MASON_CONCURRENCY} # no move the host compilers libc++ and libc++abi shared libs out of the way if [[ ${CXX_BOOTSTRAP:-false} != false ]]; then mkdir -p /tmp/backup_shlibs @@ -166,8 +187,6 @@ function mason_compile { ${MASON_NINJA}/bin/ninja install # set up symlinks for clang++ to match what llvm.org binaries provide cd ${MASON_PREFIX}/bin/ - MAJOR_MINOR=$(echo $MASON_VERSION | cut -d '.' -f1-2) - rm -f "clang++-${MAJOR_MINOR}" ln -s "clang++" "clang++-${MAJOR_MINOR}" # restore host compilers sharedlibs if [[ ${CXX_BOOTSTRAP:-false} != false ]]; then diff --git a/scripts/mesa/13.0.0-cxx11abi/.travis.yml b/scripts/mesa/13.0.0-cxx11abi/.travis.yml new file mode 100644 index 000000000..dc36327b0 --- /dev/null +++ b/scripts/mesa/13.0.0-cxx11abi/.travis.yml @@ -0,0 +1,30 @@ +language: generic + +matrix: + include: + - os: linux + sudo: required + dist: trusty + env: CXX=g++-5 CC=gcc-5 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + - libstdc++6 + - libstdc++-5-dev + - mesa-utils + - llvm-3.8-dev + - libllvm3.8v4 + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} + +after_success: +- ./mason publish ${MASON_NAME} ${MASON_VERSION} diff --git a/scripts/mesa/13.0.0-cxx11abi/script.sh b/scripts/mesa/13.0.0-cxx11abi/script.sh new file mode 100755 index 000000000..9a7fc0aa2 --- /dev/null +++ b/scripts/mesa/13.0.0-cxx11abi/script.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash + +LIB_VERSION=13.0.0 + +MASON_NAME=mesa +MASON_VERSION=${LIB_VERSION}-cxx11abi +MASON_LIB_FILE=lib/libOSMesa.so +MASON_PKGCONFIG_FILE=lib/pkgconfig/osmesa.pc + +. ${MASON_DIR}/mason.sh + +function mason_load_source { + mason_download \ + https://mesa.freedesktop.org/archive/${LIB_VERSION}/mesa-${LIB_VERSION}.tar.gz \ + bba4f687bc0b0066961424dd0ae2ca053ffc1fcb + + mason_extract_tar_gz + + export MASON_BUILD_PATH=${MASON_ROOT}/.build/mesa-${LIB_VERSION} +} + +function mason_prepare_compile { + true +} + +function mason_compile { + ./configure \ + --prefix=${MASON_PREFIX} \ + ${MASON_HOST_ARG} \ + --disable-gles1 \ + --disable-gles2 \ + --disable-dri \ + --disable-dri3 \ + --disable-glx \ + --disable-egl \ + --disable-driglx-direct \ + --disable-osmesa \ + --enable-opengl \ + --enable-gallium-osmesa \ + --enable-gallium-llvm \ + --enable-texture-float \ + --enable-llvm-shared-libs \ + --with-gallium-drivers=swrast \ + --with-llvm-prefix=/usr/lib/llvm-3.8 \ + --with-sha1=libcrypto + + make + make install +} + +function mason_cflags { + echo -I${MASON_PREFIX}/include +} + +function mason_ldflags { + echo $(`mason_pkgconfig` --libs) +} + +function mason_clean { + make clean +} + +mason_run "$@" diff --git a/scripts/mesa/13.0.0-glx-cxx11abi/.travis.yml b/scripts/mesa/13.0.0-glx-cxx11abi/.travis.yml new file mode 100644 index 000000000..dc36327b0 --- /dev/null +++ b/scripts/mesa/13.0.0-glx-cxx11abi/.travis.yml @@ -0,0 +1,30 @@ +language: generic + +matrix: + include: + - os: linux + sudo: required + dist: trusty + env: CXX=g++-5 CC=gcc-5 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + - libstdc++6 + - libstdc++-5-dev + - mesa-utils + - llvm-3.8-dev + - libllvm3.8v4 + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} + +after_success: +- ./mason publish ${MASON_NAME} ${MASON_VERSION} diff --git a/scripts/mesa/13.0.0-glx-cxx11abi/script.sh b/scripts/mesa/13.0.0-glx-cxx11abi/script.sh new file mode 100755 index 000000000..f69abaa28 --- /dev/null +++ b/scripts/mesa/13.0.0-glx-cxx11abi/script.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +LIB_VERSION=13.0.0 + +MASON_NAME=mesa +MASON_VERSION=${LIB_VERSION}-glx-cxx11abi +MASON_LIB_FILE=lib/libGL.so +MASON_PKGCONFIG_FILE=lib/pkgconfig/gl.pc + +. ${MASON_DIR}/mason.sh + +function mason_load_source { + mason_download \ + https://mesa.freedesktop.org/archive/${LIB_VERSION}/mesa-${LIB_VERSION}.tar.gz \ + bba4f687bc0b0066961424dd0ae2ca053ffc1fcb + + mason_extract_tar_gz + + export MASON_BUILD_PATH=${MASON_ROOT}/.build/mesa-${LIB_VERSION} +} + +function mason_prepare_compile { + true +} + +function mason_compile { + ./configure \ + --prefix=${MASON_PREFIX} \ + ${MASON_HOST_ARG} \ + --disable-egl \ + --disable-dri \ + --disable-dri3 \ + --disable-driglx-direct \ + --disable-osmesa \ + --disable-gallium-osmesa \ + --enable-opengl \ + --enable-gles1 \ + --enable-gles2 \ + --enable-glx=gallium-xlib \ + --enable-glx-tls \ + --enable-gallium-llvm \ + --enable-texture-float \ + --enable-llvm-shared-libs \ + --with-gallium-drivers=swrast \ + --with-llvm-prefix=/usr/lib/llvm-3.8 \ + --with-sha1=libcrypto + + make + make install +} + +function mason_cflags { + echo -I${MASON_PREFIX}/include +} + +function mason_ldflags { + echo $(`mason_pkgconfig` --libs) +} + +function mason_clean { + make clean +} + +mason_run "$@" diff --git a/scripts/mesa/13.0.0-glx/.travis.yml b/scripts/mesa/13.0.0-glx/.travis.yml new file mode 100644 index 000000000..dc36327b0 --- /dev/null +++ b/scripts/mesa/13.0.0-glx/.travis.yml @@ -0,0 +1,30 @@ +language: generic + +matrix: + include: + - os: linux + sudo: required + dist: trusty + env: CXX=g++-5 CC=gcc-5 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + - libstdc++6 + - libstdc++-5-dev + - mesa-utils + - llvm-3.8-dev + - libllvm3.8v4 + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} + +after_success: +- ./mason publish ${MASON_NAME} ${MASON_VERSION} diff --git a/scripts/mesa/13.0.0-glx/script.sh b/scripts/mesa/13.0.0-glx/script.sh new file mode 100755 index 000000000..4a470a51a --- /dev/null +++ b/scripts/mesa/13.0.0-glx/script.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +LIB_VERSION=13.0.0 + +MASON_NAME=mesa +MASON_VERSION=${LIB_VERSION}-glx +MASON_LIB_FILE=lib/libGL.so +MASON_PKGCONFIG_FILE=lib/pkgconfig/gl.pc + +. ${MASON_DIR}/mason.sh + +function mason_load_source { + mason_download \ + https://mesa.freedesktop.org/archive/${LIB_VERSION}/mesa-${LIB_VERSION}.tar.gz \ + bba4f687bc0b0066961424dd0ae2ca053ffc1fcb + + mason_extract_tar_gz + + export MASON_BUILD_PATH=${MASON_ROOT}/.build/mesa-${LIB_VERSION} +} + +function mason_prepare_compile { + true +} + +function mason_compile { + ./configure \ + --prefix=${MASON_PREFIX} \ + ${MASON_HOST_ARG} \ + --disable-egl \ + --disable-dri \ + --disable-dri3 \ + --disable-driglx-direct \ + --disable-osmesa \ + --disable-gallium-osmesa \ + --enable-opengl \ + --enable-gles1 \ + --enable-gles2 \ + --enable-glx=gallium-xlib \ + --enable-glx-tls \ + --enable-gallium-llvm \ + --enable-texture-float \ + --enable-llvm-shared-libs \ + --with-gallium-drivers=swrast \ + --with-llvm-prefix=/usr/lib/llvm-3.8 \ + --with-sha1=libcrypto + + make + make install +} + +function mason_cflags { + echo -I${MASON_PREFIX}/include +} + +function mason_ldflags { + echo $(`mason_pkgconfig` --libs) +} + +function mason_clean { + make clean +} + +mason_run "$@" diff --git a/scripts/mesa/13.0.0/.travis.yml b/scripts/mesa/13.0.0/.travis.yml new file mode 100644 index 000000000..dc36327b0 --- /dev/null +++ b/scripts/mesa/13.0.0/.travis.yml @@ -0,0 +1,30 @@ +language: generic + +matrix: + include: + - os: linux + sudo: required + dist: trusty + env: CXX=g++-5 CC=gcc-5 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + - libstdc++6 + - libstdc++-5-dev + - mesa-utils + - llvm-3.8-dev + - libllvm3.8v4 + +env: + global: + - secure: "clCFM3prHnDocZ8lXlimPxAogvFirD1Zx8cMcFJ/XpkTA/0pCgnhpArM4y/NzLHR57pNZTSCr3p6XZI1c1iTG4Zm8x0sK2A4aTFRahypXNy/e+LzAbtd1y1+dEEDwlJvNNGxizQX4frhOgSNQFDFnWLtmF3stlft5YWyc2kI+FI=" + - secure: "jKJErCng8Sk8YJ0IN2FX3lhv7G1LeudMfFBAXViZaXn8w/gWPs+SlfXQmIJ5SruU7U2GQKnAhzbjwXjVAgAh8OAblzny0DDm5Lh5WmwkgAP8JH1LpsBwCYx2S/v8qyR4DX1RVhHS8mQu298180ZDVgGccw+hd8xrE/S5TEQcNfQ=" + +script: +- ./mason build ${MASON_NAME} ${MASON_VERSION} + +after_success: +- ./mason publish ${MASON_NAME} ${MASON_VERSION} diff --git a/scripts/mesa/13.0.0/script.sh b/scripts/mesa/13.0.0/script.sh new file mode 100755 index 000000000..7663c47a9 --- /dev/null +++ b/scripts/mesa/13.0.0/script.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +MASON_NAME=mesa +MASON_VERSION=13.0.0 +MASON_LIB_FILE=lib/libOSMesa.so +MASON_PKGCONFIG_FILE=lib/pkgconfig/osmesa.pc + +. ${MASON_DIR}/mason.sh + +function mason_load_source { + mason_download \ + https://mesa.freedesktop.org/archive/${MASON_VERSION}/mesa-${MASON_VERSION}.tar.gz \ + bba4f687bc0b0066961424dd0ae2ca053ffc1fcb + + mason_extract_tar_gz + + export MASON_BUILD_PATH=${MASON_ROOT}/.build/mesa-${MASON_VERSION} +} + +function mason_prepare_compile { + true +} + +function mason_compile { + ./configure \ + --prefix=${MASON_PREFIX} \ + ${MASON_HOST_ARG} \ + --disable-gles1 \ + --disable-gles2 \ + --disable-dri \ + --disable-dri3 \ + --disable-glx \ + --disable-egl \ + --disable-driglx-direct \ + --disable-osmesa \ + --enable-opengl \ + --enable-gallium-osmesa \ + --enable-gallium-llvm \ + --enable-texture-float \ + --enable-llvm-shared-libs \ + --with-gallium-drivers=swrast \ + --with-llvm-prefix=/usr/lib/llvm-3.8 \ + --with-sha1=libcrypto + + make + make install +} + +function mason_cflags { + echo -I${MASON_PREFIX}/include +} + +function mason_ldflags { + echo $(`mason_pkgconfig` --libs) +} + +function mason_clean { + make clean +} + +mason_run "$@" diff --git a/test/unit.sh b/test/unit.sh index 85da5b82a..01c2f0c20 100755 --- a/test/unit.sh +++ b/test/unit.sh @@ -14,7 +14,7 @@ fi VAL=$(./mason --version) assertEqual "$?" "0" "able to run ./mason --version" -assertEqual "0.1.0" "$VAL" "got correct result of ./mason --version" +assertEqual "0.1.1" "$VAL" "got correct result of ./mason --version" exit $CODE \ No newline at end of file