diff --git a/boost.sh b/boost.sh index 1bf17400..bc0967a1 100644 --- a/boost.sh +++ b/boost.sh @@ -1,6 +1,6 @@ package: boost version: "%(tag_basename)s" -tag: "v1.75.0" +tag: "v1.83.0" source: https://github.com/alisw/boost.git requires: - "GCC-Toolchain:(?!osx)" @@ -14,7 +14,7 @@ build_requires: prepend_path: ROOT_INCLUDE_PATH: "$BOOST_ROOT/include" prefer_system_check: | - printf "#include \"boost/version.hpp\"\n# if (BOOST_VERSION < 106400)\n#error \"Cannot use system's boost. Boost > 1.64.00 required.\"\n#endif\nint main(){}" \ + printf "#include \"boost/version.hpp\"\n# if (BOOST_VERSION < 107800)\n#error \"Cannot use system's boost. Boost > 1.78.00 required.\"\n#endif\nint main(){}" \ | gcc -I$BOOST_ROOT/include -xc++ - -o /dev/null --- BOOST_PYTHON= diff --git a/cetmodules.sh b/cetmodules.sh new file mode 100644 index 00000000..3cba0827 --- /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/defaults-phlex.sh b/defaults-phlex.sh new file mode 100644 index 00000000..ae3c1f63 --- /dev/null +++ b/defaults-phlex.sh @@ -0,0 +1,8 @@ +package: defaults-phlex +version: v1 +env: + CXXFLAGS: "-fPIC -g -O2 -std=c++23" + CFLAGS: "-fPIC -g -O2" + CMAKE_BUILD_TYPE: "RELEASE" + CMAKE_CXX_STANDARD: "23" +--- diff --git a/fmt.sh b/fmt.sh index 99b0c977..499cff39 100644 --- a/fmt.sh +++ b/fmt.sh @@ -16,7 +16,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 @@ -37,5 +37,6 @@ module-whatis "ALICE Modulefile for $PKGNAME $PKGVERSION-@@PKGREVISION@$PKGHASH@ module load BASE/1.0 ${GCC_TOOLCHAIN_REVISION:+GCC-Toolchain/$GCC_TOOLCHAIN_VERSION-$GCC_TOOLCHAIN_REVISION} # Our environment set FMT_ROOT \$::env(BASEDIR)/$PKGNAME/\$version +prepend-path LD_LIBRARY_PATH \$FMT_ROOT/lib prepend-path ROOT_INCLUDE_PATH \$FMT_ROOT/include EoF diff --git a/jsonnet.sh b/jsonnet.sh new file mode 100644 index 00000000..8c896a64 --- /dev/null +++ b/jsonnet.sh @@ -0,0 +1,34 @@ +package: jsonnet +version: "%(tag_basename)s" +tag: v0.20.0 +source: https://github.com/google/jsonnet +requires: + - "GCC-Toolchain:(?!osx)" + - nlohmann_json +build_requires: + - CMake + - alibuild-recipe-tools +--- +#!/bin/bash -e + +# jsonnet's USE_SYSTEM_JSON does find_package(nlohmann_json) but the source +# includes "json.hpp" (bare), while the system package installs +# "nlohmann/json.hpp". Point the include path at the nlohmann/ subdirectory +# so the bare include resolves. +cmake "$SOURCEDIR" \ + -DCMAKE_INSTALL_PREFIX="$INSTALLROOT" \ + -DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" \ + -DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-23}" \ + -Dnlohmann_json_DIR="$NLOHMANN_JSON_ROOT/share/cmake/nlohmann_json" \ + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ + -DBUILD_TESTS=OFF \ + -DUSE_SYSTEM_JSON=ON \ + -DBUILD_SHARED_BINARIES=ON \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS:+$CXXFLAGS }-I$NLOHMANN_JSON_ROOT/include/nlohmann" + +cmake --build . -- ${JOBS:+-j$JOBS} install + +MODULEDIR="$INSTALLROOT/etc/modulefiles" +MODULEFILE="$MODULEDIR/$PKGNAME" +mkdir -p "$MODULEDIR" +alibuild-generate-module --bin --lib > "$MODULEFILE" diff --git a/nlohmann_json.sh b/nlohmann_json.sh new file mode 100644 index 00000000..b4075317 --- /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" <