mirror of
https://github.com/nod-ai/SHARK-Studio.git
synced 2026-01-06 20:43:50 -05:00
96 lines
2.7 KiB
PowerShell
96 lines
2.7 KiB
PowerShell
<#
|
|
.SYNOPSIS
|
|
A script to update and install the AMDSHARK runtime and its dependencies.
|
|
|
|
.DESCRIPTION
|
|
This script updates and installs the AMDSHARK runtime and its dependencies.
|
|
It checks the Python version installed and installs any required build
|
|
dependencies into a Python virtual environment.
|
|
If that environment does not exist, it creates it.
|
|
|
|
.PARAMETER update-src
|
|
git pulls latest version
|
|
|
|
.PARAMETER force
|
|
removes and recreates venv to force update of all dependencies
|
|
|
|
.EXAMPLE
|
|
.\setup_venv.ps1 --force
|
|
|
|
.EXAMPLE
|
|
.\setup_venv.ps1 --update-src
|
|
|
|
.INPUTS
|
|
None
|
|
|
|
.OUTPUTS
|
|
None
|
|
|
|
#>
|
|
|
|
param([string]$arguments)
|
|
|
|
if ($arguments -eq "--update-src"){
|
|
git pull
|
|
}
|
|
|
|
if ($arguments -eq "--force"){
|
|
if (Test-Path env:VIRTUAL_ENV) {
|
|
Write-Host "deactivating..."
|
|
Deactivate
|
|
}
|
|
|
|
if (Test-Path .\amdshark.venv\) {
|
|
Write-Host "removing and recreating venv..."
|
|
Remove-Item .\amdshark.venv -Force -Recurse
|
|
if (Test-Path .\amdshark.venv\) {
|
|
Write-Host 'could not remove .\amdshark-venv - please try running ".\setup_venv.ps1 --force" again!'
|
|
exit 1
|
|
}
|
|
}
|
|
}
|
|
|
|
# redirect stderr into stdout
|
|
$p = &{python -V} 2>&1
|
|
# check if an ErrorRecord was returned
|
|
$version = if($p -is [System.Management.Automation.ErrorRecord])
|
|
{
|
|
# grab the version string from the error message
|
|
$p.Exception.Message
|
|
}
|
|
else
|
|
{
|
|
# otherwise return complete Python list
|
|
$ErrorActionPreference = 'SilentlyContinue'
|
|
$PyVer = py --list
|
|
}
|
|
|
|
# deactivate any activated venvs
|
|
if ($PyVer -like "*venv*")
|
|
{
|
|
deactivate # make sure we don't update the wrong venv
|
|
$PyVer = py --list # update list
|
|
}
|
|
|
|
Write-Host "Python versions found are"
|
|
Write-Host ($PyVer | Out-String) # formatted output with line breaks
|
|
if (!($PyVer.length -ne 0)) {$p} # return Python --version String if py.exe is unavailable
|
|
if (!($PyVer -like "*3.11*") -and !($p -like "*3.11*")) # if 3.11 is not in any list
|
|
{
|
|
Write-Host "Please install Python 3.11 and try again"
|
|
exit 34
|
|
}
|
|
|
|
Write-Host "Installing Build Dependencies"
|
|
# make sure we really use 3.11 from list, even if it's not the default.
|
|
if ($NULL -ne $PyVer) {py -3.11 -m venv .\amdshark.venv\}
|
|
else {python -m venv .\amdshark.venv\}
|
|
.\amdshark.venv\Scripts\activate
|
|
python -m pip install --upgrade pip
|
|
pip install wheel
|
|
pip install --pre -r requirements.txt
|
|
pip install --force-reinstall https://github.com/nod-ai/SRT/releases/download/candidate-20240528.279/iree_compiler-20240528.279-cp311-cp311-win_amd64.whl https://github.com/nod-ai/SRT/releases/download/candidate-20240528.279/iree_runtime-20240528.279-cp311-cp311-win_amd64.whl
|
|
pip install -e .
|
|
|
|
Write-Host "Source your venv with ./amdshark.venv/Scripts/activate"
|