Skip to content

Use CMAKE_TOOLCHAIN_FILE, various cmake changes

Daniel Campora Perez requested to merge dcampora_remove_umesimd_submodule into master

This MR moves to using CMAKE_TOOLCHAIN_FILE and removes the umesimd submodule. There are several implications and changes that have come on top of those two.

  • The build with CVMFS requires now lbenv and CMAKE_TOOLCHAIN_FILE:
source /cvmfs/lhcb.cern.ch/lib/LbEnv
export CMAKE_TOOLCHAIN_FILE=/cvmfs/lhcb.cern.ch/lib/lhcb/lcg-toolchains/LCG_101/x86_64-centos7-clang12-opt.cmake
  • Running Allen STANDALONE with CVMFS now requires using the generated wrapper:
./toolchain/wrapper ./Allen --sequence hlt1_pp_validation
  • A local standalone build without CVMFS will require specifying the env variable UMESIMD_ROOT_DIR to be able to find umesimd properly:
git clone https://github.com/edanor/umesimd.git <some_dir>/umesimd
export UMESIMD_ROOT_DIR=<some_dir>
  • Findumesimd.cmake has been added. Submodules are no longer used.
  • An issue has been uncovered when using CMAKE_TOOLCHAIN_FILE by which boost iostreams was incorrectly not marked as a requirement for target HostCommon. It has been fixed.
  • Allen CI tests now set CMAKE_TOOLCHAIN_FILE prior to building.
  • HIPCC_OPTIONS is now passed the gcc-toolchain from either variable GCC_TOOLCHAIN_ROOT (thanks @clemenci ) or by invoking ${CMAKE_CXX_COMPILER} -print-libgcc-file-name as a last resource. This fix also makes it compatible with ROCm 5.
  • This MR moves to using ROCm 5, which has been recently installed in CVMFS (https://its.cern.ch/jira/browse/LBCORE-2051, thanks @bcouturi !).
  • HIP build is now set to export the origin folder ./ with CMAKE_EXE_LINKER_FLAGS (RPATH options didn't work).
  • CMAKE_CUDA_FLAGS is now passed -ccbin=${CXX_COMPILER_DIR}, where the compiler dir is obtained by stripping the executable filename from the CMAKE_CXX_COMPILER variable.
  • Given that CMAKE_TOOLCHAIN_FILE sets an architecture (passed as -march), the Allen standalone target detection is only executed if no -march is already existing.
  • Allen CI is compiled with architecture x86_64_v3 by default.
  • Allen CI has been properly adjusted to use ./toolchain/wrapper on every Allen call.
  • setupviews are not used anymore as of this MR.
  • The docs have been accordingly updated.
  • An additional CI job was being triggered with every commit of every branch. That has been corrected with this MR.

Closes #287 (closed), #307 (closed), #308 (closed), #309 (closed)

Edited by Daniel Campora Perez

Merge request reports