From 8a7aecc594abd06fee3b6033abd1b848f24819b0 Mon Sep 17 00:00:00 2001 From: Oliver Lantwin Date: Tue, 25 Nov 2025 08:26:33 +0100 Subject: [PATCH] feat: Add GeoModel recipe --- CHANGELOG.md | 3 +++ geomodel.sh | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ nlohmann-json.sh | 39 ++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 geomodel.sh create mode 100644 nlohmann-json.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 79bcc0a4..76b425e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,9 @@ Until May 2022 (inclusive) no changelog was kept. We might try to reconstruct it ### Added +- GeoModel recipe (6.22.0) for detector description toolkit from CERN +- nlohmann-json recipe (v3.12.0) for JSON library support (required by GeoModel) + ### Fixed ### Changed diff --git a/geomodel.sh b/geomodel.sh new file mode 100644 index 00000000..99116175 --- /dev/null +++ b/geomodel.sh @@ -0,0 +1,52 @@ +package: GeoModel +version: "%(tag_basename)s" +tag: "6.22.0" +source: https://gitlab.cern.ch/GeoModelDev/GeoModel.git +requires: + - boost + - Eigen3 + - XercesC + - sqlite + - nlohmann-json +build_requires: + - CMake +env: + GEOMODEL_ROOT: "$GEOMODEL_ROOT" +prepend_path: + ROOT_INCLUDE_PATH: "$GEOMODEL_ROOT/include" + PATH: "$GEOMODEL_ROOT/bin" + LD_LIBRARY_PATH: "$GEOMODEL_ROOT/lib" +--- +#!/bin/bash -e + +cmake "$SOURCEDIR" \ + -DCMAKE_INSTALL_PREFIX="$INSTALLROOT" \ + -DCMAKE_INSTALL_LIBDIR=lib \ + ${CMAKE_BUILD_TYPE:+-DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE} \ + ${CXXSTD:+-DCMAKE_CXX_STANDARD=$CXXSTD} \ + -DBUILD_SHARED_LIBS=ON \ + -DGEOMODEL_BUILD_TOOLS=ON \ + -DGEOMODEL_BUILD_VISUALIZATION=OFF \ + -DGEOMODEL_BUILD_EXAMPLES=OFF \ + -DGEOMODEL_BUILD_TESTING=OFF \ + -DGEOMODEL_BUILD_GEOMODELG4=OFF \ + -DGEOMODEL_USE_BUILTIN_JSON=OFF \ + ${BOOST_ROOT:+-DBoost_ROOT=$BOOST_ROOT} \ + ${EIGEN3_ROOT:+-DEigen3_DIR=$EIGEN3_ROOT/share/eigen3/cmake} \ + ${XERCESC_ROOT:+-DXercesC_DIR=$XERCESC_ROOT} \ + ${SQLITE_ROOT:+-DSQLite3_ROOT=$SQLITE_ROOT} \ + ${NLOHMANN_JSON_ROOT:+-Dnlohmann_json_DIR=$NLOHMANN_JSON_ROOT/share/cmake/nlohmann_json} + +cmake --build . ${JOBS:+-j$JOBS} +cmake --install . + +# Modulefile +MODULEDIR="$INSTALLROOT/etc/modulefiles" +MODULEFILE="$MODULEDIR/$PKGNAME" +mkdir -p "$MODULEDIR" +alibuild-generate-module --bin --lib > "$MODULEFILE" +cat >> "$MODULEFILE" < "$MODULEFILE" <