diff --git a/fairmq.sh b/fairmq.sh index 71eae0a4eb..cd70f27c5f 100644 --- a/fairmq.sh +++ b/fairmq.sh @@ -7,80 +7,61 @@ requires: - FairLogger - ZeroMQ build_requires: - - flatbuffers + - alibuild-recipe-tools - CMake - - "GCC-Toolchain:(?!osx)" - FairCMakeModules -incremental_recipe: | - cmake --build . --target install ${JOBS:+-- -j$JOBS} - mkdir -p $INSTALLROOT/etc/modulefiles && rsync -a --delete etc/modulefiles/ $INSTALLROOT/etc/modulefiles + - "GCC-Toolchain:(?!osx)" + - ninja prepend_path: ROOT_INCLUDE_PATH: - - "$FAIRMQ_ROOT/include" - - "$FAIRMQ_ROOT/include/fairmq" + - "${FAIRMQ_ROOT}/include" + - "${FAIRMQ_ROOT}/include/fairmq" +incremental_recipe: | + #!/bin/bash -e + cmake --build . ${JOBS:+-j$JOBS} + cmake --install . --prefix "${INSTALLROOT}" + MODULEDIR="etc/modulefiles" + mkdir -p "${INSTALLROOT}/${MODULEDIR}" + rsync -a --delete "${MODULEDIR}" "${INSTALLROOT}/${MODULEDIR}" --- -mkdir -p $INSTALLROOT +#!/bin/bash -e -case $ARCHITECTURE in +case ${ARCHITECTURE} in osx*) - # If we preferred system tools, we need to make sure we can pick them up. - [[ ! $BOOST_ROOT ]] && BOOST_ROOT=`brew --prefix boost` - [[ ! $ZEROMQ_ROOT ]] && ZEROMQ_ROOT=`brew --prefix zeromq` - ;; - *) - BUILD_OFI=ON - if [[ $(printf '%s\n' "1.4.2" "${PKGVERSION:1}" | sort -V | head -n1) != "1.4.2" ]]; then - BUILD_OFI=OFF - fi + [[ -n ${BOOST_ROOT} ]] && BOOST_ROOT=$(brew --prefix boost) + [[ -n ${ZEROMQ_ROOT} ]] && ZEROMQ_ROOT=$(brew --prefix zeromq) ;; esac -cmake $SOURCEDIR \ - ${CXXSTD:+-DCMAKE_CXX_STANDARD=$CXXSTD} \ - ${CXX_COMPILER:+-DCMAKE_CXX_COMPILER=$CXX_COMPILER} \ - ${CMAKE_BUILD_TYPE:+-DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE} \ - -DCMAKE_INSTALL_PREFIX=$INSTALLROOT \ - ${BOOST_ROOT:+-DBOOST_ROOT=$BOOST_ROOT} \ - ${FAIRLOGGER_ROOT:+-DFairLogger_ROOT=$FAIRLOGGER_ROOT} \ - ${ZEROMQ_ROOT:+-DZeroMQ_ROOT=$ZEROMQ_ROOT} \ - ${FLATBUFFERS_ROOT:+-DFlatbuffers_ROOT=$FLATBUFFERS_ROOT} \ - ${FAIRCMAKEMODULES_ROOT:+-DFairCMakeModules_ROOT=$FAIRCMAKEMODULES_ROOT} \ - -DDISABLE_COLOR=ON \ - -DBUILD_EXAMPLES=ON \ - -DBUILD_TESTING=${ALIBUILD_FAIRMQ_TESTS:-OFF} \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DCMAKE_INSTALL_BINDIR=bin -# NOTE: FairMQ examples must always be built in RPMs as they are used for -# AliECS integration testing. Please do not disable them. -cmake --build . --target install ${JOBS:+-- -j$JOBS} +cmake "${SOURCEDIR}" \ + -GNinja \ + ${CXXSTD:+-DCMAKE_CXX_STANDARD=${CXXSTD}} \ + ${CXX_COMPILER:+-DCMAKE_CXX_COMPILER=${CXX_COMPILER}} \ + ${CMAKE_BUILD_TYPE:+-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}} \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DDISABLE_COLOR=ON \ + -DBUILD_EXAMPLES=ON \ + -DBUILD_TESTING=ON +# NOTE: FairMQ examples must always be built in RPMs as they are +# used for AliECS integration testing. Please do not disable +# them. + +cmake --build . ${JOBS:+-j${JOBS}} -# Tests will not run unless ALIBUILD_FAIRMQ_TESTS is set -if [[ $ALIBUILD_FAIRMQ_TESTS ]]; then - # In order to reduce the probability of clashes, tests are not run in parallel - ctest --output-on-failure +if [[ -n ${ALIBUILD_FAIRMQ_TESTS} ]]; then + ctest --output-on-failure --schedule-random ${JOBS:+-j${JOBS}} fi +cmake --install . --prefix "${INSTALLROOT}" + # ModuleFile -mkdir -p etc/modulefiles -cat > etc/modulefiles/$PKGNAME < "${MODULEFILE}" +cat << EOF >> "${MODULEFILE}" +prepend-path ROOT_INCLUDE_PATH \$PKG_ROOT/include +prepend-path ROOT_INCLUDE_PATH \$PKG_ROOT/include/fairmq +EOF +mkdir -p "${INSTALLROOT}/${MODULEDIR}" +rsync -a --delete ${MODULEDIR} "${INSTALLROOT}/${MODULEDIR}"