diff --git a/coin3d.sh b/coin3d.sh new file mode 100644 index 00000000..117fb752 --- /dev/null +++ b/coin3d.sh @@ -0,0 +1,30 @@ +package: Coin3D +version: "%(tag_basename)s" +tag: "v4.0.7" +source: https://github.com/coin3d/coin.git +requires: + - "GCC-Toolchain:(?!osx)" +build_requires: + - CMake + - alibuild-recipe-tools +env: + COIN3D_ROOT: "$COIN3D_ROOT" +prepend_path: + LD_LIBRARY_PATH: "$COIN3D_ROOT/lib" +--- +#!/bin/bash -e + +cmake "$SOURCEDIR" \ + -DCMAKE_INSTALL_PREFIX="$INSTALLROOT" \ + -DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" \ + -DCMAKE_INSTALL_LIBDIR=lib \ + ${CMAKE_PREFIX_PATH:+-DCMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH"} \ + -DCOIN_BUILD_DOCUMENTATION=OFF \ + -DCOIN_BUILD_EXAMPLES=OFF \ + -DCOIN_BUILD_TESTS=OFF + +cmake --build . -- ${JOBS:+-j$JOBS} install + +MODULEDIR="$INSTALLROOT/etc/modulefiles" +mkdir -p "$MODULEDIR" +alibuild-generate-module --lib > "$MODULEDIR/$PKGNAME" diff --git a/defaults-lcg.sh b/defaults-lcg.sh new file mode 100644 index 00000000..b5d9e47f --- /dev/null +++ b/defaults-lcg.sh @@ -0,0 +1,16 @@ +package: defaults-lcg +version: v1 +env: + CXXFLAGS: "-fPIC -g -O2 -std=c++20" + CFLAGS: "-fPIC -g -O2" + CMAKE_BUILD_TYPE: "RELEASE" + CMAKE_CXX_STANDARD: "20" + CMAKE_PREFIX_PATH: "/cvmfs/sft.cern.ch/lcg/views/LCG_109/x86_64-el9-gcc15-opt" + XERCESC_ROOT: "/cvmfs/sft.cern.ch/lcg/views/LCG_109/x86_64-el9-gcc15-opt" + EIGEN3_ROOT: "/cvmfs/sft.cern.ch/lcg/views/LCG_109/x86_64-el9-gcc15-opt" + NLOHMANN_JSON_ROOT: "/cvmfs/sft.cern.ch/lcg/views/LCG_109/x86_64-el9-gcc15-opt" + BOOST_ROOT: "/cvmfs/sft.cern.ch/lcg/views/LCG_109/x86_64-el9-gcc15-opt" + GEANT4_ROOT: "/cvmfs/sft.cern.ch/lcg/views/LCG_109/x86_64-el9-gcc15-opt" +--- +# Before running aliBuild with --defaults lcg, source the LCG environment: +# source /cvmfs/sft.cern.ch/lcg/views/LCG_109/x86_64-el9-gcc15-opt/setup.sh diff --git a/eigen3.sh b/eigen3.sh index 127ca469..01690115 100644 --- a/eigen3.sh +++ b/eigen3.sh @@ -1,6 +1,13 @@ package: Eigen3 version: 3.4.0 source: https://gitlab.com/libeigen/eigen.git +prefer_system: .* +prefer_system_check: | + EIGEN3_ROOT_EFF=${EIGEN3_ROOT:-${CMAKE_PREFIX_PATH%%:*}} + printf '#include \nint main(){}\n' | \ + c++ -std=c++20 -xc++ - \ + ${EIGEN3_ROOT_EFF:+-I"$EIGEN3_ROOT_EFF/include/eigen3"} \ + -o /dev/null build_requires: - "GCC-Toolchain:(?!osx)" - CMake diff --git a/geant4.sh b/geant4.sh index e15dcf7b..98c90e06 100644 --- a/geant4.sh +++ b/geant4.sh @@ -24,15 +24,17 @@ env: G4RADIOACTIVEDATA: "`find ${G4INSTALL} $G4DATASEARCHOPT '*data*RadioactiveDecay*'`" G4REALSURFACEDATA: "`find ${G4INSTALL} $G4DATASEARCHOPT '*data*RealSurface*'`" G4SAIDXSDATA: "`find ${G4INSTALL} $G4DATASEARCHOPT '*data*G4SAIDDATA*'`" +prefer_system: .* prefer_system_check: | #!/bin/bash -e - ls $GEANT4_ROOT/bin > /dev/null && \ - ls $GEANT4_ROOT/bin/geant4-config > /dev/null && \ - ls $GEANT4_ROOT/bin/geant4.csh > /dev/null && \ - ls $GEANT4_ROOT/bin/geant4.sh > /dev/null && \ - ls $GEANT4_ROOT/include > /dev/null && \ - ls $GEANT4_ROOT/include/Geant4 > /dev/null && \ - ls $GEANT4_ROOT/lib/ > /dev/null && \ + GEANT4_ROOT_EFF=${GEANT4_ROOT:-${CMAKE_PREFIX_PATH%%:*}} + ls $GEANT4_ROOT_EFF/bin > /dev/null && \ + ls $GEANT4_ROOT_EFF/bin/geant4-config > /dev/null && \ + ls $GEANT4_ROOT_EFF/bin/geant4.csh > /dev/null && \ + ls $GEANT4_ROOT_EFF/bin/geant4.sh > /dev/null && \ + ls $GEANT4_ROOT_EFF/include > /dev/null && \ + ls $GEANT4_ROOT_EFF/include/Geant4 > /dev/null && \ + ls $GEANT4_ROOT_EFF/lib/ > /dev/null && \ true --- #!/bin/bash -e diff --git a/geomodel.sh b/geomodel.sh new file mode 100644 index 00000000..a1bc8f8a --- /dev/null +++ b/geomodel.sh @@ -0,0 +1,77 @@ +package: GeoModel +version: "%(tag_basename)s" +tag: "6.24.0" +source: https://gitlab.cern.ch/GeoModelDev/GeoModel.git +requires: + - sqlite + - XercesC + - nlohmann_json + - Eigen3 + - GEANT4 + - opengl + - Coin3D + - SoQt +build_requires: + - CMake + - "GCC-Toolchain:(?!osx)" + - alibuild-recipe-tools +env: + GEOMODEL_ROOT: "$GEOMODEL_ROOT" +prepend_path: + ROOT_INCLUDE_PATH: "$GEOMODEL_ROOT/include" + LD_LIBRARY_PATH: "$GEOMODEL_ROOT/lib" +--- +#!/bin/bash -e + +# Resolve Qt6 cmake config to its real path so _IMPORT_PREFIX does not follow +# LCG view symlinks back to the Qt5 include dir. +if [ -n "${CMAKE_PREFIX_PATH}" ]; then + _qt6conf="${CMAKE_PREFIX_PATH}/lib/cmake/Qt6/Qt6Config.cmake" + if [ -e "$_qt6conf" ]; then + QT6_DIR=$(dirname "$(readlink -f "$_qt6conf")") + fi +fi + +# Derive Qt6 platform-plugin path from the resolved install tree so that +# gmex can find the xcb plugin at runtime without QT_QPA_PLATFORM_PLUGIN_PATH +# being set manually. +if [ -n "${QT6_DIR}" ]; then + _qt6root="$(dirname "$(dirname "$(dirname "$QT6_DIR")")")" + if [ -d "$_qt6root/plugins/platforms" ]; then + QT6_PLATFORM_PLUGIN_PATH="$_qt6root/plugins/platforms" + fi +fi + +cmake "$SOURCEDIR" \ + -DCMAKE_INSTALL_PREFIX="$INSTALLROOT" \ + -DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" \ + -DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-20}" \ + -DCMAKE_INSTALL_LIBDIR=lib \ + ${CMAKE_PREFIX_PATH:+-DCMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH"} \ + ${QT6_DIR:+-DQt6_DIR="$QT6_DIR"} \ + -DGEOMODEL_USE_BUILTIN_JSON=OFF \ + -DGEOMODEL_USE_BUILTIN_XERCESC=OFF \ + -DGEOMODEL_USE_BUILTIN_EIGEN3=OFF \ + -DGEOMODEL_BUILD_VISUALIZATION=ON \ + -DGEOMODEL_USE_BUILTIN_COIN3D=OFF \ + -DGEOMODEL_BUILD_GEOMODELG4=ON \ + -DGEOMODEL_BUILD_TOOLS=ON \ + -DGEOMODEL_BUILD_FULLSIMLIGHT=OFF \ + -DGEOMODEL_BUILD_TESTING=OFF + +cmake --build . -- ${JOBS:+-j$JOBS} install + +MODULEDIR="$INSTALLROOT/etc/modulefiles" +MODULEFILE="$MODULEDIR/$PKGNAME" +mkdir -p "$MODULEDIR" +alibuild-generate-module --bin --lib > "$MODULEFILE" +cat >> "$MODULEFILE" <> "$MODULEFILE" <\nint main(){}\n' | \ + c++ -std=c++20 -xc++ - \ + ${NLOHMANN_JSON_ROOT:+-I"$NLOHMANN_JSON_ROOT/include"} \ + -o /dev/null +build_requires: + - "GCC-Toolchain:(?!osx)" + - CMake + - alibuild-recipe-tools +--- +#!/bin/bash -e + +cmake "$SOURCEDIR" \ + -DCMAKE_INSTALL_PREFIX="$INSTALLROOT" \ + -DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" \ + -DJSON_BuildTests=OFF +cmake --build . -- ${JOBS:+-j$JOBS} install + +MODULEDIR="$INSTALLROOT/etc/modulefiles" +MODULEFILE="$MODULEDIR/$PKGNAME" +mkdir -p "$MODULEDIR" +alibuild-generate-module > "$MODULEFILE" +cat >> "$MODULEFILE" < "$MODULEDIR/$PKGNAME" diff --git a/xercesc.sh b/xercesc.sh index 1baffb47..13d53c4b 100644 --- a/xercesc.sh +++ b/xercesc.sh @@ -7,17 +7,13 @@ env: XERCESC_INST_DIR: "$XERCESC_ROOT" XERCESCINST: "$XERCESC_ROOT" XERCESCROOT: "$XERCESC_ROOT" +prefer_system: .* prefer_system_check: | #!/bin/bash -e - ls $XERCESC_ROOT/ > /dev/null && \ - ls $XERCESC_ROOT/bin > /dev/null && \ - ls $XERCESC_ROOT/include > /dev/null && \ - ls $XERCESC_ROOT/include/xercesc/ > /dev/null && \ - ls $XERCESC_ROOT/lib > /dev/null && \ - ls $XERCESC_ROOT/lib/libxerces-c-3.1.so > /dev/null && \ - ls $XERCESC_ROOT/lib/libxerces-c.a > /dev/null && \ - ls $XERCESC_ROOT/lib/libxerces-c.la > /dev/null && \ - ls $XERCESC_ROOT/lib/libxerces-c.so > /dev/null + XERCESC_ROOT_EFF=${XERCESC_ROOT:-${CMAKE_PREFIX_PATH%%:*}} + ls $XERCESC_ROOT_EFF/bin > /dev/null && \ + ls $XERCESC_ROOT_EFF/include/xercesc/ > /dev/null && \ + ls $XERCESC_ROOT_EFF/lib/libxerces-c.so > /dev/null --- #!/bin/sh cd $SOURCEDIR