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
PATHor setting ofUPS_DIRenvironment variable
- Usually indicated by presence of ups program in
- User creates build directory, and
sources theups/setup_for_developmentscript for the project to be built, supplying the build type and any further qualifiers - This script runs the
set_dev_productsprogram that reads theups/product_depsfile and writes two files to the build directory:- A shell script, “product_name-ups_version” to be sourced by
setup_for_developmentthat 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_SOURCEwhere 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