From 613f6da9f486d54fd3d9514bf92ff1e2a4e45e2e Mon Sep 17 00:00:00 2001 From: Guytri KASTANE Date: Wed, 20 Nov 2024 15:59:36 +0100 Subject: [PATCH] bos #43653: integration of Persalys 17.0.1 - Linux builds --- applications/SALOME-9.14.0-MPI.pyconf | 2 +- applications/SALOME-9.14.0-int32.pyconf | 2 +- applications/SALOME-9.14.0-native.pyconf | 2 +- applications/SALOME-9.14.0.pyconf | 2 +- applications/SALOME-master-MPI.pyconf | 2 +- applications/SALOME-master-int32.pyconf | 2 +- applications/SALOME-master-native.pyconf | 2 +- applications/SALOME-master.pyconf | 2 +- products/PERSALYS.pyconf | 6 + products/compil_scripts/PERSALYS-v17.0.1.sh | 139 ++++++++++++++++++++ products/env_scripts/PERSALYS.py | 2 +- 11 files changed, 154 insertions(+), 9 deletions(-) create mode 100755 products/compil_scripts/PERSALYS-v17.0.1.sh diff --git a/applications/SALOME-9.14.0-MPI.pyconf b/applications/SALOME-9.14.0-MPI.pyconf index 8cee826..45f2421 100644 --- a/applications/SALOME-9.14.0-MPI.pyconf +++ b/applications/SALOME-9.14.0-MPI.pyconf @@ -112,7 +112,7 @@ APPLICATION : pandas : '1.1.5' patsy : '0.5.4' ParaView : {tag:'5.11.0', base: 'no', section: 'version_5_11_0_MPI', hpc: 'yes'} - PERSALYS: 'v16.0.1' + PERSALYS: 'v17.0.1' petsc : {tag : '3.16.0', base: 'no', section: 'version_3_16_0', hpc: 'yes'} Pillow : '8.4.0' planegcs : '0.18-3cb6890' diff --git a/applications/SALOME-9.14.0-int32.pyconf b/applications/SALOME-9.14.0-int32.pyconf index c26284f..1ecae87 100644 --- a/applications/SALOME-9.14.0-int32.pyconf +++ b/applications/SALOME-9.14.0-int32.pyconf @@ -111,7 +111,7 @@ APPLICATION : pandas : '1.1.5' patsy : '0.5.4' ParaView : {tag:'5.11.0', base: 'no', section: 'version_5_11_0_MPI', hpc: 'yes'} - PERSALYS: 'v16.0.1' + PERSALYS: 'v17.0.1' petsc : {tag : '3.16.0', base: 'no', section: 'version_3_16_0', hpc: 'yes'} Pillow : '8.4.0' planegcs : '0.18-3cb6890' diff --git a/applications/SALOME-9.14.0-native.pyconf b/applications/SALOME-9.14.0-native.pyconf index 8567e85..9dfd449 100644 --- a/applications/SALOME-9.14.0-native.pyconf +++ b/applications/SALOME-9.14.0-native.pyconf @@ -114,7 +114,7 @@ APPLICATION : pandas : 'native' patsy : 'native' ParaView : {tag:'5.11.0', base: 'no', section: 'version_5_11_0_MPI', hpc: 'yes'} - PERSALYS : 'v16.0.1' + PERSALYS : 'v17.0.1' petsc : {tag : '3.16.0', section: 'version_3_16_0'} Pillow : 'native' planegcs : '0.18-3cb6890' diff --git a/applications/SALOME-9.14.0.pyconf b/applications/SALOME-9.14.0.pyconf index e226736..edd93fa 100644 --- a/applications/SALOME-9.14.0.pyconf +++ b/applications/SALOME-9.14.0.pyconf @@ -117,7 +117,7 @@ APPLICATION : pandas : '1.1.5' patsy : '0.5.4' ParaView : {tag:'5.11.0', base: 'no', section: 'version_5_11_0_MPI', hpc: 'yes'} - PERSALYS: 'v16.0.1' + PERSALYS: 'v17.0.1' petsc : {tag : '3.16.0', base: 'no', section: 'version_3_16_0', hpc: 'yes'} Pillow : '8.4.0' planegcs : '0.18-3cb6890' diff --git a/applications/SALOME-master-MPI.pyconf b/applications/SALOME-master-MPI.pyconf index 5ddb96d..4552e41 100644 --- a/applications/SALOME-master-MPI.pyconf +++ b/applications/SALOME-master-MPI.pyconf @@ -112,7 +112,7 @@ APPLICATION : pandas : '1.1.5' patsy : '0.5.4' ParaView : {tag:'5.11.0', base: 'no', section: 'version_5_11_0_MPI', hpc: 'yes'} - PERSALYS: 'v16.0.1' + PERSALYS: 'v17.0.1' petsc : {tag : '3.16.0', base: 'no', section: 'version_3_16_0', hpc: 'yes'} Pillow : '8.4.0' planegcs : '0.18-3cb6890' diff --git a/applications/SALOME-master-int32.pyconf b/applications/SALOME-master-int32.pyconf index 6ebcf11..041a7c6 100644 --- a/applications/SALOME-master-int32.pyconf +++ b/applications/SALOME-master-int32.pyconf @@ -111,7 +111,7 @@ APPLICATION : pandas : '1.1.5' patsy : '0.5.4' ParaView : {tag:'5.11.0', base: 'no', section: 'version_5_11_0_MPI', hpc: 'yes'} - PERSALYS: 'v16.0.1' + PERSALYS: 'v17.0.1' petsc : {tag : '3.16.0', base: 'no', section: 'version_3_16_0', hpc: 'yes'} Pillow : '8.4.0' planegcs : '0.18-3cb6890' diff --git a/applications/SALOME-master-native.pyconf b/applications/SALOME-master-native.pyconf index be750a6..84cacc3 100644 --- a/applications/SALOME-master-native.pyconf +++ b/applications/SALOME-master-native.pyconf @@ -114,7 +114,7 @@ APPLICATION : pandas : 'native' patsy : 'native' ParaView : {tag:'5.11.0', base: 'no', section: 'version_5_11_0_MPI', hpc: 'yes'} - PERSALYS : 'v16.0.1' + PERSALYS : 'v17.0.1' petsc : {tag : '3.16.0', section: 'version_3_16_0'} Pillow : 'native' planegcs : '0.18-3cb6890' diff --git a/applications/SALOME-master.pyconf b/applications/SALOME-master.pyconf index 196c746..0012954 100644 --- a/applications/SALOME-master.pyconf +++ b/applications/SALOME-master.pyconf @@ -117,7 +117,7 @@ APPLICATION : pandas : '1.1.5' patsy : '0.5.4' ParaView : {tag:'5.11.0', base: 'no', section: 'version_5_11_0_MPI', hpc: 'yes'} - PERSALYS: 'v16.0.1' + PERSALYS: 'v17.0.1' petsc : {tag : '3.16.0', base: 'no', section: 'version_3_16_0', hpc: 'yes'} Pillow : '8.4.0' planegcs : '0.18-3cb6890' diff --git a/products/PERSALYS.pyconf b/products/PERSALYS.pyconf index 777f796..c116fef 100644 --- a/products/PERSALYS.pyconf +++ b/products/PERSALYS.pyconf @@ -58,6 +58,12 @@ default_win : incremental : "yes" } } + +version_v17_0_1 : +{ + compil_script : 'PERSALYS-v17.0.1.sh' +} + version_v16_0_1 : { compil_script : 'PERSALYS-v16.0.1.sh' diff --git a/products/compil_scripts/PERSALYS-v17.0.1.sh b/products/compil_scripts/PERSALYS-v17.0.1.sh new file mode 100755 index 0000000..07c0b37 --- /dev/null +++ b/products/compil_scripts/PERSALYS-v17.0.1.sh @@ -0,0 +1,139 @@ +#!/bin/bash + +echo "##########################################################################" +echo "PERSALYS $VERSION" +echo "##########################################################################" + +if [ -n "$SAT_HPC" ] && [ -n "$MPI_ROOT_DIR" ]; then + echo "WARNING: setting CC and CXX environment variables and target MPI wrapper" + CMAKE_OPTIONS+=" -DCMAKE_CXX_COMPILER:STRING=${MPI_CXX_COMPILER}" + CMAKE_OPTIONS+=" -DCMAKE_C_COMPILER:STRING=${MPI_C_COMPILER}" + CMAKE_OPTIONS+=" -DMPI_C_FOUND=$MPI_C_FOUND" +fi + +CMAKE_OPTIONS="" +CMAKE_OPTIONS+=" -DCMAKE_INSTALL_PREFIX:STRING=$PRODUCT_INSTALL" +CMAKE_OPTIONS+=" -DCMAKE_INSTALL_LIBDIR:STRING=lib" +CMAKE_OPTIONS+=" -DADAO_ROOT_DIR=$ADAO_ROOT_DIR" +CMAKE_OPTIONS+=" -DBOOST_ROOT:PATH=$BOOST_ROOT_DIR" +CMAKE_OPTIONS+=" -DGUI_ROOT_DIR=$GUI_ROOT_DIR" +CMAKE_OPTIONS+=" -DSalomeGUI_DIR=$GUI_ROOT_DIR/adm_local/cmake_files" +CMAKE_OPTIONS+=" -DKERNEL_ROOT_DIR=$KERNEL_ROOT_DIR" +CMAKE_OPTIONS+=" -DSalomeKERNEL_DIR=$KERNEL_ROOT_DIR/salome_adm/cmake_files" +CMAKE_OPTIONS+=" -DOpenTURNS_DIR=$OT_ROOT_DIR/lib/cmake/openturns" +CMAKE_OPTIONS+=" -DPy2cpp_DIR=$PY2CPP_ROOT_DIR//lib/cmake/py2cpp" + +# strangely some distributions fail to guess qwt installation location +# - CentOS 8 +# - Ubuntu 20.04 +if [[ $DIST_NAME == "CO" && $DIST_VERSION == "8" && "$SAT_qwt_IS_NATIVE" == "1" ]]; then + CMAKE_OPTIONS+=" -DQWT_LIBRARY=/usr/lib64/libqwt-qt5.so" + CMAKE_OPTIONS+=" -DQWT_INCLUDE_DIR=/usr/include/qt5/qwt" +elif [[ $DIST_NAME == "UB" && $DIST_VERSION == "20.04" && "$SAT_qwt_IS_NATIVE" == "1" ]]; then + CMAKE_OPTIONS+=" -DQWT_LIBRARY=/usr/lib/libqwt-qt5.so" + CMAKE_OPTIONS+=" -DQWT_INCLUDE_DIR=/usr/include/qwt" +elif [ "$SAT_qwt_IS_NATIVE" != "1" ]; then + CMAKE_OPTIONS+=" -DQWT_LIBRARY=$QWT_ROOT_DIR/lib/libqwt.so" + CMAKE_OPTIONS+=" -DQWT_INCLUDE_DIR=$QWT_ROOT_DIR/include" +fi + +if [[ "$DIST_NAME$DIST_VERSION" == "CO8" ]]; then + CMAKE_OPTIONS+=" -DUSE_SPHINX=OFF" # missing tex-preview LateX package for CentOS 8 +elif [[ "$DIST_NAME$DIST_VERSION" == "CO7" ]]; then + CMAKE_OPTIONS+=" -DUSE_SPHINX=OFF" # missing tex-preview LateX package for CentOS 7 - à installer +elif [ "$DIST_NAME$DIST_VERSION" == "FD36" ]; then + CMAKE_OPTIONS+=" -DUSE_SPHINX=OFF" # +elif [ "$DIST_NAME$DIST_VERSION" == "FD37" ]; then + CMAKE_OPTIONS+=" -DUSE_SPHINX=OFF" # +elif [ "$DIST_NAME$DIST_VERSION" == "FD38" ]; then + CMAKE_OPTIONS+=" -DUSE_SPHINX=OFF" # +else + CMAKE_OPTIONS+=" -DUSE_SPHINX=ON" +fi +CMAKE_OPTIONS+=" -DSPHINX_ROOT_DIR=$SPHINX_ROOT_DIR" +CMAKE_OPTIONS+=" -DYACS_ROOT_DIR=$YACS_ROOT_DIR" +CMAKE_OPTIONS+=" -DSalomeYACS_DIR=$YACS_ROOT_DIR/adm/cmake" +CMAKE_OPTIONS+=" -Dydefx_DIR=$YDEFX_ROOT_DIR/salome_adm/cmake_files" +CMAKE_OPTIONS+=" -DAdaoCppLayer_INCLUDE_DIR=$ADAO_INTERFACE_ROOT_DIR/include" +CMAKE_OPTIONS+=" -DAdaoCppLayer_ROOT_DIR=$ADAO_INTERFACE_ROOT_DIR" +CMAKE_OPTIONS+=" -DUSE_SALOME=ON" +if [ -n "$TBB_ROOT" ]; then + CMAKE_OPTIONS+=" -DTBB_ROOT=$TBB_ROOT_DIR" + CMAKE_OPTIONS+=" -DTBB_INCLUDE_DIR=$TBB_ROOT_DIR/include" +fi +CMAKE_OPTIONS+=" -DPYTHON_EXECUTABLE=$PYTHONBIN" + +CMAKE_OPTIONS+=" -DPYTHON_INCLUDE_DIR=$PYTHON_INCLUDE" +if [ "$SAT_Python_IS_NATIVE" != "1" ]; then + CMAKE_OPTIONS+=" -DPYTHON_LIBRARY=$PYTHON_ROOT_DIR/lib/libpython$PYTHON_VERSION.so" +fi + +if [ "$SAT_Sphinx_IS_NATIVE" != "1" ]; then + CMAKE_OPTIONS+=" -DSPHINX_ROOT_DIR:FILEPATH=$SPHINX_ROOT_DIR" + CMAKE_OPTIONS+=" -DSPHINX_EXECUTABLE:FILEPATH=$SPHINX_ROOT_DIR/bin/sphinx-build" +fi + +CMAKE_OPTIONS+=" -DCMAKE_FIND_ROOT_PATH=ON" +CMAKE_OPTIONS+=" -DSWIG_EXECUTABLE:PATH=$(which swig)" +if [ "${SAT_cgns_IS_NATIVE}" != "1" ] +then + CMAKE_OPTIONS+=" -DCGNS_INCLUDE_DIR:PATH=${CGNS_ROOT_DIR}/include" + CMAKE_OPTIONS+=" -DCGNS_LIBRARY:PATH=${CGNS_ROOT_DIR}/lib/libcgns.so" +fi +if [ -n "$SAT_DEBUG" ]; then + CMAKE_OPTIONS+=" -DCMAKE_BUILD_TYPE:STRING=Debug" +else + CMAKE_OPTIONS+=" -DCMAKE_BUILD_TYPE:STRING=Release" +fi + +echo +echo "*** cmake $CMAKE_OPTIONS" +cmake $CMAKE_OPTIONS $SOURCE_DIR +if [ $? -ne 0 ] +then + echo "ERROR on cmake" + exit 1 +fi + +echo +echo "*** make" $MAKE_OPTIONS +make $MAKE_OPTIONS +if [ $? -ne 0 ] +then + echo "ERROR on make" + exit 2 +fi + +echo +echo "*** make install" +make install +if [ $? -ne 0 ] +then + echo "ERROR on make install" + exit 3 +fi + +# spns #32377 +# setting -DCMAKE_INSTALL_LIBDIR to lib is not enough on Fedora nodes +echo +echo "*** check installation" +if [ ! -d "${PRODUCT_INSTALL}/lib" ]; then + mkdir -p ${PRODUCT_INSTALL}/lib +fi + +if [ -d "${PRODUCT_INSTALL}/lib64" ]; then + echo "WARNING: moving lib64 to lib" + mv ${PRODUCT_INSTALL}/lib64/* ${PRODUCT_INSTALL}/lib/ + rmdir ${PRODUCT_INSTALL}/lib64 +fi + + +if [ -d "${PRODUCT_INSTALL}/lib/python${PYTHON_VERSION}/dist-packages" ]; then + echo "WARNING: linking against dist-packages" + cd ${PRODUCT_INSTALL}/lib/python${PYTHON_VERSION} + ln -sf dist-packages site-packages +fi + +echo +echo "########## END" + diff --git a/products/env_scripts/PERSALYS.py b/products/env_scripts/PERSALYS.py index fc49fd2..a6ff0c9 100644 --- a/products/env_scripts/PERSALYS.py +++ b/products/env_scripts/PERSALYS.py @@ -17,7 +17,7 @@ def set_env(env, prereq_dir, version): pyver = 'python' + env.get('PYTHON_VERSION') env.prepend('PYTHONPATH', os.path.join(prereq_dir, 'lib', pyver, 'site-packages')) env.set('OTGUI_HTML_DOCUMENTATION_PATH',os.path.join(prereq_dir,'share','otgui','doc','html/')) - env.set('PERSALYS_HTML_DOCUMENTATION_PATH', os.path.join(prereq_dir,'share','persalys','doc','html/')) + env.set('PERSALYS_HTML_DOCUMENTATION_PATH', os.path.join(prereq_dir,'share','doc','persalys','html/')) def set_nativ_env(env): pass -- 2.39.2