From 7cae02307714a5e95c68b1794e68440dd5b176de Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 29 Jul 2015 15:08:35 -0700 Subject: Adding binaries for 1.6.0 Change-Id: Ia6a850f26a23fd3e12d44ffb90e41d8645442849 --- README.ANDROID | 7 ---- build-common.sh | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ build-ninja.sh | 28 ++++++++++++++ ninja | Bin 3213586 -> 3326752 bytes 4 files changed, 141 insertions(+), 7 deletions(-) delete mode 100644 README.ANDROID create mode 100644 build-common.sh create mode 100755 build-ninja.sh diff --git a/README.ANDROID b/README.ANDROID deleted file mode 100644 index 2b2c1ca..0000000 --- a/README.ANDROID +++ /dev/null @@ -1,7 +0,0 @@ -The go prebuilts in this directory were compiled with: - -git clone https://github.com/martine/ninja.git /tmp/ninja -cd /tmp/ninja -git checkout 636034b288777c9f0b7aca1072e0496de94db27c -./configure.py --bootstrap -cp -r ninja prebuilts/ninja/linux-x86 diff --git a/build-common.sh b/build-common.sh new file mode 100644 index 0000000..f84a9e3 --- /dev/null +++ b/build-common.sh @@ -0,0 +1,113 @@ +# inputs +# $PROJ - project name (cmake|ninja|swig) +# $VER - project version +# $1 - name of this file +# +# this file does the following: +# +# 1) define the following env vars +# OS - linux|darwin|windows +# USER - username +# CORES - numer of cores (for parallel builds) +# PATH (with appropriate compilers) +# CFLAGS/CXXFLAGS/LDFLAGS +# RD - root directory for source and object files +# INSTALL - install directory/git repo root +# SCRIPT_FILE=absolute path to the parent build script +# SCRIPT_DIR=absolute path to the parent build script's directory +# COMMON_FILE=absolute path to this file + +# +# 2) create an empty tmp directory at /tmp/$PROJ-$USER +# 3) checkout the destination git repo to /tmp/prebuilts/$PROJ/$OS-x86/$VER +# 4) cd $RD + +UNAME="$(uname)" +case "$UNAME" in +Linux) + SCRATCH=/tmp + OS='linux' + INSTALL_VER=$VER + ;; +Darwin) + SCRATCH=/tmp + OS='darwin' + OSX_MIN=10.6 + export CFLAGS="$CFLAGS -mmacosx-version-min=$OSX_MIN" + export CXXFLAGS="$CXXFLAGS -mmacosx-version-min=$OSX_MIN" + export LDFLAGS="$LDFLAGS -mmacosx-version-min=$OSX_MIN" + INSTALL_VER=$VER + ;; +*_NT-*) + if [[ "$UNAME" == CYGWIN_NT-* ]]; then + PATH_PREFIX=/cygdrive + else + # MINGW32_NT-* + PATH_PREFIX= + fi + SCRATCH=$PATH_PREFIX/d/src/tmp + USER=$USERNAME + OS='windows' + CORES=$NUMBER_OF_PROCESSORS + # VS2013 x64 Native Tools Command Prompt + case "$MSVS" in + 2013) + export PATH="$PATH_PREFIX/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/amd64/":"$PATH_PREFIX/c/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/":"$PATH" + export INCLUDE="C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\INCLUDE;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\INCLUDE;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\shared;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\um;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\winrt;" + export LIB="C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\LIB\\amd64;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\LIB\\amd64;C:\\Program Files (x86)\\Windows Kits\\8.1\\lib\\winv6.3\\um\\x64;" + export LIBPATH="C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\LIB\\amd64;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\LIB\\amd64;C:\\Program Files (x86)\\Windows Kits\\8.1\\References\\CommonConfiguration\\Neutral;C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1\\ExtensionSDKs\\Microsoft.VCLibs\\12.0\\References\\CommonConfiguration\\neutral;" + INSTALL_VER=${VER}_${MSVS} + ;; + *) + # g++/make build + export CC=x86_64-w64-mingw32-gcc + export CXX=x86_64-w64-mingw32-g++ + export LD=x86_64-w64-mingw32-ld + ;; + esac + ;; +*) + exit 1 + ;; +esac + +# OSX lacks a "realpath" bash command +realpath() { + [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" +} + +SCRIPT_FILE=$(realpath "$0") +SCRIPT_DIR="$(dirname "$SCRIPT_FILE")" +COMMON_FILE="$SCRIPT_DIR/$1" + +RD=$SCRATCH/$PROJ-$USER +INSTALL="$RD/install" + +cd /tmp # windows can't delete if you're in the dir +rm -rf $RD +mkdir -p $INSTALL +mkdir -p $RD +cd $RD + +commit_and_push() +{ + # check into a local git clone + rm -rf $SCRATCH/prebuilts/$PROJ/ + mkdir -p $SCRATCH/prebuilts/$PROJ/ + cd $SCRATCH/prebuilts/$PROJ/ + git clone https://android.googlesource.com/platform/prebuilts/$PROJ/$OS-x86 + GIT_REPO="$SCRATCH/prebuilts/$PROJ/$OS-x86" + cd $GIT_REPO + git rm -r * || true # ignore error caused by empty directory + mv $INSTALL/* $GIT_REPO + cp $SCRIPT_FILE $GIT_REPO + cp $COMMON_FILE $GIT_REPO + + git add . + git commit -m "Adding binaries for $INSTALL_VER" + + # execute this command to upload + #git push origin HEAD:refs/for/master + + rm -rf $RD || true # ignore error +} diff --git a/build-ninja.sh b/build-ninja.sh new file mode 100755 index 0000000..c5e9cf3 --- /dev/null +++ b/build-ninja.sh @@ -0,0 +1,28 @@ +#!/bin/bash -ex +# Download & build ninja on the local machine +# works on Linux, OSX, and Windows (Git Bash) +# leaves output in /tmp/prebuilts/ninja/$OS-x86/ + +PROJ=ninja +VER=1.6.0 +MSVS=2013 + +source $(dirname "$0")/build-common.sh build-common.sh + +# needed for cygwin +export PATH="$PATH":. + +# ninja specific steps +cd $RD +git clone https://github.com/martine/ninja.git src +cd src +git checkout v$VER +if [[ "$OS" == "windows" ]] ; then + PLATFORM="--platform=msvc" +fi +./configure.py --bootstrap $PLATFORM + +# install +cp $RD/src/ninja $INSTALL + +commit_and_push diff --git a/ninja b/ninja index ffdaf07..5748261 100755 Binary files a/ninja and b/ninja differ -- cgit v1.2.3