Building Offline with cmake: Difference between revisions
Jump to navigation
Jump to search
m (Kutschke moved page Cmake to Building Offline with cmake without leaving a redirect: The name cmake will be needed for a general cmake page.) |
No edit summary |
||
Line 1: | Line 1: | ||
=Introduction= | =Introduction= | ||
Use of | Use of CMake to build Offline in the DAQ environment. | ||
==Building Offline with CMake== | |||
===Using UPS=== | |||
The UPS-based build of Offline is supported in SL7 environments, in two distinct flavors: | |||
====Package-based build==== | |||
The Offline CMake uses the ''cetmodules'' package for several CMake convenience functions, and can be built using the standard ''cetmodules'' invocation: | |||
<pre> | |||
source /cvmfs/mu2e.opensciencegrid.org/setupmu2e-art.sh | |||
git clone https://github.com/Mu2e/Offline.git | |||
mkdir build_Offline && cd build_Offline | |||
source ../Offline/ups/setup_for_development -p e28:s126 # -d or -p are supported, see Offline/ups/product_deps for supported qualifier combinations | |||
buildtool # -p to create a UPS-redistributable package, -i to install in a UPS area (-I to specify which) | |||
</pre> | |||
====MRB-based build==== | |||
Offline is also compatible with MRB-based development: | |||
<pre> | |||
source /cvmfs/mu2e.opensciencegrid.org/setupmu2e-art.sh | |||
setup mrb | |||
mkdir my_mrb_working_area | |||
export MRB_PROJECT=Mu2e | |||
mrb newDev -v v1_00_00 -q e28:s126:prof # Version here is mostly meaningless, but required to silence certain CMake warnings | |||
cd srcs | |||
mrb gitCheckout https://github.com/Mu2e/Offline.git | |||
mrb uc | |||
mrb z | |||
mrbsetenv | |||
mrb b | |||
</pre> | |||
===Using Spack=== | |||
==When to Update CMakeLists.txt== | |||
In general, CMakeLists.txt in affected packages should be updated when: | |||
# Files are added, removed, or renamed | |||
# Library dependencies for a package change (e.g. a #include referring to another package is added or removed) | |||
# Data files are added to a package and should be installed when Offline is built |
Revision as of 19:06, 22 January 2024
Introduction
Use of CMake to build Offline in the DAQ environment.
Building Offline with CMake
Using UPS
The UPS-based build of Offline is supported in SL7 environments, in two distinct flavors:
Package-based build
The Offline CMake uses the cetmodules package for several CMake convenience functions, and can be built using the standard cetmodules invocation:
source /cvmfs/mu2e.opensciencegrid.org/setupmu2e-art.sh git clone https://github.com/Mu2e/Offline.git mkdir build_Offline && cd build_Offline source ../Offline/ups/setup_for_development -p e28:s126 # -d or -p are supported, see Offline/ups/product_deps for supported qualifier combinations buildtool # -p to create a UPS-redistributable package, -i to install in a UPS area (-I to specify which)
MRB-based build
Offline is also compatible with MRB-based development:
source /cvmfs/mu2e.opensciencegrid.org/setupmu2e-art.sh setup mrb mkdir my_mrb_working_area export MRB_PROJECT=Mu2e mrb newDev -v v1_00_00 -q e28:s126:prof # Version here is mostly meaningless, but required to silence certain CMake warnings cd srcs mrb gitCheckout https://github.com/Mu2e/Offline.git mrb uc mrb z mrbsetenv mrb b
Using Spack
When to Update CMakeLists.txt
In general, CMakeLists.txt in affected packages should be updated when:
- Files are added, removed, or renamed
- Library dependencies for a package change (e.g. a #include referring to another package is added or removed)
- Data files are added to a package and should be installed when Offline is built