aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/core.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-01-14 20:48:01 -0600
committerSean Hall <r.sean.hall@gmail.com>2022-01-16 10:30:28 -0600
commitabe316b80fae80eba54b0b79e76b6362105fa098 (patch)
tree699290ccc7e924a5ef498e487924834c1018b80e /src/burn/engine/core.cpp
parent47bca2dc51525fcad86f325278b14953ac5b137e (diff)
downloadwix-abe316b80fae80eba54b0b79e76b6362105fa098.tar.gz
wix-abe316b80fae80eba54b0b79e76b6362105fa098.tar.bz2
wix-abe316b80fae80eba54b0b79e76b6362105fa098.zip
Refactor some dependency detection.
* Run DependencyDetect earlier * Do package dependency checking during each package/related bundle
Diffstat (limited to 'src/burn/engine/core.cpp')
-rw-r--r--src/burn/engine/core.cpp27
1 files changed, 9 insertions, 18 deletions
diff --git a/src/burn/engine/core.cpp b/src/burn/engine/core.cpp
index 8a181e7c..d70810f2 100644
--- a/src/burn/engine/core.cpp
+++ b/src/burn/engine/core.cpp
@@ -342,21 +342,15 @@ extern "C" HRESULT CoreDetect(
342 hr = SearchesExecute(&pEngineState->searches, &pEngineState->variables); 342 hr = SearchesExecute(&pEngineState->searches, &pEngineState->variables);
343 ExitOnFailure(hr, "Failed to execute searches."); 343 ExitOnFailure(hr, "Failed to execute searches.");
344 344
345 hr = DependencyDetectBundle(&pEngineState->dependencies, &pEngineState->registration);
346 ExitOnFailure(hr, "Failed to detect the dependencies.");
347
345 // Load all of the related bundles. 348 // Load all of the related bundles.
346 hr = RegistrationDetectRelatedBundles(&pEngineState->registration); 349 hr = RegistrationDetectRelatedBundles(&pEngineState->registration);
347 ExitOnFailure(hr, "Failed to detect related bundles."); 350 ExitOnFailure(hr, "Failed to detect related bundles.");
348 351
349 hr = DependencyDetectProviderKeyBundleId(&pEngineState->registration); 352 hr = DetectForwardCompatibleBundles(&pEngineState->userExperience, &pEngineState->registration);
350 if (SUCCEEDED(hr)) 353 ExitOnFailure(hr, "Failed to detect forward compatible bundle.");
351 {
352 hr = DetectForwardCompatibleBundles(&pEngineState->userExperience, &pEngineState->registration);
353 ExitOnFailure(hr, "Failed to detect forward compatible bundle.");
354 }
355 else if (E_NOTFOUND == hr)
356 {
357 hr = S_OK;
358 }
359 ExitOnFailure(hr, "Failed to detect provider key bundle id.");
360 354
361 // Report the related bundles. 355 // Report the related bundles.
362 hr = DetectReportRelatedBundles(&pEngineState->userExperience, &pEngineState->registration, pEngineState->command.relationType, &pEngineState->registration.fEligibleForCleanup); 356 hr = DetectReportRelatedBundles(&pEngineState->userExperience, &pEngineState->registration, pEngineState->command.relationType, &pEngineState->registration.fEligibleForCleanup);
@@ -398,9 +392,6 @@ extern "C" HRESULT CoreDetect(
398 } 392 }
399 } 393 }
400 394
401 hr = DependencyDetect(&pEngineState->dependencies, &pEngineState->packages, &pEngineState->registration);
402 ExitOnFailure(hr, "Failed to detect the dependencies.");
403
404 // Log the detected states. 395 // Log the detected states.
405 for (DWORD iPackage = 0; iPackage < pEngineState->packages.cPackages; ++iPackage) 396 for (DWORD iPackage = 0; iPackage < pEngineState->packages.cPackages; ++iPackage)
406 { 397 {
@@ -2073,19 +2064,19 @@ static HRESULT DetectPackage(
2073 switch (pPackage->type) 2064 switch (pPackage->type)
2074 { 2065 {
2075 case BURN_PACKAGE_TYPE_EXE: 2066 case BURN_PACKAGE_TYPE_EXE:
2076 hr = ExeEngineDetectPackage(pPackage, &pEngineState->variables); 2067 hr = ExeEngineDetectPackage(pPackage, &pEngineState->registration, &pEngineState->variables);
2077 break; 2068 break;
2078 2069
2079 case BURN_PACKAGE_TYPE_MSI: 2070 case BURN_PACKAGE_TYPE_MSI:
2080 hr = MsiEngineDetectPackage(pPackage, &pEngineState->userExperience); 2071 hr = MsiEngineDetectPackage(pPackage, &pEngineState->registration, &pEngineState->userExperience);
2081 break; 2072 break;
2082 2073
2083 case BURN_PACKAGE_TYPE_MSP: 2074 case BURN_PACKAGE_TYPE_MSP:
2084 hr = MspEngineDetectPackage(pPackage, &pEngineState->userExperience); 2075 hr = MspEngineDetectPackage(pPackage, &pEngineState->registration, &pEngineState->userExperience);
2085 break; 2076 break;
2086 2077
2087 case BURN_PACKAGE_TYPE_MSU: 2078 case BURN_PACKAGE_TYPE_MSU:
2088 hr = MsuEngineDetectPackage(pPackage, &pEngineState->variables); 2079 hr = MsuEngineDetectPackage(pPackage, &pEngineState->registration, &pEngineState->variables);
2089 break; 2080 break;
2090 2081
2091 default: 2082 default: