diff --git a/cetmodules.sh b/cetmodules.sh new file mode 100644 index 000000000..3cba08277 --- /dev/null +++ b/cetmodules.sh @@ -0,0 +1,31 @@ +package: cetmodules +version: "%(tag_basename)s" +tag: 4.01.01 +source: https://github.com/FNALssi/cetmodules +build_requires: + - CMake + - "GCC-Toolchain:(?!osx)" + - alibuild-recipe-tools +--- +#!/bin/bash -e + +cmake -S "$SOURCEDIR" -B . \ + -DCMAKE_INSTALL_PREFIX="$INSTALLROOT" \ + ${CMAKE_GENERATOR:+-G "$CMAKE_GENERATOR"} \ + ${CMAKE_BUILD_TYPE:+-DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE} + +cmake --build . --target install ${JOBS:+-- -j$JOBS} + +# Patch config so find_package(cetmodules) also includes the modules +# that cetmodules' own CMakeLists.txt loads when used via FetchContent. +# All use include_guard() so double-inclusion is safe. +cat >> "$INSTALLROOT/share/cetmodules/cmake/cetmodulesConfig.cmake" <<'EOF' +include(CetProvideDependency) +include(CetCMakeEnv) +include(CetCMakeUtils) +include(CetCMakeConfig) +include(CetMake) +EOF + +mkdir -p "$INSTALLROOT/etc/modulefiles" +alibuild-generate-module --cmake > "$INSTALLROOT/etc/modulefiles/$PKGNAME" diff --git a/eigen3.sh b/eigen3.sh index a8a365638..6518ddd64 100644 --- a/eigen3.sh +++ b/eigen3.sh @@ -1,12 +1,16 @@ package: Eigen3 version: 3.4.0 source: https://gitlab.com/libeigen/eigen.git +prefer_system: .* +prefer_system_check: | + printf '#include \nint main(){}\n' | \ + c++ -std=c++20 -xc++ - \ + ${EIGEN3_ROOT:+-I"$EIGEN3_ROOT/include/eigen3"} \ + -o /dev/null build_requires: - GCC-Toolchain - CMake - alibuild-recipe-tools -prefer_system_check: | - ls $EIGEN3_ROOT/include/eigen3/Eigen/Dense --- #!/bin/bash -e MODULEDIR="$INSTALLROOT/etc/modulefiles" diff --git a/fmt.sh b/fmt.sh index facd55231..0df718299 100644 --- a/fmt.sh +++ b/fmt.sh @@ -17,7 +17,7 @@ prefer_system_check: | verge $REQUESTED_VERSION $FMT_VERSION --- #!/bin/bash -e -cmake $SOURCEDIR -DCMAKE_INSTALL_PREFIX=$INSTALLROOT -DFMT_TEST=OFF +cmake $SOURCEDIR -DCMAKE_INSTALL_PREFIX=$INSTALLROOT -DFMT_TEST=OFF -DBUILD_SHARED_LIBS=ON make ${JOBS+-j $JOBS} make install diff --git a/geomodel.sh b/geomodel.sh new file mode 100644 index 000000000..8376f01b2 --- /dev/null +++ b/geomodel.sh @@ -0,0 +1,47 @@ +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 +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 + +cmake "$SOURCEDIR" \ + -DCMAKE_INSTALL_PREFIX="$INSTALLROOT" \ + -DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" \ + -DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-20}" \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DGEOMODEL_USE_BUILTIN_JSON=OFF \ + -DGEOMODEL_USE_BUILTIN_XERCESC=OFF \ + -DGEOMODEL_USE_BUILTIN_EIGEN3=OFF \ + -DGEOMODEL_BUILD_TOOLS=ON \ + -DGEOMODEL_BUILD_GEOMODELG4=ON \ + -DGEOMODEL_BUILD_FULLSIMLIGHT=ON \ + -DGEOMODEL_BUILD_VISUALIZATION=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" diff --git a/nlohmann_json.sh b/nlohmann_json.sh new file mode 100644 index 000000000..b40753176 --- /dev/null +++ b/nlohmann_json.sh @@ -0,0 +1,33 @@ +package: nlohmann_json +version: "%(tag_basename)s" +tag: v3.11.3 +source: https://github.com/nlohmann/json.git +prefer_system: .* +prefer_system_check: | + #!/bin/bash -e + printf '#include \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" < "$MODULEFILE" +cat >> "$MODULEFILE" < "$MODULEFILE" +cat >> "$MODULEFILE" <\nint main(){}\n' | cc -xc - -lsqlite3 -o /dev/null; - if [ $? -ne 0 ]; then printf "SQLite not found.\n * On RHEL-compatible systems you probably need: sqlite sqlite-devel\n * On Ubuntu-compatible systems you probably need: libsqlite3-0 libsqlite3-dev\n"; exit 1; fi + printf '#include \nint main(){}\n' | cc -xc - -lsqlite3 -o /dev/null build_requires: - - curl + - "GCC-Toolchain:(?!osx)" - autotools + - alibuild-recipe-tools --- #!/bin/bash -ex rsync -av $SOURCEDIR/ ./ @@ -23,18 +23,7 @@ rm -rf $INSTALLROOT/share MODULEDIR="$INSTALLROOT/etc/modulefiles" MODULEFILE="$MODULEDIR/$PKGNAME" mkdir -p "$MODULEDIR" -cat > "$MODULEFILE" < "$MODULEFILE" +cat >> "$MODULEFILE" < /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.so > /dev/null --- #!/bin/sh