Welcome to mirror list, hosted at ThFree Co, Russian Federation.

build-managed.sh « buildscripts - github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5a0970eb258eca8d16c222fdb08886f8ca9a976d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/usr/bin/env bash

scriptRoot="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

if [ "$BUILDVARS_DONE" != 1 ]; then
    . $scriptRoot/buildvars-setup.sh $*
fi

# Prepare the system for building

prepare_managed_build()
{
    # Run Init-Tools to restore BuildTools and ToolRuntime
    $__ProjectRoot/init-tools.sh

    # Tell nuget to always use repo-local nuget package cache. The "dotnet restore" invocations use the --packages
    # argument, but there are a few commands in publish and tests that do not.
    export NUGET_PACKAGES=$__packageroot

    echo "Using CLI tools version:"
    ls "$__dotnetclipath/sdk"
}

build_managed_corert()
{
    __buildproj=$__ProjectRoot/build.proj
    __buildlog=$__ProjectRoot/msbuild.$__BuildArch.log

    if [ -z "${ToolchainMilestone}" ]; then
        ToolchainMilestone=testing
    fi

    __buildarch="$__BuildArch"
    if [ "$__buildarch" = "armel" ]; then
        __buildarch=arm
        __ExtraMsBuildArgs="$__ExtraMsBuildArgs /p:BinDirPlatform=armel"
    fi

    $__ProjectRoot/Tools/msbuild.sh "$__buildproj" /m /nologo /verbosity:minimal "/fileloggerparameters:Verbosity=normal;LogFile=$__buildlog" /t:Build /p:RepoPath=$__ProjectRoot /p:RepoLocalBuild="true" /p:RelativeProductBinDir=$__RelativeProductBinDir /p:CleanedTheBuild=$__CleanBuild /p:NuPkgRid=$__NugetRuntimeId /p:TestNugetRuntimeId=$__NugetRuntimeId /p:OSGroup=$__BuildOS /p:Configuration=$__BuildType /p:Platform=$__buildarch /p:COMPUTERNAME=$(hostname) /p:USERNAME=$(id -un) /p:ToolchainMilestone=${ToolchainMilestone} $__UnprocessedBuildArgs $__ExtraMsBuildArgs
    export BUILDERRORLEVEL=$?

    echo

    # Pull the build summary from the log file
    tail -n 4 "$__buildlog"
    echo Build Exit Code = $BUILDERRORLEVEL
    if [ $BUILDERRORLEVEL != 0 ]; then
        exit $BUILDERRORLEVEL
    fi
}

# TODO It's a temporary decision because of there are no armel tizen nuget packages getting published today

get_official_cross_builds()
{
    if [ $__CrossBuild == 1 ]; then
        __corefxsite="https://ci.dot.net/job/dotnet_corefx/job/master/view/Official%20Builds/job/"
        __coreclrsite="https://ci.dot.net/job/dotnet_coreclr/job/master/view/Official%20Builds/job/"
        __corefxsource=
        __coreclrsource=
        __buildtype=
        if [ $__BuildType = "Debug" ]; then
            __buildtype="debug"
        else
            __buildtype="release"
        fi
        case $__BuildArch in
            arm)
            ;;
            arm64)
            ;;
            armel)
                ID=
                if [ -e $ROOTFS_DIR/etc/os-release ]; then
                    source $ROOTFS_DIR/etc/os-release
                fi
                if [ "$ID" = "tizen" ]; then
                   __corefxsource="tizen_armel_cross_${__buildtype}/lastSuccessfulBuild/artifact/bin/build.tar.gz"
                   __coreclrsource="armel_cross_${__buildtype}_tizen/lastSuccessfulBuild/artifact/bin/Product/Linux.armel.${__BuildType}/libSystem.Globalization.Native.a"
                fi
                ;;
        esac
        if [ -n "${__corefxsource}" ]; then
            wget "${__corefxsite}${__corefxsource}"
            export BUILDERRORLEVEL=$?
            if [ $BUILDERRORLEVEL != 0 ]; then
                exit $BUILDERRORLEVEL
            fi
            tar xvf ./build.tar.gz ./System.Native.a
            mv ./System.Native.a $__ProjectRoot/bin/Product/Linux.${__BuildArch}.${__BuildType}/packaging/publish1/framework
            rm -rf ./build.tar.gz
        fi
        if [ -n ${__coreclrsource} ]; then
            wget "${__coreclrsite}${__coreclrsource}"
            export BUILDERRORLEVEL=$?
            if [ $BUILDERRORLEVEL != 0 ]; then
                exit $BUILDERRORLEVEL
            fi
            mv ./libSystem.Globalization.Native.a $__ProjectRoot/bin/Product/Linux.${__BuildArch}.${__BuildType}/packaging/publish1/framework
        fi
     fi
}

if $__buildmanaged; then

    # Prepare the system

    prepare_managed_build

    # Build the corert native components.

    build_managed_corert

    # Get cross builds from official sites

    get_official_cross_builds

    # Build complete
fi