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; |