diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-03-30 17:08:40 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-04-01 22:06:11 -0500 |
| commit | 386a3578413ba16b3c0615d47870ee44a0e461f6 (patch) | |
| tree | 1dfcea9e5080f1f15cc880aba1541a962426c58b /src/burn/engine/plan.cpp | |
| parent | d97c0d1685ef4c3840776327e76ce25d4dbdbeb1 (diff) | |
| download | wix-386a3578413ba16b3c0615d47870ee44a0e461f6.tar.gz wix-386a3578413ba16b3c0615d47870ee44a0e461f6.tar.bz2 wix-386a3578413ba16b3c0615d47870ee44a0e461f6.zip | |
Implement BundlePackage.
3693
Diffstat (limited to 'src/burn/engine/plan.cpp')
| -rw-r--r-- | src/burn/engine/plan.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/burn/engine/plan.cpp b/src/burn/engine/plan.cpp index cb50b0c9..1d008dba 100644 --- a/src/burn/engine/plan.cpp +++ b/src/burn/engine/plan.cpp | |||
| @@ -292,7 +292,6 @@ extern "C" void PlanUninitializeExecuteAction( | |||
| 292 | break; | 292 | break; |
| 293 | 293 | ||
| 294 | case BURN_EXECUTE_ACTION_TYPE_EXE_PACKAGE: | 294 | case BURN_EXECUTE_ACTION_TYPE_EXE_PACKAGE: |
| 295 | ReleaseStr(pExecuteAction->exePackage.sczIgnoreDependencies); | ||
| 296 | ReleaseStr(pExecuteAction->exePackage.sczAncestors); | 295 | ReleaseStr(pExecuteAction->exePackage.sczAncestors); |
| 297 | ReleaseStr(pExecuteAction->exePackage.sczEngineWorkingDirectory); | 296 | ReleaseStr(pExecuteAction->exePackage.sczEngineWorkingDirectory); |
| 298 | break; | 297 | break; |
| @@ -1181,6 +1180,10 @@ extern "C" HRESULT PlanExecutePackage( | |||
| 1181 | // Add execute actions. | 1180 | // Add execute actions. |
| 1182 | switch (pPackage->type) | 1181 | switch (pPackage->type) |
| 1183 | { | 1182 | { |
| 1183 | case BURN_PACKAGE_TYPE_BUNDLE: | ||
| 1184 | hr = BundlePackageEnginePlanAddPackage(pPackage, pPlan, pLog, pVariables); | ||
| 1185 | break; | ||
| 1186 | |||
| 1184 | case BURN_PACKAGE_TYPE_EXE: | 1187 | case BURN_PACKAGE_TYPE_EXE: |
| 1185 | hr = ExeEnginePlanAddPackage(pPackage, pPlan, pLog, pVariables); | 1188 | hr = ExeEnginePlanAddPackage(pPackage, pPlan, pLog, pVariables); |
| 1186 | break; | 1189 | break; |
| @@ -1506,16 +1509,16 @@ extern "C" HRESULT PlanRelatedBundlesComplete( | |||
| 1506 | 1509 | ||
| 1507 | switch (pPlan->rgExecuteActions[i].type) | 1510 | switch (pPlan->rgExecuteActions[i].type) |
| 1508 | { | 1511 | { |
| 1509 | case BURN_EXECUTE_ACTION_TYPE_RELATED_BUNDLE: | 1512 | case BURN_EXECUTE_ACTION_TYPE_BUNDLE_PACKAGE: |
| 1510 | packageAction = pPlan->rgExecuteActions[i].relatedBundle.action; | 1513 | packageAction = pPlan->rgExecuteActions[i].bundlePackage.action; |
| 1511 | pPackage = &pPlan->rgExecuteActions[i].relatedBundle.pRelatedBundle->package; | 1514 | pPackage = pPlan->rgExecuteActions[i].bundlePackage.pPackage; |
| 1512 | fBundle = TRUE; | 1515 | fBundle = TRUE; |
| 1513 | break; | 1516 | break; |
| 1514 | 1517 | ||
| 1515 | case BURN_EXECUTE_ACTION_TYPE_EXE_PACKAGE: | 1518 | case BURN_EXECUTE_ACTION_TYPE_EXE_PACKAGE: |
| 1516 | packageAction = pPlan->rgExecuteActions[i].exePackage.action; | 1519 | packageAction = pPlan->rgExecuteActions[i].exePackage.action; |
| 1517 | pPackage = pPlan->rgExecuteActions[i].exePackage.pPackage; | 1520 | pPackage = pPlan->rgExecuteActions[i].exePackage.pPackage; |
| 1518 | fBundle = TRUE; | 1521 | fBundle = pPackage->Exe.fBundle; |
| 1519 | break; | 1522 | break; |
| 1520 | 1523 | ||
| 1521 | case BURN_EXECUTE_ACTION_TYPE_MSI_PACKAGE: | 1524 | case BURN_EXECUTE_ACTION_TYPE_MSI_PACKAGE: |
| @@ -2751,6 +2754,10 @@ static HRESULT CalculateExecuteActions( | |||
| 2751 | // Calculate execute actions. | 2754 | // Calculate execute actions. |
| 2752 | switch (pPackage->type) | 2755 | switch (pPackage->type) |
| 2753 | { | 2756 | { |
| 2757 | case BURN_PACKAGE_TYPE_BUNDLE: | ||
| 2758 | hr = BundlePackageEnginePlanCalculatePackage(pPackage); | ||
| 2759 | break; | ||
| 2760 | |||
| 2754 | case BURN_PACKAGE_TYPE_EXE: | 2761 | case BURN_PACKAGE_TYPE_EXE: |
| 2755 | hr = ExeEnginePlanCalculatePackage(pPackage); | 2762 | hr = ExeEnginePlanCalculatePackage(pPackage); |
| 2756 | break; | 2763 | break; |
| @@ -2784,7 +2791,8 @@ static BOOL NeedsCache( | |||
| 2784 | ) | 2791 | ) |
| 2785 | { | 2792 | { |
| 2786 | BOOTSTRAPPER_ACTION_STATE action = fExecute ? pPackage->execute : pPackage->rollback; | 2793 | BOOTSTRAPPER_ACTION_STATE action = fExecute ? pPackage->execute : pPackage->rollback; |
| 2787 | if (BURN_PACKAGE_TYPE_EXE == pPackage->type) // Exe packages require the package for all operations (even uninstall). | 2794 | // TODO: bundles could theoretically use package cache |
| 2795 | if (BURN_PACKAGE_TYPE_BUNDLE == pPackage->type || BURN_PACKAGE_TYPE_EXE == pPackage->type) // Bundle and Exe packages require the package for all operations (even uninstall). | ||
| 2788 | { | 2796 | { |
| 2789 | return BOOTSTRAPPER_ACTION_STATE_NONE != action; | 2797 | return BOOTSTRAPPER_ACTION_STATE_NONE != action; |
| 2790 | } | 2798 | } |
| @@ -2918,6 +2926,10 @@ static void ExecuteActionLog( | |||
| 2918 | LogStringLine(PlanDumpLevel, "%ls action[%u]: RELATED_BUNDLE package id: %ls, action: %hs, ignore dependencies: %ls", wzBase, iAction, pAction->relatedBundle.pRelatedBundle->package.sczId, LoggingActionStateToString(pAction->relatedBundle.action), pAction->relatedBundle.sczIgnoreDependencies); | 2926 | LogStringLine(PlanDumpLevel, "%ls action[%u]: RELATED_BUNDLE package id: %ls, action: %hs, ignore dependencies: %ls", wzBase, iAction, pAction->relatedBundle.pRelatedBundle->package.sczId, LoggingActionStateToString(pAction->relatedBundle.action), pAction->relatedBundle.sczIgnoreDependencies); |
| 2919 | break; | 2927 | break; |
| 2920 | 2928 | ||
| 2929 | case BURN_EXECUTE_ACTION_TYPE_BUNDLE_PACKAGE: | ||
| 2930 | LogStringLine(PlanDumpLevel, "%ls action[%u]: BUNDLE_PACKAGE package id: %ls, action: %hs", wzBase, iAction, pAction->bundlePackage.pPackage->sczId, LoggingActionStateToString(pAction->bundlePackage.action)); | ||
| 2931 | break; | ||
| 2932 | |||
| 2921 | case BURN_EXECUTE_ACTION_TYPE_EXE_PACKAGE: | 2933 | case BURN_EXECUTE_ACTION_TYPE_EXE_PACKAGE: |
| 2922 | LogStringLine(PlanDumpLevel, "%ls action[%u]: EXE_PACKAGE package id: %ls, action: %hs", wzBase, iAction, pAction->exePackage.pPackage->sczId, LoggingActionStateToString(pAction->exePackage.action)); | 2934 | LogStringLine(PlanDumpLevel, "%ls action[%u]: EXE_PACKAGE package id: %ls, action: %hs", wzBase, iAction, pAction->exePackage.pPackage->sczId, LoggingActionStateToString(pAction->exePackage.action)); |
| 2923 | break; | 2935 | break; |
