diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-01-14 20:48:01 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-01-16 10:30:28 -0600 |
| commit | abe316b80fae80eba54b0b79e76b6362105fa098 (patch) | |
| tree | 699290ccc7e924a5ef498e487924834c1018b80e /src/burn/engine/core.cpp | |
| parent | 47bca2dc51525fcad86f325278b14953ac5b137e (diff) | |
| download | wix-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.cpp | 27 |
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: |
