How To Build CASA Using Build Tool Wrappers

The table of contents below is an outline of the process for building CASA using the build tool wrappers. Click on links in the table of contents for details.

Status: Ready to Test

For reference: Old CASA Build Notes


Before trying to follow these instructions, ensure your CASA development system has been set up as described in:

Chose a workspace

Chose a workspace on the local disk of the build computer. Building on NFS will greatly increase build times.

Create a directory and cd into it. This is where you will install the build tools wrappers and build CASA.

Example: as srankin@casa-dev-07

cd /home/casa-dev-07/srankin/tasks
mkdir updateTrunk
cd updateTrunk

Install Build Tool Wrappers

Follow the installation instructions in the build tool wrapper User's Guide - Installation.

Example: as srankin@casa-dev-07 - continued. See the Jenkins job at Project 0-BuildToolWrappers for the current package version.

curl | tar xzvp

Review the configuration instructions in the build tool wrapper User's Guide - Configuring Build Tool Wrappers to decide if the default configuration is suitable. Customize it if not.

Once you are done, add the Build Tool Wrappers bin directory to your PATH.

Example: as srankin@casa-dev-07 - continued.

export PATH=`pwd`/buildToolWrappers-0.16.10/bin:$PATH

Check Out CASA Source

There is one command in Build Tool Wrappers to check out all code required to build CASA. It is named checkoutCasa. It checks source out of change control from the $btwBranch set in .btwrc. See User's Guide - Checkout Tools for a full description of this command.

This command serves two purposes:
  1. To simplify checking out the subset of the CASA trunk most developers need while skipping parts they do not need.
  2. To simplify checking out an entire branch.

Once you have checked out a copy of CASA, use Subversion commands as expected, expect when working on the trunk. If you check out the CASA trunk using checkoutCasa, you will have to cd into casacore, code, gcwrap, or asap (or include these names on the command line) when using Subversion commands.

Example: as srankin@casa-dev-07 - continued.


Build CASA

Available build commands are listed in the User's Guide - End to End Build Tools.

Example: as srankin@casa-dev-07 - continued.


See the User's Guide - Available Tools for other tools to build subsets of CASA, or to run subsets of the build process for different build components (asap, casacore, code, gcwrap). Their use should be self explanatory.

Read the entire User's Guide and the Build Tools Wrappers project page to better understand these tools.


If you experience a problem with these tools or process, contact Scott Rankin.


If you have an idea for improving these tools, please review existing sub-tasks for CAS-5397. If your idea is not already listed, please create a new sub-task ticket. If an existing open sub-task already discusses your idea, please review that ticket and add comments as appropriate. In either case, please inform Scott Rankin.

  • Check for required 3rd party packages before starting a build.
    • At this time, we depend on CMake logic to detect required 3rd party packages (libraries, tools, etc.) when we configure each CASA build component. But, if a 3rd party package required by gcwrap is missing, the developer will not be informed until after casacore and code are built. This can waste developer time. We can prevent this waste by checking for all required 3rd party packages before starting a build.
      • Implement as a single command that may be run independently of a build. This is intended to help developers quickly debug build failures when 3rd party packages are changing, or to check a new CASA development system before running a first build.
      • Add an option to run this script as desired at the start of buildCasa. Do NOT check all 3rd party packages at every build.
  • Add command line options to force clean builds.
    • Suggested by Jeff Kern.

-- ScottRankin - 2013-07-17
Topic revision: r19 - 2014-05-12, ScottRankin
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback