Created new scripts for preparing and building borg

This commit is contained in:
Jürg Rast 2019-09-07 00:02:23 +02:00
parent b00559a5b9
commit f0b74146da
5 changed files with 52 additions and 20 deletions

1
.gitignore vendored
View File

@ -2,6 +2,7 @@ MANIFEST
docs/_build
build
dist
external
borg-env
.tox
src/borg/compress.c

View File

@ -1,20 +0,0 @@
REM Use the downloaded OpenSSL, for all other libraries the bundled version is used.
REM On Appveyor different OpenSSL versions are available, therefore the directory contains the version information.
set BORG_OPENSSL_PREFIX=C:\OpenSSL-v111-Win64
set BORG_USE_BUNDLED_B2=YES
set BORG_USE_BUNDLED_LZ4=YES
set BORG_USE_BUNDLED_ZSTD=YES
set BORG_USE_BUNDLED_XXHASH=YES
REM Somehow on my machine rc.exe was not found. Adding the Windows Kit to the path worked.
set PATH=%PATH%;C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64
REM Run the build in the project directory.
SET WORKPATH=%~dp0\..
pushd %WORKPATH%
python setup.py clean
pip install -v -e .
popd

18
scripts/win-build.ps1 Normal file
View File

@ -0,0 +1,18 @@
# Build a wheel and single file executable
# Configure the build environment
& $PSScriptRoot\win-setup-build-env.ps1
# Clean the old build
python setup.py clean
# Build the extension inplace
python setup.py build_ext --inplace
# Run pip install to install install_requires of borg.
pip install -v -e .
# Build the wheel
python setup.py bdist_wheel
pyinstaller -y scripts/borg.exe.spec

View File

@ -0,0 +1,15 @@
# Download and extract the prebuilt openssl libraries provided by the python developers.
# The file is extracted to the .\external directory.
$url = "https://github.com/python/cpython-bin-deps/archive/openssl-bin-1.1.1c.zip"
$dest = "external"
$ErrorActionPreference = "Stop"
Write-Output "Downloading OpenSSL from cpython-bin-deps repository ..."
Invoke-WebRequest $url -OutFile openssl.zip
Write-Output "Extracting OpenSSL"
Expand-Archive -Path openssl.zip -DestinationPath $dest -Force
Remove-Item -Path openssl.zip

View File

@ -0,0 +1,18 @@
# Configure the environment such that borg can be built and run.
# Note that building borg requires OpenSSL which is not available by default.
# Use the win-download-openssl.ps1 script to get correct OpenSSL version.
$opensslPath = Resolve-Path "$PSScriptRoot\..\external\cpython-bin-deps-openssl-bin-1.1.1c\$env:PROCESSOR_ARCHITECTURE"
if(!(Test-Path $opensslPath)) {
Write-Host "OpenSSL not found! Please run win-download-openssl.ps1 and check if your platform is supported."
exit
}
$env:BORG_OPENSSL_PREFIX = $opensslPath
$env:BORG_USE_BUNDLED_B2 = "YES"
$env:BORG_USE_BUNDLED_LZ4 = "YES"
$env:BORG_USE_BUNDLED_ZSTD = "YES"
$env:BORG_USE_BUNDLED_XXHASH = "YES"
Write-Host "Environment configured for borg. The following variables where set:"
Write-Host ( Get-ChildItem Env: | Where-Object { $_.Name.StartsWith("BORG_") } | Out-String )