|
| 1 | +#!/bin/bash -eu |
| 2 | + |
| 3 | +set -o pipefail |
| 4 | +IFS=$'\n\t ' |
| 5 | + |
| 6 | +OUTPUT=Make.config.inc |
| 7 | +OUTPUT_FILE=Make.config.inc.tmp |
| 8 | + |
| 9 | +rm -f "$OUTPUT_FILE" "$OUTPUT" |
| 10 | + |
| 11 | +LANG=C |
| 12 | +export LANG |
| 13 | + |
| 14 | +# Support for hardcoding a commit distance start offset. |
| 15 | +NUGET_VERSION_COMMIT_DISTANCE_START=0 |
| 16 | +NUGET_VERSION_STABLE_COMMIT_DISTANCE_START=0 |
| 17 | + |
| 18 | +# Compute commit distances |
| 19 | +printf "IOS_COMMIT_DISTANCE:=$(git log $(git blame -- ./Make.versions HEAD | grep IOS_PACKAGE_VERSION= | sed 's/ .*//' )..HEAD --oneline | wc -l | sed 's/ //g')\n" >> "$OUTPUT_FILE" |
| 20 | +printf "MAC_COMMIT_DISTANCE:=$(git log $(git blame -- ./Make.versions HEAD | grep MAC_PACKAGE_VERSION= | sed 's/ .*//' )..HEAD --oneline | wc -l | sed 's/ //g')\n" >> "$OUTPUT_FILE" |
| 21 | + |
| 22 | +for platform in $ALL_DOTNET_PLATFORMS; do |
| 23 | + PLATFORM=$(echo "$platform" | tr '[:lower:]' '[:upper:]') |
| 24 | + COMMIT=$(git blame -- ./Make.versions HEAD | grep "${PLATFORM}_NUGET_OS_VERSION=" | sed 's/ .*//') |
| 25 | + COMMIT_DISTANCE=$(git log "$COMMIT..HEAD" --oneline | wc -l | sed -e 's/ //g') |
| 26 | + TOTAL_DISTANCE=$((NUGET_VERSION_COMMIT_DISTANCE_START+COMMIT_DISTANCE)) |
| 27 | + printf "${PLATFORM}_NUGET_COMMIT_DISTANCE:=$TOTAL_DISTANCE\\n" >> "$OUTPUT_FILE" |
| 28 | +done |
| 29 | + |
| 30 | +STABLE_COMMIT=$(git blame -L '/^[#[:blank:]]*NUGET_RELEASE_BRANCH=/,+1' -- ./Make.config HEAD | sed 's/ .*//') |
| 31 | +STABLE_COMMIT_DISTANCE=$(git log "$STABLE_COMMIT..HEAD" --oneline | wc -l | sed -e 's/ //g') |
| 32 | +STABLE_TOTAL_DISTANCE=$((STABLE_COMMIT_DISTANCE+NUGET_VERSION_STABLE_COMMIT_DISTANCE_START)) |
| 33 | + |
| 34 | +printf "NUGET_STABLE_COMMIT_DISTANCE:=$STABLE_TOTAL_DISTANCE\\n" >> "$OUTPUT_FILE" |
| 35 | + |
| 36 | +# Detect ccache |
| 37 | +if which ccache > /dev/null 2>&1; then |
| 38 | + printf "ENABLE_CCACHE=1\n" >> "$OUTPUT_FILE" |
| 39 | + printf "export CCACHE_BASEDIR=$(cd .. && pwd)\n" >> "$OUTPUT_FILE" |
| 40 | + echo "Found ccache on the system, enabling it" |
| 41 | +fi |
| 42 | + |
| 43 | +# Detect maccore / xamarin |
| 44 | +if test -d ../maccore; then |
| 45 | + printf "ENABLE_XAMARIN=1\n" >> "$OUTPUT_FILE" |
| 46 | + echo "Detected the maccore repository, automatically enabled the Xamarin build" |
| 47 | +fi |
| 48 | + |
| 49 | +mv "$OUTPUT_FILE" "$OUTPUT" |
0 commit comments