From 900fae84603d3fd868e1d579030235f0585abc45 Mon Sep 17 00:00:00 2001
From: Dmitry Chapyshev <dmitry@aspia.ru>
Date: Mon, 6 Nov 2023 18:15:34 +0500
Subject: [PATCH] Fixed target directory for x64 installer.

---
 installer/build.cmd   | 15 ++++++++++-----
 installer/client.wxs  |  2 +-
 installer/console.wxs |  2 +-
 installer/host.wxs    |  2 +-
 installer/relay.wxs   |  2 +-
 installer/router.wxs  |  2 +-
 installer/version.wxi |  9 +++++++++
 7 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/installer/build.cmd b/installer/build.cmd
index 712e198452..0d5310da0c 100644
--- a/installer/build.cmd
+++ b/installer/build.cmd
@@ -15,11 +15,16 @@ if "%ASPIA_BIN_DIR%" == "" ( goto :USAGE )
 set SRC_DIR=%ASPIA_SRC_DIR%\installer
 set EN_US_POSTFIX=%ASPIA_VERSION%-%ASPIA_ARCH%
 
+if "%ASPIA_ARCH%" == "x86_64" ( set CANDLE_ARCH=x64 )
+if "%ASPIA_ARCH%" == "x64" ( set CANDLE_ARCH=x64 )
+if "%ASPIA_ARCH%" == "x86" ( set CANDLE_ARCH=x86 )
+
 echo "##################################################"
 echo "Aspia Src Dir: %ASPIA_SRC_DIR%"
 echo "Aspia Bin Dir: %ASPIA_BIN_DIR%"
 echo "Aspia Version: %ASPIA_VERSION%"
 echo "Aspia Arch: %ASPIA_ARCH%"
+echo "Candle Arch: %CANDLE_ARCH%"
 echo "Installer Src Dir: %SRC_DIR%"
 
 goto :MSI
@@ -39,7 +44,7 @@ pushd %SRC_DIR%
 echo "##################################################"
 echo "Creating MSI packages for Aspia Console"
 set CONSOLE_EN_US_MSI=%ASPIA_BIN_DIR%\aspia-console-%EN_US_POSTFIX%.msi
-"%WIX%\bin\candle" -out "%ASPIA_BIN_DIR%\\" -ext WixUtilExtension -ext WixUIExtension console.wxs
+"%WIX%\bin\candle" -out "%ASPIA_BIN_DIR%\\" -arch %CANDLE_ARCH% -ext WixUtilExtension -ext WixUIExtension console.wxs
 "%WIX%\bin\light" -sval -out "%CONSOLE_EN_US_MSI%" -cultures:en-us -ext WixUtilExtension -ext WixUIExtension -loc translations\console.en-us.wxl "%ASPIA_BIN_DIR%\console.wixobj"
 "%WIX%\bin\light" -sval -out "%ASPIA_BIN_DIR%\aspia-console-de-de.msi" -cultures:de-de -ext WixUtilExtension -ext WixUIExtension -loc translations\console.de-de.wxl "%ASPIA_BIN_DIR%\console.wixobj"
 "%WIX%\bin\light" -sval -out "%ASPIA_BIN_DIR%\aspia-console-it-it.msi" -cultures:it-it -ext WixUtilExtension -ext WixUIExtension -loc translations\console.it-it.wxl "%ASPIA_BIN_DIR%\console.wixobj"
@@ -77,7 +82,7 @@ cscript "%ProgramFiles(x86)%\Windows Kits\10\bin\%SDK_VERSION%\x86\wilangid.vbs"
 echo "##################################################"
 echo "Creating MSI packages for Aspia Client"
 set CLIENT_EN_US_MSI=%ASPIA_BIN_DIR%\aspia-client-%EN_US_POSTFIX%.msi
-"%WIX%\bin\candle" -out "%ASPIA_BIN_DIR%\\" -ext WixUtilExtension -ext WixUIExtension client.wxs
+"%WIX%\bin\candle" -out "%ASPIA_BIN_DIR%\\" -arch %CANDLE_ARCH% -ext WixUtilExtension -ext WixUIExtension client.wxs
 "%WIX%\bin\light" -sval -out "%CLIENT_EN_US_MSI%" -cultures:en-us -ext WixUtilExtension -ext WixUIExtension -loc translations\client.en-us.wxl "%ASPIA_BIN_DIR%\client.wixobj"
 "%WIX%\bin\light" -sval -out "%ASPIA_BIN_DIR%\aspia-client-de-de.msi" -cultures:de-de -ext WixUtilExtension -ext WixUIExtension -loc translations\client.de-de.wxl "%ASPIA_BIN_DIR%\client.wixobj"
 "%WIX%\bin\light" -sval -out "%ASPIA_BIN_DIR%\aspia-client-it-it.msi" -cultures:it-it -ext WixUtilExtension -ext WixUIExtension -loc translations\client.it-it.wxl "%ASPIA_BIN_DIR%\client.wixobj"
@@ -115,7 +120,7 @@ cscript "%ProgramFiles(x86)%\Windows Kits\10\bin\%SDK_VERSION%\x86\wilangid.vbs"
 echo "##################################################"
 echo "Creating MSI packages for Aspia Host"
 set HOST_EN_US_MSI=%ASPIA_BIN_DIR%\aspia-host-%EN_US_POSTFIX%.msi
-"%WIX%\bin\candle" -out "%ASPIA_BIN_DIR%\\" -ext WixUtilExtension -ext WixUIExtension host.wxs
+"%WIX%\bin\candle" -out "%ASPIA_BIN_DIR%\\" -arch %CANDLE_ARCH% -ext WixUtilExtension -ext WixUIExtension host.wxs
 "%WIX%\bin\light" -sval -out "%HOST_EN_US_MSI%" -cultures:en-us -ext WixUtilExtension -ext WixUIExtension -loc translations\host.en-us.wxl "%ASPIA_BIN_DIR%\host.wixobj"
 "%WIX%\bin\light" -sval -out "%ASPIA_BIN_DIR%\aspia-host-de-de.msi" -cultures:de-de -ext WixUtilExtension -ext WixUIExtension -loc translations\host.de-de.wxl "%ASPIA_BIN_DIR%\host.wixobj"
 "%WIX%\bin\light" -sval -out "%ASPIA_BIN_DIR%\aspia-host-it-it.msi" -cultures:it-it -ext WixUtilExtension -ext WixUIExtension -loc translations\host.it-it.wxl "%ASPIA_BIN_DIR%\host.wixobj"
@@ -152,12 +157,12 @@ cscript "%ProgramFiles(x86)%\Windows Kits\10\bin\%SDK_VERSION%\x86\wilangid.vbs"
 
 echo "##################################################"
 echo "Creating MSI packages for Aspia Router"
-"%WIX%\bin\candle" -out "%ASPIA_BIN_DIR%\\" -ext WixUtilExtension -ext WixUIExtension router.wxs
+"%WIX%\bin\candle" -out "%ASPIA_BIN_DIR%\\" -arch %CANDLE_ARCH% -ext WixUtilExtension -ext WixUIExtension router.wxs
 "%WIX%\bin\light" -sval -out "%ASPIA_BIN_DIR%\aspia-router-%ASPIA_VERSION%-%ASPIA_ARCH%.msi" -cultures:en-us -ext WixUtilExtension -ext WixUIExtension -loc translations\router.en-us.wxl "%ASPIA_BIN_DIR%\router.wixobj"
 
 echo "##################################################"
 echo "Creating MSI packages for Aspia Relay"
-"%WIX%\bin\candle" -out "%ASPIA_BIN_DIR%\\" -ext WixUtilExtension -ext WixUIExtension relay.wxs
+"%WIX%\bin\candle" -out "%ASPIA_BIN_DIR%\\" -arch %CANDLE_ARCH% -ext WixUtilExtension -ext WixUIExtension relay.wxs
 "%WIX%\bin\light" -sval -out "%ASPIA_BIN_DIR%\aspia-relay-%ASPIA_VERSION%-%ASPIA_ARCH%.msi" -cultures:en-us -ext WixUtilExtension -ext WixUIExtension -loc translations\relay.en-us.wxl "%ASPIA_BIN_DIR%\relay.wixobj"
 
 rem Restore working directory
diff --git a/installer/client.wxs b/installer/client.wxs
index a57e1375e5..29bd875f70 100644
--- a/installer/client.wxs
+++ b/installer/client.wxs
@@ -25,7 +25,7 @@
     <Property Id="ARPPRODUCTICON" Value="aspia.ico" />
 
     <Directory Id="TARGETDIR" Name="SourceDir">
-        <Directory Id="ProgramFilesFolder">
+        <Directory Id="$(var.Program_Files)">
             <Directory Id="VendorProgramFilesFolder" Name="Aspia">
                 <Directory Id="INSTALLLOCATION" Name="Client" />
             </Directory>
diff --git a/installer/console.wxs b/installer/console.wxs
index 0e80581193..3ffe468a13 100644
--- a/installer/console.wxs
+++ b/installer/console.wxs
@@ -25,7 +25,7 @@
     <Property Id="ARPPRODUCTICON" Value="aspia.ico" />
 
     <Directory Id="TARGETDIR" Name="SourceDir">
-        <Directory Id="ProgramFilesFolder">
+        <Directory Id="$(var.Program_Files)">
             <Directory Id="VendorProgramFilesFolder" Name="Aspia">
                 <Directory Id="INSTALLLOCATION" Name="Console" />
             </Directory>
diff --git a/installer/host.wxs b/installer/host.wxs
index 706c16e472..b4af09bacd 100644
--- a/installer/host.wxs
+++ b/installer/host.wxs
@@ -27,7 +27,7 @@
     <Property Id="ARPPRODUCTICON" Value="aspia.ico" />
 
     <Directory Id="TARGETDIR" Name="SourceDir">
-        <Directory Id="ProgramFilesFolder">
+        <Directory Id="$(var.Program_Files)">
             <Directory Id="VendorProgramFilesFolder" Name="Aspia">
                 <Directory Id="INSTALLLOCATION" Name="Host" />
             </Directory>
diff --git a/installer/relay.wxs b/installer/relay.wxs
index ea73a526f8..2f45d09e84 100644
--- a/installer/relay.wxs
+++ b/installer/relay.wxs
@@ -27,7 +27,7 @@
     <Property Id="ARPPRODUCTICON" Value="aspia.ico" />
 
     <Directory Id="TARGETDIR" Name="SourceDir">
-        <Directory Id="ProgramFilesFolder">
+        <Directory Id="$(var.Program_Files)">
             <Directory Id="VendorProgramFilesFolder" Name="Aspia">
                 <Directory Id="INSTALLLOCATION" Name="Relay" />
             </Directory>
diff --git a/installer/router.wxs b/installer/router.wxs
index 0f65fa89cc..d4fd1341d6 100644
--- a/installer/router.wxs
+++ b/installer/router.wxs
@@ -27,7 +27,7 @@
     <Property Id="ARPPRODUCTICON" Value="aspia.ico" />
 
     <Directory Id="TARGETDIR" Name="SourceDir">
-        <Directory Id="ProgramFilesFolder">
+        <Directory Id="$(var.Program_Files)">
             <Directory Id="VendorProgramFilesFolder" Name="Aspia">
                 <Directory Id="INSTALLLOCATION" Name="Router" />
             </Directory>
diff --git a/installer/version.wxi b/installer/version.wxi
index 3cba0f46bc..35c1b6f406 100644
--- a/installer/version.wxi
+++ b/installer/version.wxi
@@ -3,4 +3,13 @@
     <?define Manufacturer="Dmitry Chapyshev"?>
     <?define Version="$(env.ASPIA_VERSION)"?>
     <?define SourceFiles="$(env.ASPIA_BIN_DIR)"?>
+    <?if $(sys.BUILDARCH)="x86"?>
+        <?define Minimum_Version="100"?>
+        <?define Program_Files="ProgramFilesFolder"?>
+    <?elseif $(sys.BUILDARCH)="x64"?>
+        <?define Minimum_Version="200"?>
+        <?define Program_Files="ProgramFiles64Folder"?>
+    <?else?>
+        <?error Unsupported value of sys.BUILDARCH=$(sys.BUILDARCH)?>
+    <?endif?>
 </Include>