mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 09:36:30 +00:00
208 lines
6.5 KiB
Plaintext
208 lines
6.5 KiB
Plaintext
[Setup]
|
|
AppName=Azaion Suite
|
|
AppVersion=1.3.2
|
|
DefaultDirName={localappdata}\Azaion\Azaion Suite
|
|
DefaultGroupName=Azaion Suite
|
|
OutputDir=..\
|
|
OutputBaseFilename=AzaionSuiteInstaller
|
|
SetupIconFile=..\dist\logo.ico
|
|
UninstallDisplayName=Azaion Suite
|
|
UninstallDisplayIcon={app}\Azaion.Suite.exe
|
|
Compression=lzma2/fast
|
|
SolidCompression=yes
|
|
|
|
[Languages]
|
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
|
|
|
[Tasks]
|
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
|
|
|
[Files]
|
|
Source: "..\dist\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;
|
|
|
|
[Icons]
|
|
Name: "{group}\Azaion Suite"; Filename: "{app}\Azaion.Suite.exe"
|
|
Name: "{commondesktop}\Azaion Suite"; Filename: "{app}\Azaion.Suite.exe"; Tasks: desktopicon
|
|
|
|
[Constants]
|
|
CUDA12_URL=https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_571.96_windows.exe
|
|
CUDNN9_URL=https://developer.download.nvidia.com/compute/cudnn/9.7.1/local_installers/cudnn_9.7.1_windows.exe
|
|
|
|
function GetEnvironmentVariable(const Name: string): string;
|
|
var
|
|
Buffer: array[0..2047] of Char;
|
|
Size: DWORD;
|
|
begin
|
|
Size := SizeOf(Buffer) - 1;
|
|
if GetEnvironmentVariableW(PChar(Name), Buffer, Size) = 0 then
|
|
Result := ''
|
|
else
|
|
Result := Buffer;
|
|
end;
|
|
|
|
function CheckCUDAGPU(): Boolean;
|
|
var
|
|
ResultCode: Integer;
|
|
Output: string;
|
|
GPUInfo: string;
|
|
begin
|
|
Result := False;
|
|
if not Exec('wmic', 'path win32_VideoController get name, caption', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
|
|
begin
|
|
MsgBox('Error checking GPU information.', mbError, MB_OK);
|
|
Exit;
|
|
end;
|
|
|
|
Output := GetShellOutput('wmic path win32_VideoController get name, caption');
|
|
Output := LowerCase(Output);
|
|
|
|
if (Pos('nvidia', Output) > 0) or (Pos('amd', Output) > 0) then
|
|
Result := True
|
|
else
|
|
MsgBox('No CUDA-compatible GPU detected. This application requires a CUDA-capable GPU to run.', mbError, MB_OK);
|
|
end;
|
|
|
|
function CheckCUDA12(): Boolean;
|
|
var
|
|
CUDA_PATH: string;
|
|
begin
|
|
Result := False;
|
|
CUDA_PATH := GetEnvironmentVariable('CUDA_PATH');
|
|
if CUDA_PATH <> '' then
|
|
Result := True
|
|
else
|
|
MsgBox('CUDA 12.x is not detected. Please ensure CUDA Toolkit 12.x is installed and CUDA_PATH environment variable is set.', mbError, MB_OK);
|
|
end;
|
|
|
|
function CheckcuDNN9(): Boolean;
|
|
var
|
|
ResultCode: Integer;
|
|
Output: string;
|
|
begin
|
|
Result := False;
|
|
if not Exec('where', 'cudnn*', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
|
|
begin
|
|
MsgBox('Error checking for cuDNN.', mbError, MB_OK);
|
|
Exit;
|
|
end;
|
|
|
|
Output := GetShellOutput('where cudnn*');
|
|
Output := LowerCase(Output);
|
|
|
|
if Pos('v9', Output) > 0 then
|
|
Result := True
|
|
else
|
|
MsgBox('cuDNN 9.x is not detected. Please ensure cuDNN 9.x is installed and accessible in your system path.', mbError, MB_OK);
|
|
end;
|
|
|
|
function DownloadFileSilent(const URL, LocalFile: string): Boolean;
|
|
var
|
|
ResultCode: Integer;
|
|
begin
|
|
Result := URLDownloadToFile(nil, PChar(URL), PChar(LocalFile), 0, nil) = 0;
|
|
if not Result then
|
|
MsgBox('Error downloading file from: ' + URL, mbError, MB_OK);
|
|
end;
|
|
|
|
function InstallExecutableSilent(const ExecutablePath: string; const Parameters: string): Boolean;
|
|
var
|
|
ResultCode: Integer;
|
|
begin
|
|
Result := Exec(ExecutablePath, Parameters, '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
if not Result then
|
|
MsgBox('Error executing: ' + ExecutablePath, mbError, MB_OK);
|
|
end;
|
|
|
|
procedure CurStepChanged(CurStep: TSetupStep);
|
|
var
|
|
NeedsCUDA12, NeedscuDNN9: Boolean;
|
|
CUDA12InstallerURL, cuDNN9InstallerURL, CUDA12InstallerLocal, cuDNN9InstallerLocal: string;
|
|
DownloadSuccess, InstallSuccess: Boolean;
|
|
begin
|
|
if CurStep = ssInstall then
|
|
begin
|
|
if not CheckCUDAGPU() then
|
|
begin
|
|
Abort();
|
|
Exit;
|
|
end;
|
|
|
|
NeedsCUDA12 := not CheckCUDA12();
|
|
NeedscuDNN9 := not CheckcuDNN9();
|
|
|
|
if NeedsCUDA12 or NeedscuDNN9 then
|
|
begin
|
|
SuppressMessages(True);
|
|
SuppressMovieModalMessages(True);
|
|
|
|
MsgBox('Required dependencies (CUDA and/or cuDNN) are missing. Installer will attempt to download and install them silently.', mbInformation, MB_OK);
|
|
|
|
CUDA12InstallerURL := '{const:CUDA12_URL}';
|
|
cuDNN9InstallerURL := '{const:CUDNN9_URL}';
|
|
CUDA12InstallerLocal := ExpandConstant('{tmp}\cuda_installer.exe');
|
|
cuDNN9InstallerLocal := ExpandConstant('{tmp}\cudnn_installer.exe');
|
|
|
|
if NeedsCUDA12 then
|
|
begin
|
|
Log('Downloading CUDA 12 installer...');
|
|
if DownloadFileSilent(CUDA12InstallerURL, CUDA12InstallerLocal) then
|
|
begin
|
|
Log('Installing CUDA 12 silently...');
|
|
if InstallExecutableSilent(CUDA12InstallerLocal, '-s') then
|
|
Log('CUDA 12 installed successfully.')
|
|
else
|
|
begin
|
|
Log('CUDA 12 installation failed.');
|
|
MsgBox('CUDA 12 installation failed. Please install CUDA Toolkit 12.x manually and restart the installer.', mbCriticalError, MB_OK);
|
|
Abort();
|
|
Exit;
|
|
end;
|
|
else
|
|
begin
|
|
MsgBox('Failed to download CUDA 12 installer. Please download and install CUDA Toolkit 12.x manually and restart the installer.', mbCriticalError, MB_OK);
|
|
Abort();
|
|
Exit;
|
|
end;
|
|
end;
|
|
|
|
if NeedscuDNN9 then
|
|
begin
|
|
Log('Downloading cuDNN 9 installer...');
|
|
if DownloadFileSilent(cuDNN9InstallerURL, cuDNN9InstallerLocal) then
|
|
begin
|
|
Log('Installing cuDNN 9 silently...');
|
|
if InstallExecutableSilent(cuDNN9InstallerLocal, '-s') then
|
|
Log('cuDNN 9 installed successfully.')
|
|
else
|
|
begin
|
|
Log('cuDNN 9 installation failed.');
|
|
MsgBox('cuDNN 9 installation failed. Please install cuDNN 9.x manually and restart the installer.', mbCriticalError, MB_OK);
|
|
Abort();
|
|
Exit;
|
|
end;
|
|
else
|
|
begin
|
|
MsgBox('Failed to download cuDNN 9 installer. Please download and install cuDNN 9.x manually and restart the installer.', mbCriticalError, MB_OK);
|
|
Abort();
|
|
Exit;
|
|
end;
|
|
end;
|
|
|
|
SuppressMessages(False);
|
|
SuppressMovieModalMessages(False);
|
|
|
|
if NeedsCUDA12 or NeedscuDNN9 then
|
|
begin
|
|
MsgBox('CUDA and cuDNN dependencies installation completed.', mbInformation, MB_OK);
|
|
if not CheckCUDA12() or not CheckcuDNN9() then
|
|
MsgBox('Dependencies installation finished, but still not detected correctly. Please verify your CUDA and cuDNN installation.', mbWarning, MB_OK);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure InitializeSetup();
|
|
begin
|
|
end;
|
|
|
|
[UninstallRun] |