Installer: 32-bit installer changes to get working on 64-bit system.
authorMark Young <marky@lunarg.com>
Wed, 20 Jan 2016 21:48:21 +0000 (14:48 -0700)
committerMark Young <marky@lunarg.com>
Mon, 25 Jan 2016 23:04:01 +0000 (16:04 -0700)
These changes allow the installation of 32-bit items onto a 64-bit system.

windowsRuntimeInstaller/ConfigLayersAndVulkanDLL.ps1
windowsRuntimeInstaller/InstallerRT.nsi

index e392cc7..63995a9 100644 (file)
@@ -74,7 +74,7 @@ $vulkandll = "vulkan-"+$majorabi+".dll"
 # from the file name. They are used later to find the path to the SDK\r
 # install directory for the given filename.\r
 \r
-function UpdateVulkanSysFolder($dir)\r
+function UpdateVulkanSysFolder([string]$dir, [int]$writeSdkName)\r
 {\r
    # Push the current path on the stack and go to $dir\r
    Push-Location -Path $dir\r
@@ -167,27 +167,35 @@ function UpdateVulkanSysFolder($dir)
         $buildno=$VulkanDLLList[-1].Split('@')[4]\r
         $prerelease=$VulkanDLLList[-1].Split('@')[5]\r
         $prebuildno=$VulkanDLLList[-1].Split('@')[6]\r
-        $sdkname="VulkanSDK"+$major + "." + $minor + "." + $patch + "." + $buildno\r
+        \r
+        $sdktempname="VulkanSDK"+$major + "." + $minor + "." + $patch + "." + $buildno\r
         if ($prerelease -ne "") {\r
-            $sdkname=$sdkname + "." + $prerelease\r
+            $sdktempname=$sdktempname + "." + $prerelease\r
         }\r
         if ($prebuildno -ne "") {\r
-            $sdkname=$sdkname + "." + $prebuildno\r
+            $sdktempname=$sdktempname + "." + $prebuildno\r
         }\r
     }\r
    \r
-   # Return to our previous folder\r
-   Pop-Location\r
+    # Return to our previous folder\r
+    Pop-Location\r
+\r
+    # Only update the overall script-scope SDK name if we're told to\r
+    if ($writeSdkName -ne 0) {\r
+        $script:sdkname = $sdktempname\r
+    }\r
+\r
+    return\r
 }\r
 \r
 # We only care about SYSWOW64 if we're targeting a 64-bit OS\r
 if ($ossize -eq 64) {\r
     # Update the SYSWOW64 Vulkan DLLS/EXEs\r
-    UpdateVulkanSysFolder c:\WINDOWS\SYSWOW64\r
+    UpdateVulkanSysFolder c:\WINDOWS\SYSWOW64 0\r
 }\r
 \r
 # Update the SYSTEM32 Vulkan DLLS/EXEs\r
-UpdateVulkanSysFolder c:\WINDOWS\SYSTEM32\r
+UpdateVulkanSysFolder c:\WINDOWS\SYSTEM32 1\r
 \r
 # Create an array of vulkan sdk install dirs\r
 \r
@@ -202,7 +210,7 @@ Get-ChildItem -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr
            $tmp=$tmp -replace "\\Uninstall.exe.*",""\r
            $tmp=$tmp -replace ".*=.",""\r
            $VulkanSdkDirs+=$tmp\r
-           if ($regkey -eq $sdkname) {\r
+           if ($regkey -eq $script:sdkname) {\r
                # Save away the sdk install dir for the the most recent vulkandll\r
                $mrVulkanDllInstallDir=$tmp\r
            }\r
@@ -239,7 +247,7 @@ if ($ossize -eq 64) {
           $regval=$_\r
           ForEach ($sdkdir in $VulkanSdkDirs) {\r
              if ($regval -like "$sdkdir\*.json") {\r
-                 Remove-ItemProperty -ErrorAction Ignore -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -name $regval\r
+                 Remove-ItemProperty -ErrorAction SilentlyContinue -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -name $regval\r
              }\r
           }\r
       }\r
@@ -260,7 +268,7 @@ if ($mrVulkanDllInstallDir -ne "") {
         New-Item -Force -ErrorAction Ignore -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers | out-null\r
         Get-ChildItem $mrVulkanDllInstallDir\Bin32 -Filter *json |\r
            ForEach-Object {\r
-               New-ItemProperty -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -Name $mrVulkanDllInstallDir\Bin\$_ -PropertyType DWord -Value 0 | out-null\r
+               New-ItemProperty -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -Name $mrVulkanDllInstallDir\Bin32\$_ -PropertyType DWord -Value 0 | out-null\r
            }\r
     }\r
 }\r
index 94adb6d..2748aba 100644 (file)
@@ -34,7 +34,7 @@
 !define VERSION_API_MAJOR "1"
 !define VERSION_MINOR "0"
 !define VERSION_PATCH "1"
-!define VERSION_BUILDNO "0.pre.2"
+!define VERSION_BUILDNO "0.pre.1"
 #!define VERSION_BUILDNO "0"
 !define PRODUCTVERSION "${VERSION_API_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_BUILDNO}"