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
Prerequisites
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
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 https://casa-cbts.nrao.edu/job/0-BuildToolWrappers/lastSuccessfulBuild/artifact/buildToolWrappers-0.16.10.tgz | 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:
- To simplify checking out the subset of the CASA trunk most developers need while skipping parts they do not need.
- 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.
checkoutCasa
Build CASA
Available build commands are listed in the
User's Guide - End to End Build Tools.
Example: as srankin@casa-dev-07 - continued.
buildCasa
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.
Problems?
If you experience a problem with these tools or process, contact Scott Rankin.
Improvements?
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.
--
ScottRankin - 2013-07-17