31 lines
1023 B
Bash
Executable File
31 lines
1023 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Test for build dependencies
|
|
hash cmake 2>/dev/null || { echo >&2 "No cmake, please run 'sudo apt-get install cmake'"; exit 1; }
|
|
hash g++ 2>/dev/null || { echo >&2 "No g++, please run 'sudo apt-get install g++'"; exit 1; }
|
|
hash dotnet 2>/dev/null || { echo >&2 "No dotnet, please visit https://dotnet.github.io/getting-started/"; exit 1; }
|
|
|
|
TOP="$(pwd)/src/Microsoft.PowerShell.Linux.Host"
|
|
|
|
# Test for lock file
|
|
test -r "$TOP/project.lock.json" || { echo >&2 "Please run 'dotnet restore' to download .NET Core packages"; exit 2; }
|
|
|
|
# Ensure output directory is made
|
|
BIN="$(pwd)/bin"
|
|
mkdir -p "$BIN"
|
|
|
|
# Build native library and deploy to bin
|
|
pushd src/libpsl-native
|
|
cmake -DCMAKE_BUILD_TYPE=Debug .
|
|
make -j
|
|
make test
|
|
popd
|
|
|
|
test -r $TOP/libpsl-native.* || { echo >&2 "Compilation of libpsl-native failed"; exit 3; }
|
|
|
|
# Publish PowerShell to bin, with LINUX defined through a configuration
|
|
dotnet publish --output "$BIN" --configuration Linux "$TOP"
|
|
|
|
# Fix permissions for packaging
|
|
chmod -R go=u "$BIN"
|