diff options
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 12 | ||||
-rwxr-xr-x | build.sh | 59 |
3 files changed, 70 insertions, 7 deletions
@@ -1,6 +1,6 @@ pkgbase = powershell pkgdesc = A cross-platform automation and configuration tool/framework (latest release) - pkgver = 6.0.0.beta.6 + pkgver = 6.0.0.beta.7 pkgrel = 1 url = https://github.com/PowerShell/PowerShell install = powershell.install @@ -10,12 +10,14 @@ pkgbase = powershell makedepends = cmake makedepends = dotnet-sdk-2.0 depends = icu - source = powershell::git+https://github.com/PowerShell/PowerShell.git#tag=v6.0.0-beta.6 + source = powershell::git+https://github.com/PowerShell/PowerShell.git#tag=v6.0.0-beta.7 source = pester::git+https://github.com/PowerShell/psl-pester.git#branch=develop source = googletest::git+https://github.com/google/googletest.git + source = build.sh md5sums = SKIP md5sums = SKIP md5sums = SKIP + md5sums = ae733aaf023f7d07e6ed9e8fffcd8ff1 pkgname = powershell @@ -2,7 +2,7 @@ # Contributor: Max Liebkies <mail@maxliebkies.de> pkgname=powershell -_pkgver=6.0.0-beta.6 +_pkgver=6.0.0-beta.7 pkgver=${_pkgver/-/.} pkgrel=1 pkgdesc="A cross-platform automation and configuration tool/framework (latest release)" @@ -13,10 +13,12 @@ makedepends=('git' 'cmake' 'dotnet-sdk-2.0') depends=('icu') source=($pkgname::git+https://github.com/PowerShell/PowerShell.git#tag=v$_pkgver pester::git+https://github.com/PowerShell/psl-pester.git#branch=develop - googletest::git+https://github.com/google/googletest.git) + googletest::git+https://github.com/google/googletest.git + build.sh) md5sums=('SKIP' 'SKIP' - 'SKIP') + 'SKIP' + 'ae733aaf023f7d07e6ed9e8fffcd8ff1') install=powershell.install prepare() { @@ -27,7 +29,7 @@ prepare() { git submodule update git clean -dfx - sed -i -e 's/hash powershell/\/bin\/false/g' build.sh + sed -i -e 's/hash powershell/\/bin\/false/g' ../build.sh } build() { @@ -38,7 +40,7 @@ build() { make -j popd - "$srcdir"/powershell/build.sh + "$srcdir"/build.sh } check() { diff --git a/build.sh b/build.sh new file mode 100755 index 000000000000..33c4d7452cc7 --- /dev/null +++ b/build.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +set -e + +if hash powershell 2>/dev/null; then + echo 'Continuing with `powershell -noprofile -c Start-PSBuild`' + powershell -noprofile -c "Import-Module ./build.psm1; Start-PSBuild" +else + echo 'Continuing with full manual build' + + ## Restore + dotnet restore src/powershell-unix + dotnet restore src/ResGen + dotnet restore src/TypeCatalogGen + + ## Setup the build target to gather dependency information + targetFile="$(pwd)/src/Microsoft.PowerShell.SDK/obj/Microsoft.PowerShell.SDK.csproj.TypeCatalog.targets" + cat > $targetFile <<-"EOF" +<Project> + <Target Name="_GetDependencies" + DependsOnTargets="ResolveAssemblyReferencesDesignTime"> + <ItemGroup> + <_RefAssemblyPath Include="%(_ReferencesFromRAR.ResolvedPath)%3B" Condition=" '%(_ReferencesFromRAR.Type)' == 'assembly' And '%(_ReferencesFromRAR.PackageName)' != 'Microsoft.Management.Infrastructure' " /> + </ItemGroup> + <WriteLinesToFile File="$(_DependencyFile)" Lines="@(_RefAssemblyPath)" Overwrite="true" /> + </Target> +</Project> +EOF + dotnet msbuild src/Microsoft.PowerShell.SDK/Microsoft.PowerShell.SDK.csproj /t:_GetDependencies "/property:DesignTimeBuild=true;_DependencyFile=$(pwd)/src/TypeCatalogGen/powershell.inc" /nologo + + ## Generate 'powershell.version' + git --git-dir="$(pwd)/.git" describe --dirty --abbrev=60 > "$(pwd)/powershell.version" + + ## create the telemetry flag file + touch "$(pwd)/DELETE_ME_TO_DISABLE_CONSOLEHOST_TELEMETRY" + + ## Generate resource binding C# files + pushd src/ResGen + dotnet run + popd + + ## Generate 'CorePsTypeCatalog.cs' + pushd src/TypeCatalogGen + dotnet run ../Microsoft.PowerShell.CoreCLR.AssemblyLoadContext/CorePsTypeCatalog.cs powershell.inc + popd + + ## Build native component + pushd src/libpsl-native + cmake -DCMAKE_BUILD_TYPE=Debug . + make -j + make test + popd + + ## Build powershell core + rawRid="$(dotnet --info | grep RID)" + rid=${rawRid##* } # retain the part after the last space + dotnet publish --configuration Linux src/powershell-unix/ --output bin --runtime $rid + + echo 'You can run powershell from bin/, but some modules that are normally added by the Restore-PSModule step will not be available.' +fi |