Modifying the build process for multi-phased builds

About this task

The regular build process is described in Following the build process.

The modified build process for external projects is a multi-phase build. > ccm project_grouping -thaw "All X/1.0 Integration Testing Projects"

Project hierarchies that contain external projects cannot be completely updated right away because the new products you want to select may not exist until the hierarchy is partially built. (If the products are in a non-writable state before the build, new versions will be checked out. Those new versions need to be selected into the external project after the build is complete.) Portions of the hierarchy need to be updated and built in phases.

To prevent selecting new tasks, clear auto-update on the project grouping after the first update, then set auto-update in the middle of this multi-phase build on the project grouping after the last update. The following example shows you how to do this:

Procedure

  1. Refresh and freeze your project grouping.
    1. Update the query folder by refreshing the project grouping.

      Right-click over the project grouping and point to Update, then select Baseline & Tasks.

    2. Disable auto-update for the project grouping.

      Right-click over the project grouping and clear Automatically Update Baseline & Tasks.

  2. From the CLI, refresh and freeze your project grouping.
    1. Set your role to build_mgr.

      > ccm set role build_mgrccm set role build_mgr

    2. Update the query folder by refreshing the project grouping.

      > ccm project_grouping -refresh "All X/1.0 Integration Testing Projects"ccm project_grouping -refresh "All X/1.0 Integration Testing Projects"

    3. Disable auto-refresh for the project grouping.

      > ccm project_grouping -freeze "All X/1.0 Integration Testing Projects"ccm project_grouping -freeze "All X/1.0 Integration Testing Projects"

  3. Update all low-level projects (such as library projects) whose products will be used in external projects.
  4. Show and resolve conflicts.
  5. Build all products to be used in external projects (i.e., all the projects updated in 3).
  6. Update all projects not updated in 3, including external projects.

    If you are building installation projects, exclude those now. You will update them later in Modifying the build process for installation projects.

    Note: All the products that were built in 5 should be selected in the external projects by this update.
  7. Show and resolve conflicts.
  8. Build all remaining products (i.e., the projects updated in 6).
  9. Prepare an installation area or a CD.
  10. Test the software.
  11. Create a baseline to check in products and external projects.
  12. After the last update, right-click over the project grouping and set Automatically Update Baseline & Tasks.

    First the low-level projects, such as libraries, are updated and built. Next the external projects and the high-level projects that use them, such as executables, are updated, then the high-level projects can be built.


Feedback