Merge commit 'f8dd96543542220181c76afb8c084f4908213fb5' as 'third_party/mason'

This commit is contained in:
Patrick Niklaus
2016-12-15 10:31:15 +00:00
796 changed files with 30230 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
#!/usr/bin/env bash
set -e
set -o pipefail
echo "set(CMAKE_SYSTEM_NAME Android)"
echo "set(CMAKE_SYSTEM_VERSION 1)"
echo "set(CMAKE_CXX_COMPILER \"`which $(${MASON_DIR}/mason env CXX)`\")"
echo "set(CMAKE_C_COMPILER \"`which $(${MASON_DIR}/mason env CC)`\")"
echo "set(ANDROID_JNIDIR \"`${MASON_DIR}/mason env JNIDIR`\")"
echo "set(ANDROID_ABI \"\${ANDROID_JNIDIR}\")"
echo "set(CMAKE_EXE_LINKER_FLAGS \"`${MASON_DIR}/mason env LDFLAGS` \${CMAKE_EXE_LINKER_FLAGS}\")"
echo "set(CMAKE_SHARED_LINKER_FLAGS \"`${MASON_DIR}/mason env LDFLAGS` \${CMAKE_SHARED_LINKER_FLAGS}\")"
echo "set(CMAKE_CXX_FLAGS \"`${MASON_DIR}/mason env CXXFLAGS` \${CMAKE_CXX_FLAGS}\")"
echo "set(CMAKE_C_FLAGS \"`${MASON_DIR}/mason env CPPFLAGS` \${CMAKE_C_FLAGS}\")"
echo "set(STRIP_COMMAND \"`which $(${MASON_DIR}/mason env STRIP)`\")"
+136
View File
@@ -0,0 +1,136 @@
# From https://github.com/OtherLevels/ios-cmake
# This file is based off of the Platform/Darwin.cmake and Platform/UnixPaths.cmake
# files which are included with CMake 2.8.4
# It has been altered for iOS development
# Options:
#
# IOS_PLATFORM = OS (default) or SIMULATOR or SIMULATOR64
# This decides if SDKS will be selected from the iPhoneOS.platform or iPhoneSimulator.platform folders
# OS - the default, used to build for iPhone and iPad physical devices, which have an arm arch.
# SIMULATOR - used to build for the Simulator platforms, which have an x86 arch.
#
# CMAKE_IOS_DEVELOPER_ROOT = automatic(default) or /path/to/platform/Developer folder
# By default this location is automatcially chosen based on the IOS_PLATFORM value above.
# If set manually, it will override the default location and force the user of a particular Developer Platform
#
# CMAKE_IOS_SDK_ROOT = automatic(default) or /path/to/platform/Developer/SDKs/SDK folder
# By default this location is automatcially chosen based on the CMAKE_IOS_DEVELOPER_ROOT value.
# In this case it will always be the most up-to-date SDK found in the CMAKE_IOS_DEVELOPER_ROOT path.
# If set manually, this will force the use of a specific SDK version
# Macros:
#
# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE)
# A convenience macro for setting xcode specific properties on targets
# example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1")
#
# find_host_package (PROGRAM ARGS)
# A macro used to find executable programs on the host system, not within the iOS environment.
# Thanks to the android-cmake project for providing the command
# Standard settings
set (CMAKE_SYSTEM_NAME Darwin)
set (CMAKE_SYSTEM_VERSION 1)
set (UNIX True)
set (APPLE True)
set (IOS True)
# Required as of cmake 2.8.10
set (CMAKE_OSX_DEPLOYMENT_TARGET "" CACHE STRING "Force unset of the deployment target for iOS" FORCE)
# Determine the cmake host system version so we know where to find the iOS SDKs
find_program (CMAKE_UNAME uname /bin /usr/bin /usr/local/bin)
if (CMAKE_UNAME)
exec_program(uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION)
string (REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_HOST_SYSTEM_VERSION}")
endif (CMAKE_UNAME)
# Force the compilers to gcc for iOS
include (CMakeForceCompiler)
set(XCODE_TOOLCHAIN /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain)
set(XCODE_BIN ${XCODE_TOOLCHAIN}/usr/bin)
set(CMAKE_C_COMPILER ${XCODE_BIN}/clang)
set(CMAKE_CXX_COMPILER ${XCODE_BIN}/clang++)
set(CMAKE_FIND_ROOT_PATH ${XCODE_TOOLCHAIN_ROOT})
set(CMAKE_AR ar CACHE FILEPATH "" FORCE)
# Skip the platform compiler checks for cross compiling
set (CMAKE_CXX_COMPILER_WORKS TRUE)
set (CMAKE_C_COMPILER_WORKS TRUE)
# All iOS/Darwin specific settings - some may be redundant
set (CMAKE_SHARED_LIBRARY_PREFIX "lib")
set (CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
set (CMAKE_SHARED_MODULE_PREFIX "lib")
set (CMAKE_SHARED_MODULE_SUFFIX ".so")
set (CMAKE_MODULE_EXISTS 1)
set (CMAKE_DL_LIBS "")
set (CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ")
set (CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ")
set (CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}")
set (CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}")
# This was required for Other C++ Flags to be set for enabling bitcode in a static lib.
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fembed-bitcode")
set (CMAKE_C_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}")
set (CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}")
set (CMAKE_PLATFORM_HAS_INSTALLNAME 1)
set (CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -headerpad_max_install_names")
set (CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -headerpad_max_install_names")
set (CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,")
set (CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,")
set (CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a")
# Point to the latest SDK.
set (CMAKE_OSX_SYSROOT "iphoneos" CACHE string "Sysroot used for iOS support")
set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)" CACHE string "Build architecture for iOS")
# Set the find root to the iOS developer roots and to user defined paths
set (CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} CACHE string "iOS find search path root")
# default to searching for frameworks first
set (CMAKE_FIND_FRAMEWORK FIRST)
# set up the default search directories for frameworks
set (CMAKE_SYSTEM_FRAMEWORK_PATH
${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks
${CMAKE_IOS_SDK_ROOT}/System/Library/PrivateFrameworks
${CMAKE_IOS_SDK_ROOT}/Developer/Library/Frameworks
)
# only search the iOS sdks, not the remainder of the host filesystem
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# This little macro lets you set any XCode specific property
macro (set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE)
set_property (TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE})
endmacro (set_xcode_property)
# This macro lets you find executable programs on the host system
macro (find_host_package)
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)
set (IOS FALSE)
find_package(${ARGN})
set (IOS TRUE)
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
endmacro (find_host_package)
+54
View File
@@ -0,0 +1,54 @@
set -eu
set -o pipefail
LAST_VERSION="1.61.0"
NEW_VERSION="1.62.0"
: '
manual intervention:
- change/upgrade icu version used by boost_regex
- new libraries available to build?
'
CLEAN="${CLEAN:-false}"
if [[ ${CLEAN} ]]; then
rm -rf scripts/boost/${NEW_VERSION}
fi
mkdir scripts/boost/${NEW_VERSION}
cp -r scripts/boost/${LAST_VERSION}/. scripts/boost/${NEW_VERSION}/
perl -i -p -e "s/MASON_VERSION=${LAST_VERSION}/MASON_VERSION=${NEW_VERSION}/g;" scripts/boost/${NEW_VERSION}/base.sh
export BOOST_VERSION=${NEW_VERSION//./_}
export CACHE_PATH="mason_packages/.cache"
mkdir -p "${CACHE_PATH}"
if [[ ! -f ${CACHE_PATH}/boost-${NEW_VERSION} ]]; then
curl --retry 3 -f -S -L http://downloads.sourceforge.net/project/boost/boost/${NEW_VERSION}/boost_${BOOST_VERSION}.tar.bz2 -o ${CACHE_PATH}/boost-${NEW_VERSION}
fi
NEW_SHASUM=$(git hash-object ${CACHE_PATH}/boost-${NEW_VERSION})
perl -i -p -e "s/BOOST_SHASUM=(.*)/BOOST_SHASUM=${NEW_SHASUM}/g;" scripts/boost/${NEW_VERSION}/base.sh
for lib in $(find scripts/ -maxdepth 1 -type dir -name 'boost_lib*' -print); do
if [[ -d $lib/${LAST_VERSION} ]]; then
if [[ ${CLEAN} ]]; then
rm -rf $lib/${NEW_VERSION}
fi
mkdir $lib/${NEW_VERSION}
cp -r $lib/${LAST_VERSION}/. $lib/${NEW_VERSION}/
else
echo "skipping creating package for $lib"
fi
done
./mason trigger boost ${NEW_VERSION}
for lib in $(find scripts/ -maxdepth 1 -type dir -name 'boost_lib*' -print); do
echo "running ./mason build $(basename $lib) ${NEW_VERSION}"
./mason trigger $(basename $lib) ${NEW_VERSION}
done
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -eu
set -o pipefail
CLANG_VERSION="3.9.0"
./mason install clang++ ${CLANG_VERSION}
export PATH=$(./mason prefix clang++ ${CLANG_VERSION})/bin:${PATH}
export CXX=clang++-3.9
export CC=clang-3.9
set +eu