CetUPS¶
Configure and develop project using settings obtained from CET’s UPS configuration management tool. These settings override any set by the user and cannot be modified. The enforced settings include:
- Installation locations
- Build type
In particular, multiconfig tools like Xcode cannot be used in UPS builds as UPS only understands single mode builds.
UPS Project Files¶
Projects capable of being built in UPS-mode must instrument their source directory with a ups directory holding a product_deps file and a setup_for_development script.
UPS Setup for Development¶
The following sequence of operations/scripts is performed (NB, may not be complete as yet)
- It’s assumed that the ups product is already setup
- Usually indicated by presence of ups program in
PATH
or setting ofUPS_DIR
environment variable
- Usually indicated by presence of ups program in
- User creates build directory, and
source
s theups/setup_for_development
script for the project to be built, supplying the build type and any further qualifiers - This script runs the
set_dev_products
program that reads theups/product_deps
file and writes two files to the build directory:- A shell script, “product_name-ups_version” to be sourced by
setup_for_development
that setups needed products and sets further UPS/cetbuildtools specific environment variables. - A text file, “cetpkg_variable_support”, that holds the UPS/cetbuildtools variables as KEY VALUE pairs.
- A shell script, “product_name-ups_version” to be sourced by
- User runs CMake using the invocation
cmake -DCMAKE_INSTALL_PREFIX=<path> -DCMAKE_BUILD_TYPE=$CETPKG_TYPE $CETPKG_SOURCE
where theCETPKG_
variables are those set in the environment by the script.
UPS Tools¶
Several shell/perl scripts are installed by cetbuildtools2 that run setup, query the UPS system and generate install-time files