2
0
Эх сурвалжийг харах

Created new scripts for preparing and building borg

Jürg Rast 5 жил өмнө
parent
commit
f0b74146da

+ 1 - 0
.gitignore

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

+ 0 - 20
scripts/buildwin.bat

@@ -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 - 0
scripts/win-build.ps1

@@ -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

+ 15 - 0
scripts/win-download-openssl.ps1

@@ -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

+ 18 - 0
scripts/win-setup-build-env.ps1

@@ -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 )