2016-08-27 09:34:08 +02:00
MONO_DEBUG_IF_AVAILABLE( ) {
2017-01-16 03:03:19 +01:00
echo " INFO: Appending $1 to MONO_DEBUG... "
2016-08-27 09:34:08 +02:00
local PREVIOUS_MONO_DEBUG = " $MONO_DEBUG "
# Add change if needed
2016-09-02 18:57:13 +02:00
if [ -z " $PREVIOUS_MONO_DEBUG " ] ; then
2016-08-27 09:34:08 +02:00
export MONO_DEBUG = " $1 "
elif echo " $PREVIOUS_MONO_DEBUG " | grep -Fq " $1 " ; then
2017-01-16 03:03:19 +01:00
echo " DONE: $1 already exists "
2016-08-27 09:34:08 +02:00
return 0
else
export MONO_DEBUG = " ${ PREVIOUS_MONO_DEBUG } , ${ 1 } "
fi
# If we did a change, check if Mono supports that option
# If not, it will be listed as invalid option on line 1
if mono "" 2>& 1 | head -n 1 | grep -Fq " $1 " ; then
2017-01-16 03:03:19 +01:00
echo " FAILED: $1 "
2016-08-27 09:34:08 +02:00
export MONO_DEBUG = " $PREVIOUS_MONO_DEBUG "
return 1
fi
2017-01-16 03:03:19 +01:00
echo " DONE: $1 "
2016-08-27 09:34:08 +02:00
return 0
}
2017-01-16 03:03:19 +01:00
VERSION_GREATER_THAN( ) {
2016-09-02 18:57:13 +02:00
if [ " $1 " = " $2 " ] ; then
2016-08-27 09:34:08 +02:00
return 1
fi
2017-01-16 03:03:19 +01:00
! VERSION_LESS_EQUAL_THAN " $1 " " $2 "
2016-08-27 09:34:08 +02:00
}
2017-01-16 03:03:19 +01:00
VERSION_GREATER_EQUAL_THAN( ) {
! VERSION_LESS_THAN " $1 " " $2 "
2016-08-27 09:34:08 +02:00
}
2017-01-16 03:03:19 +01:00
VERSION_LESS_THAN( ) {
2016-09-02 18:57:13 +02:00
if [ " $1 " = " $2 " ] ; then
2016-08-27 09:34:08 +02:00
return 1
fi
2017-01-16 03:03:19 +01:00
VERSION_LESS_EQUAL_THAN " $1 " " $2 "
2016-08-27 09:34:08 +02:00
}
2017-01-16 03:03:19 +01:00
VERSION_LESS_EQUAL_THAN( ) {
2016-09-02 18:57:13 +02:00
[ " $1 " = " $( echo -e " $1 \n $2 " | sort -V | head -n 1) " ]
2016-08-27 09:34:08 +02:00
}
2017-01-16 03:03:19 +01:00
echo "INFO: Mono environment setup executed!"
2016-08-27 09:34:08 +02:00
2017-01-16 03:03:19 +01:00
MINIMUM_MONO_VERSION = "4.6.0" # Bump as needed
2017-03-13 03:15:51 +01:00
CURRENT_MONO_VERSION = " $( mono -V | head -n 1 | cut -d ' ' -f 5 | cut -d '.' -f '1-3' ) " # We take only first three version numbers, this is needed for facades path in OS X
2016-08-27 09:34:08 +02:00
2017-01-16 03:03:19 +01:00
echo " INFO: Mono version: $CURRENT_MONO_VERSION | Required: ${ MINIMUM_MONO_VERSION } + "
2016-08-27 09:45:55 +02:00
2017-01-16 03:03:19 +01:00
if VERSION_LESS_THAN " $CURRENT_MONO_VERSION " " $MINIMUM_MONO_VERSION " ; then
echo "ERROR: You've attempted to build ASF with unsupported Mono version!"
return 1
2016-08-27 09:34:08 +02:00
fi
2016-08-27 09:45:55 +02:00
2017-01-16 03:03:19 +01:00
MONO_DEBUG_IF_AVAILABLE "no-compact-seq-points"
MONO_DEBUG_IF_AVAILABLE "no-gdb-backtrace"
2016-09-12 21:01:09 +02:00
if [ -z " $MONO_ENV_OPTIONS " ] ; then
echo "INFO: Setting MONO_ENV_OPTIONS to: --server -O=all"
export MONO_ENV_OPTIONS = "--server -O=all"
else
echo " INFO: Skipping setting of MONO_ENV_OPTIONS as it's already declared with value: $MONO_ENV_OPTIONS "
fi
2016-09-12 20:52:30 +02:00
2017-02-07 21:09:08 +01:00
if [ -d "/usr/lib/mono/4.5/Facades" ] ; then
export MONO_FACADES = "/usr/lib/mono/4.5/Facades"
2017-03-13 03:01:04 +01:00
elif [ -d " /Library/Frameworks/Mono.framework/Versions/ ${ CURRENT_MONO_VERSION } /lib/mono/4.5/Facades " ] ; then
export MONO_FACADES = " /Library/Frameworks/Mono.framework/Versions/ ${ CURRENT_MONO_VERSION } /lib/mono/4.5/Facades "
2017-02-07 21:09:08 +01:00
else
echo "WARN: Could not find Mono facades!"
fi
2017-01-16 03:03:19 +01:00
echo "INFO: Mono environment setup finished!"