forked from dotnet/interactive
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update dependencies from https://github.com/dotnet/arcade build 20200…
…428.4 - Microsoft.DotNet.Arcade.Sdk: 5.0.0-beta.20224.11 -> 5.0.0-beta.20228.4
- Loading branch information
1 parent
4c69734
commit f22d033
Showing
7 changed files
with
137 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
#!/usr/bin/env bash | ||
# | ||
# This file locates the native compiler with the given name and version and sets the environment variables to locate it. | ||
# | ||
|
||
source="${BASH_SOURCE[0]}" | ||
|
||
# resolve $SOURCE until the file is no longer a symlink | ||
while [[ -h $source ]]; do | ||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" | ||
source="$(readlink "$source")" | ||
|
||
# if $source was a relative symlink, we need to resolve it relative to the path where the | ||
# symlink file was located | ||
[[ $source != /* ]] && source="$scriptroot/$source" | ||
done | ||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" | ||
|
||
if [ $# -lt 0 ] | ||
then | ||
echo "Usage..." | ||
echo "find-native-compiler.sh <compiler> <compiler major version> <compiler minor version>" | ||
echo "Specify the name of compiler (clang or gcc)." | ||
echo "Specify the major version of compiler." | ||
echo "Specify the minor version of compiler." | ||
exit 1 | ||
fi | ||
|
||
. $scriptroot/../pipeline-logging-functions.sh | ||
|
||
compiler="$1" | ||
cxxCompiler="$compiler++" | ||
majorVersion="$2" | ||
minorVersion="$3" | ||
|
||
if [ "$compiler" = "gcc" ]; then cxxCompiler="g++"; fi | ||
|
||
check_version_exists() { | ||
desired_version=-1 | ||
|
||
# Set up the environment to be used for building with the desired compiler. | ||
if command -v "$compiler-$1.$2" > /dev/null; then | ||
desired_version="-$1.$2" | ||
elif command -v "$compiler$1$2" > /dev/null; then | ||
desired_version="$1$2" | ||
elif command -v "$compiler-$1$2" > /dev/null; then | ||
desired_version="-$1$2" | ||
fi | ||
|
||
echo "$desired_version" | ||
} | ||
|
||
if [ -z "$CLR_CC" ]; then | ||
|
||
# Set default versions | ||
if [ -z "$majorVersion" ]; then | ||
# note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero. | ||
if [ "$compiler" = "clang" ]; then versions=( 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 ) | ||
elif [ "$compiler" = "gcc" ]; then versions=( 9 8 7 6 5 4.9 ); fi | ||
|
||
for version in "${versions[@]}"; do | ||
parts=(${version//./ }) | ||
desired_version="$(check_version_exists "${parts[0]}" "${parts[1]}")" | ||
if [ "$desired_version" != "-1" ]; then majorVersion="${parts[0]}"; break; fi | ||
done | ||
|
||
if [ -z "$majorVersion" ]; then | ||
if command -v "$compiler" > /dev/null; then | ||
if [ "$(uname)" != "Darwin" ]; then | ||
Write-PipelineTelemetryError -category "Build" -type "warning" "Specific version of $compiler not found, falling back to use the one in PATH." | ||
fi | ||
export CC="$(command -v "$compiler")" | ||
export CXX="$(command -v "$cxxCompiler")" | ||
else | ||
Write-PipelineTelemetryError -category "Build" "No usable version of $compiler found." | ||
exit 1 | ||
fi | ||
else | ||
if [ "$compiler" = "clang" ] && [ "$majorVersion" -lt 5 ]; then | ||
if [ "$build_arch" = "arm" ] || [ "$build_arch" = "armel" ]; then | ||
if command -v "$compiler" > /dev/null; then | ||
Write-PipelineTelemetryError -category "Build" -type "warning" "Found clang version $majorVersion which is not supported on arm/armel architectures, falling back to use clang from PATH." | ||
export CC="$(command -v "$compiler")" | ||
export CXX="$(command -v "$cxxCompiler")" | ||
else | ||
Write-PipelineTelemetryError -category "Build" "Found clang version $majorVersion which is not supported on arm/armel architectures, and there is no clang in PATH." | ||
exit 1 | ||
fi | ||
fi | ||
fi | ||
fi | ||
else | ||
desired_version="$(check_version_exists "$majorVersion" "$minorVersion")" | ||
if [ "$desired_version" = "-1" ]; then | ||
Write-PipelineTelemetryError -category "Build" "Could not find specific version of $compiler: $majorVersion $minorVersion." | ||
exit 1 | ||
fi | ||
fi | ||
|
||
if [ -z "$CC" ]; then | ||
export CC="$(command -v "$compiler$desired_version")" | ||
export CXX="$(command -v "$cxxCompiler$desired_version")" | ||
if [ -z "$CXX" ]; then export CXX="$(command -v "$cxxCompiler")"; fi | ||
fi | ||
else | ||
if [ ! -f "$CLR_CC" ]; then | ||
Write-PipelineTelemetryError -category "Build" "CLR_CC is set but path '$CLR_CC' does not exist" | ||
exit 1 | ||
fi | ||
export CC="$CLR_CC" | ||
export CXX="$CLR_CXX" | ||
fi | ||
|
||
if [ -z "$CC" ]; then | ||
Write-PipelineTelemetryError -category "Build" "Unable to find $compiler." | ||
exit 1 | ||
fi | ||
|
||
export CCC_CC="$CC" | ||
export CCC_CXX="$CXX" | ||
export SCAN_BUILD_COMMAND="$(command -v "scan-build$desired_version")" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters