\r
# The name of the versioned vulkan dll file is one of the following:\r
#\r
-# vulkan-<majorabi>-<major>-<minor>-<patch>-<prerelease>-<buildno>.dll\r
-# vulkan-<majorabi>-<major>-<minor>-<patch>-<prerelease>.dll\r
+# vulkan-<majorabi>-<major>-<minor>-<patch>-<buildno>-<prerelease>-<prebuildno>\r
+# vulkan-<majorabi>-<major>-<minor>-<patch>-<buildno>-<prerelease>\r
+# vulkan-<majorabi>-<major>-<minor>-<patch>-<buildno>-<prebuildno>\r
# vulkan-<majorabi>-<major>-<minor>-<patch>-<buildno>.dll\r
-# vulkan-<majorabi>-<major>-<minor>-<patch>.dll\r
#\r
-# <majorabi>, <major>, <minor>, <patch>, and <buildno> are 1 to 10 digits.\r
-# <prerelease> is [A-Za-z0-9]*\r
-# If <buildno> is present, it identifies a prerelease, and will be\r
-# considered less recent than one with the same <major>, <minor>, and\r
-# <patch> numbers without the <buildno>.\r
+# <major>, <minor>, <patch>, <buildno> and <prebuildno> are 1 to 10 numeric digits.\r
+# <prerelease> is any combination of alpha and numeric characters.\r
+# If <prerelease> and/or <prebuildno> are present, this identifies a prerelease,\r
+# and the vulkan dll file will be considered less recent than one with the same\r
+# <major>, <minor>, <patch>, <buildno> numbers without the <prerelease> and/or\r
+# <prebuildno>.\r
\r
\r
# We first create an array, with one array element for each vulkan-*dll in\r
# C:\Windows\System32, with each element containing:\r
-# <major>=<minor>=<patch>=<prerelease>=<buildno>=\r
+# <major>=<minor>=<patch>=<buildno>=<prerelease>=<prebuildno>=\r
# filename\r
-# @<major>@<minor>@<patch>@<prerelease>@<buildno>@\r
+# @<major>@<minor>@<patch>@<buildno>@<prerelease>@<prebuildno>@\r
# [Note that the above three lines are one element in the array.]\r
# The build identifiers separated by "=" are suitable for sorting, i.e.\r
-# expanded to 10 digits with leading 0s. If <prerelease> or <buildno> are\r
-# not specified, 10 z characters are substituted for them, so that they sort\r
+# expanded to 10 digits with leading 0s. If <prerelease> or <prebuildno> are\r
+# not specified, "zzzzzzzzzz" is substituted for them, so that they sort\r
# to a position after those that do specify them.\r
# The build identifiers separated by "@" are the original values extracted\r
# from the file name. They are used later to find the path to the SDK\r
$minor=$_.Split('-')[3]\r
$minorOrig=$minor\r
$patch=$_.Split('-')[4]\r
+ $patchOrig=$patch\r
+ $buildno=$_.Split('-')[5]\r
\r
- if ($patch -match ".dll") {\r
- # <prerelease> and <buildno> are not in the name\r
- $patch=$patch -replace ".dll",""\r
- $patchOrig=$patch\r
+ if ($buildno -match ".dll") {\r
+ # <prerelease> and <prebuildno> are not in the name\r
+ $buildno=$buildno -replace ".dll",""\r
+ $buildnoOrig=$buildno\r
$prerelease="z"*10\r
$prereleaseOrig=""\r
- $buildno="z"*10\r
- $buildnoOrig=""\r
+ $prebuildno="z"*10\r
+ $prebuildnoOrig=""\r
} else {\r
\r
# We assume we don't have more than 5 dashes\r
\r
$f=$_ -replace ".dll",""\r
- $patch=$f.Split('-')[4]\r
- $prerelease=$f.Split('-')[5]\r
- $buildno=$f.Split('-')[6]\r
- if ($buildno.Length -eq 0) {\r
+ $buildno=$f.Split('-')[5]\r
+ $prerelease=$f.Split('-')[6]\r
+ $prebuildno=$f.Split('-')[7]\r
+ if ($prebuildno.Length -eq 0) {\r
if ($prerelease -match "^[0-9]") {\r
- # prerelease starts with a digit, it must be the buildno\r
- $buildno=$prerelease\r
+ # prerelease starts with a digit, it must be the prebuildno\r
+ $prebuildno=$prerelease\r
$prerelease=""\r
}\r
}\r
- $patchOrig=$patch\r
$prereleaseOrig=$prerelease\r
- $buildnoOrig=$buildno\r
+ $prebuildnoOrig=$prebuildno\r
\r
if ($prerelease.Length -eq 0) {\r
$prerelease="z"*10\r
}\r
- if ($buildno.Length -eq 0) {\r
- $buildno="z"*10\r
+ if ($prebuildno.Length -eq 0) {\r
+ $prebuildno="z"*10\r
}\r
}\r
\r
$major = $major.padleft(10,'0')\r
$minor = $minor.padleft(10,'0')\r
$patch = $patch.padleft(10,'0')\r
- $prerelease = $prerelease.padleft(10,'0')\r
$buildno = $buildno.padleft(10,'0')\r
+ $prerelease = $prerelease.padleft(10,'0')\r
+ $prebuildno = $prebuildno.padleft(10,'0')\r
\r
# Add a new element to the $VulkanDllList array\r
- $VulkanDllList+="$major=$minor=$patch=$prerelease=$buildno= $_ @$majorOrig@$minorOrig@$patchOrig@$prereleaseOrig@$buildnoOrig@"\r
+ $VulkanDllList+="$major=$minor=$patch=$buildno=$prerelease=$prebuildno= $_ @$majorOrig@$minorOrig@$patch@$buildnoOrig@$prereleaseOrig@$prebuildnoOrig@"\r
}\r
\r
\r
$major=$VulkanDLLList[-1].Split('@')[1]\r
$minor=$VulkanDLLList[-1].Split('@')[2]\r
$patch=$VulkanDLLList[-1].Split('@')[3]\r
- $prerelease=$VulkanDLLList[-1].Split('@')[4]\r
- $buildno=$VulkanDLLList[-1].Split('@')[5]\r
+ $buildno=$VulkanDLLList[-1].Split('@')[4]\r
+ $prerelease=$VulkanDLLList[-1].Split('@')[5]\r
+ $prebuildno=$VulkanDLLList[-1].Split('@')[6]\r
$sdkname="VulkanSDK"+$major + "." + $minor + "." + $patch\r
if ($prerelease -ne "") {\r
$sdkname=$sdkname + "." + $prerelease\r
}\r
- if ($buildno -ne "") {\r
- $sdkname=$sdkname + "." + $buildno\r
+ if ($prebuildno -ne "") {\r
+ $sdkname=$sdkname + "." + $prebuildno\r
}\r
}\r
\r
# Version information
-# Set VERSION_PATCH to:
-# x.pre.y for prereleases
-# a single number for releases
+# Set VERSION_BUILDNO to:
+# x.pre.z for prereleases
+# x for releases
+#
!define PRODUCTNAME "VulkanRT"
!define VERSION_ABI_MAJOR "1"
-!define VERSION_API_MAJOR "0"
-!define VERSION_MINOR "10"
-!define VERSION_PATCH "3.pre.1"
-#!define VERSION_PATCH "1"
-!define PRODUCTVERSION "${VERSION_API_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"
+!define VERSION_API_MAJOR "1"
+!define VERSION_MINOR "0"
+!define VERSION_PATCH "1"
+!define VERSION_BUILDNO "0.pre.1"
+#!define VERSION_BUILDNO "0"
+!define PRODUCTVERSION "${VERSION_API_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_BUILDNO}"
# Includes
!include LogicLib.nsh
SetRegView 64
# Set up version number for file names
- ${StrRep} $0 ${VERSION_PATCH} "." "-"
- StrCpy $FileVersion ${VERSION_ABI_MAJOR}-${VERSION_API_MAJOR}-${VERSION_MINOR}-$0
+ ${StrRep} $0 ${VERSION_BUILDNO} "." "-"
+ StrCpy $FileVersion ${VERSION_ABI_MAJOR}-${VERSION_API_MAJOR}-${VERSION_MINOR}-${VERSION_PATCH}-$0
# Libraries
SetOutPath $WINDIR\System32
WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionABIMajor" ${VERSION_ABI_MAJOR}
WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionAPIMajor" ${VERSION_API_MAJOR}
WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionMinor" ${VERSION_MINOR}
- WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionMinor" ${VERSION_PATCH}
+ WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionMinor" ${VERSION_PATCH}.${VERSION_BUILDNO}
WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "EstimatedSize" ${ESTIMATEDSIZE}
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "DisplayIcon" "$\"$INSTDIR\${ICOFILE}$\""
SetOutPath "$INSTDIR"
# Set up version number for file names
- ${StrRep} $0 ${VERSION_PATCH} "." "-"
- StrCpy $FileVersion ${VERSION_ABI_MAJOR}-${VERSION_API_MAJOR}-${VERSION_MINOR}-$0
+ ${StrRep} $0 ${VERSION_BUILDNO} "." "-"
+ StrCpy $FileVersion ${VERSION_ABI_MAJOR}-${VERSION_API_MAJOR}-${VERSION_MINOR}-${VERSION_PATCH}-$0
# Decrement the number of times we have been installed.
ReadRegDword $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "IC"
Delete /REBOOTOK $WINDIR\System32\vulkaninfo.exe
Delete /REBOOTOK "$WINDIR\System32\vulkaninfo-$FileVersion.exe"
- # Delete vullkan dll files: vulkan-<majorabi>.dll and vulkan-<majorabi>-<major>-<minor>-<patch>.dll
+ # Delete vullkan dll files: vulkan-<majorabi>.dll and vulkan-<majorabi>-<major>-<minor>-<patch>-<buildno>.dll
Delete /REBOOTOK $WINDIR\System32\vulkan-${VERSION_ABI_MAJOR}.dll
- ${StrRep} $0 ${VERSION_PATCH} "." "-"
Delete /REBOOTOK $WINDIR\System32\vulkan-$FileVersion.dll
# Run the ConfigLayersAndVulkanDLL.ps1 script to: