diff options
author | Bob Arnson <bob@firegiant.com> | 2023-02-09 17:17:58 -0500 |
---|---|---|
committer | Bob Arnson <github@bobs.org> | 2023-02-09 20:45:37 -0500 |
commit | cdb457d593cb09a88e73cdcd9538a66e62610cf1 (patch) | |
tree | 530f1f38c1b6c25826014c8c656fafc32fa1ff1a /src/burn | |
parent | 67994fcad0cc060ae750070ab58319991a9fd8a9 (diff) | |
download | wix-cdb457d593cb09a88e73cdcd9538a66e62610cf1.tar.gz wix-cdb457d593cb09a88e73cdcd9538a66e62610cf1.tar.bz2 wix-cdb457d593cb09a88e73cdcd9538a66e62610cf1.zip |
Add `InstallerInformationalVersion`.
Gets "full" version (with commit id).
Fixes https://github.com/wixtoolset/issues/issues/7200.
Diffstat (limited to 'src/burn')
-rw-r--r-- | src/burn/engine/variable.cpp | 30 | ||||
-rw-r--r-- | src/burn/engine/variable.h | 1 | ||||
-rw-r--r-- | src/burn/test/BurnUnitTest/VariableTest.cpp | 3 |
3 files changed, 32 insertions, 2 deletions
diff --git a/src/burn/engine/variable.cpp b/src/burn/engine/variable.cpp index 9b6fecaf..36dc92e0 100644 --- a/src/burn/engine/variable.cpp +++ b/src/burn/engine/variable.cpp | |||
@@ -193,6 +193,10 @@ static HRESULT InitializeVariableInstallerVersion( | |||
193 | __in DWORD_PTR dwpData, | 193 | __in DWORD_PTR dwpData, |
194 | __inout BURN_VARIANT* pValue | 194 | __inout BURN_VARIANT* pValue |
195 | ); | 195 | ); |
196 | static HRESULT InitializeVariableInstallerInformationalVersion( | ||
197 | __in DWORD_PTR dwpData, | ||
198 | __inout BURN_VARIANT* pValue | ||
199 | ); | ||
196 | static HRESULT InitializeVariableVersion( | 200 | static HRESULT InitializeVariableVersion( |
197 | __in DWORD_PTR dwpData, | 201 | __in DWORD_PTR dwpData, |
198 | __inout BURN_VARIANT* pValue | 202 | __inout BURN_VARIANT* pValue |
@@ -244,6 +248,7 @@ extern "C" HRESULT VariableInitialize( | |||
244 | {L"FontsFolder", InitializeVariableCsidlFolder, CSIDL_FONTS}, | 248 | {L"FontsFolder", InitializeVariableCsidlFolder, CSIDL_FONTS}, |
245 | {VARIABLE_INSTALLERNAME, InitializeVariableInstallerName, 0}, | 249 | {VARIABLE_INSTALLERNAME, InitializeVariableInstallerName, 0}, |
246 | {VARIABLE_INSTALLERVERSION, InitializeVariableInstallerVersion, 0}, | 250 | {VARIABLE_INSTALLERVERSION, InitializeVariableInstallerVersion, 0}, |
251 | {VARIABLE_INSTALLERINFORMATIONALVERSION, InitializeVariableInstallerInformationalVersion, 0}, | ||
247 | {L"LocalAppDataFolder", InitializeVariableCsidlFolder, CSIDL_LOCAL_APPDATA}, | 252 | {L"LocalAppDataFolder", InitializeVariableCsidlFolder, CSIDL_LOCAL_APPDATA}, |
248 | {VARIABLE_LOGONUSER, InitializeVariableLogonUser, 0}, | 253 | {VARIABLE_LOGONUSER, InitializeVariableLogonUser, 0}, |
249 | {L"MyPicturesFolder", InitializeVariableCsidlFolder, CSIDL_MYPICTURES}, | 254 | {L"MyPicturesFolder", InitializeVariableCsidlFolder, CSIDL_MYPICTURES}, |
@@ -2309,7 +2314,7 @@ LExit: | |||
2309 | #endif | 2314 | #endif |
2310 | 2315 | ||
2311 | static HRESULT InitializeVariable6432Folder( | 2316 | static HRESULT InitializeVariable6432Folder( |
2312 | __in DWORD_PTR dwpData, | 2317 | __in DWORD_PTR dwpData, |
2313 | __inout BURN_VARIANT* pValue | 2318 | __inout BURN_VARIANT* pValue |
2314 | ) | 2319 | ) |
2315 | { | 2320 | { |
@@ -2405,7 +2410,28 @@ static HRESULT InitializeVariableInstallerVersion( | |||
2405 | LPWSTR sczVersion = NULL; | 2410 | LPWSTR sczVersion = NULL; |
2406 | 2411 | ||
2407 | hr = StrAllocStringAnsi(&sczVersion, szVerMajorMinorBuild, 0, CP_ACP); | 2412 | hr = StrAllocStringAnsi(&sczVersion, szVerMajorMinorBuild, 0, CP_ACP); |
2408 | ExitOnFailure(hr, "Failed to copy the engine version."); | 2413 | ExitOnFailure(hr, "Failed to copy the engine version: %hs", szVerMajorMinorBuild); |
2414 | |||
2415 | // set value | ||
2416 | hr = BVariantSetString(pValue, sczVersion, 0, FALSE); | ||
2417 | ExitOnFailure(hr, "Failed to set variant value."); | ||
2418 | |||
2419 | LExit: | ||
2420 | ReleaseStr(sczVersion); | ||
2421 | |||
2422 | return hr; | ||
2423 | } | ||
2424 | |||
2425 | static HRESULT InitializeVariableInstallerInformationalVersion( | ||
2426 | __in DWORD_PTR /*dwpData*/, | ||
2427 | __inout BURN_VARIANT* pValue | ||
2428 | ) | ||
2429 | { | ||
2430 | HRESULT hr = S_OK; | ||
2431 | LPWSTR sczVersion = NULL; | ||
2432 | |||
2433 | hr = StrAllocStringAnsi(&sczVersion, szInformationalVersion, 0, CP_ACP); | ||
2434 | ExitOnFailure(hr, "Failed to copy the engine informational version: %hs", szInformationalVersion); | ||
2409 | 2435 | ||
2410 | // set value | 2436 | // set value |
2411 | hr = BVariantSetString(pValue, sczVersion, 0, FALSE); | 2437 | hr = BVariantSetString(pValue, sczVersion, 0, FALSE); |
diff --git a/src/burn/engine/variable.h b/src/burn/engine/variable.h index 309d7ab9..022683b4 100644 --- a/src/burn/engine/variable.h +++ b/src/burn/engine/variable.h | |||
@@ -13,6 +13,7 @@ const LPCWSTR VARIABLE_DATE = L"Date"; | |||
13 | const LPCWSTR VARIABLE_LOGONUSER = L"LogonUser"; | 13 | const LPCWSTR VARIABLE_LOGONUSER = L"LogonUser"; |
14 | const LPCWSTR VARIABLE_INSTALLERNAME = L"InstallerName"; | 14 | const LPCWSTR VARIABLE_INSTALLERNAME = L"InstallerName"; |
15 | const LPCWSTR VARIABLE_INSTALLERVERSION = L"InstallerVersion"; | 15 | const LPCWSTR VARIABLE_INSTALLERVERSION = L"InstallerVersion"; |
16 | const LPCWSTR VARIABLE_INSTALLERINFORMATIONALVERSION = L"InstallerInformationalVersion"; | ||
16 | const LPCWSTR VARIABLE_REBOOTPENDING = L"RebootPending"; | 17 | const LPCWSTR VARIABLE_REBOOTPENDING = L"RebootPending"; |
17 | 18 | ||
18 | 19 | ||
diff --git a/src/burn/test/BurnUnitTest/VariableTest.cpp b/src/burn/test/BurnUnitTest/VariableTest.cpp index d07e0304..6469849d 100644 --- a/src/burn/test/BurnUnitTest/VariableTest.cpp +++ b/src/burn/test/BurnUnitTest/VariableTest.cpp | |||
@@ -605,6 +605,9 @@ namespace Bootstrapper | |||
605 | VariableGetStringHelper(&variables, L"CommonFiles64Folder"); | 605 | VariableGetStringHelper(&variables, L"CommonFiles64Folder"); |
606 | VariableGetStringHelper(&variables, L"System64Folder"); | 606 | VariableGetStringHelper(&variables, L"System64Folder"); |
607 | } | 607 | } |
608 | |||
609 | Assert::Equal<String^>(wzVerMajorMinorBuild, VariableGetVersionHelper(&variables, L"InstallerVersion")); | ||
610 | Assert::Equal<String^>(wzInformationalVersion, VariableGetVersionHelper(&variables, L"InstallerInformationalVersion")); | ||
608 | } | 611 | } |
609 | finally | 612 | finally |
610 | { | 613 | { |