Skip to content
Snippets Groups Projects
Commit 3cd3c0be authored by Boris Basic's avatar Boris Basic
Browse files

Update following the release of TELEMAC 9.0

- MUMPS, OpenBLAS and Python have been updated
- The versions of the Python packages have been updated to their latest
  revision, with the exception of NumPy, which has been set to version
  1.26.4
- Some compilation flags have been added for GCC 14.2.
parent 092c3342
No related branches found
No related tags found
No related merge requests found
......@@ -12,21 +12,22 @@ set metis=metis-5.1.0
set msmpi=msmpi-10.1.3
set openblas=openblas-0.3.25
set scalapack=scalapack-2.1.0
set mumps=mumps-5.2.1
set mumps_version=5.6.2
set mumps=mumps-%mumps_version%
set aed2=libaed2-1.2.0
set gotm=gotm-2019-06-14-opentelemac
set python_version=3.11.8
set python_launcher_version=3.11.8
set python_version=3.11.9
set python_launcher_version=3.11.9
set python=python-%python_version%
set python_requirements=python_requirements.txt
set pip_version=24.0
set setuptools_version=65.5.0
set geo_wheels_version=v2024.1.1
set gdal=GDAL-3.8.2-cp311-cp311-win_amd64.whl
set fiona=fiona-1.9.5-cp311-cp311-win_amd64.whl
set rasterio=rasterio-1.3.9-cp311-cp311-win_amd64.whl
set shapely=shapely-2.0.2-cp311-cp311-win_amd64.whl
set geo_wheels_version=v2024.9.22
set gdal=GDAL-3.9.2-cp311-cp311-win_amd64.whl
set fiona=fiona-1.10.1-cp311-cp311-win_amd64.whl
set rasterio=1.3.11-cp311-cp311-win_amd64.whl
set shapely=shapely-2.0.6-cp311-cp311-win_amd64.whl
rem ************************************************************************
rem Parse input arguments to determine where and how TELEMAC should be built
......@@ -106,6 +107,13 @@ rem *********************************************************************
set python_requirements=python_requirements.txt
if /i %arg_v% == v8p4 (
set version=v8p4
set branch=%version%
set openblas=openblas-0.3.25
set scalapack=scalapack-2.1.0
set mumps_version=5.2.1
set mumps=mumps-%mumps_version%
set python_version=3.10.11
set python=python-3.10.11
set python_requirements=python_requirements_v8p4.txt
......@@ -119,14 +127,48 @@ if /i %arg_v% == v8p4 (
)
if /i %arg_v% == v8p5 (
set version=v8p5
set branch=%version%
set openblas=openblas-0.3.25
set scalapack=scalapack-2.1.0
set mumps_version=5.2.1
set mumps=mumps-%mumps_version%
set python_version=3.11.9
set python_launcher_version=3.11.9
set python_requirements=python_requirements_v8p5.txt
set pip_version=24.0
set setuptools_version=65.5.0
set geo_wheels_version=v2023.11.3
set gdal=GDAL-3.7.3-cp311-cp311-win_amd64.whl
set fiona=fiona-1.9.5-cp311-cp311-win_amd64.whl
set rasterio=rasterio-1.3.9-cp311-cp311-win_amd64.whl
set shapely=shapely-2.0.2-cp311-cp311-win_amd64.whl
)
if /i %arg_v% == main set version=main
if /i %arg_v% == 9.0 (
set version=9.0
set branch=v%version%
set openblas=openblas-0.3.28
set scalapack=scalapack-2.2.1
set mumps_version=5.6.2
set mumps=mumps-%mumps_version%
set python_version=3.11.9
set python_launcher_version=3.11.9
set python_requirements=python_requirements_9.0.txt
set pip_version=24.0
set setuptools_version=65.5.0
set geo_wheels_version=v2024.9.22
set gdal=GDAL-3.9.2-cp311-cp311-win_amd64.whl
set fiona=fiona-1.10.1-cp311-cp311-win_amd64.whl
set rasterio=rasterio-1.3.11-cp311-cp311-win_amd64.whl
set shapely=shapely-2.0.6-cp311-cp311-win_amd64.whl
)
if /i %arg_v% == main (
set version=main
set branch=main
)
if not defined version (
echo Unsupported TELEMAC version: %arg_v%
exit /b 0
......@@ -163,7 +205,7 @@ if exist %install_path% (
)
if /i "%clone%" equ "y" (
rd /s/q %install_path% 2>nul
git clone -b %version% https://gitlab.pam-retd.fr/otm/telemac-mascaret.git %install_path% || exit /b 0
git clone -b %branch% https://gitlab.pam-retd.fr/otm/telemac-mascaret.git %install_path% || exit /b 0
)
rem **********************
......@@ -257,7 +299,7 @@ rem MED
rem ***
:build_med
call :download %med% "https://gitlab.pam-retd.fr/otm/telemac-mascaret/-/package_files/443/download" || exit /b 1
set cmake_config_options=-DHDF5_ROOT_DIR:PATH=%external_path%/%hdf5% -DMEDFILE_BUILD_TESTS:BOOL=OFF -DMEDFILE_INSTALL_DOC:BOOL=OFF
set cmake_config_options=-DHDF5_ROOT_DIR:PATH=%external_path%/%hdf5% -DMEDFILE_BUILD_TESTS:BOOL=OFF -DMEDFILE_INSTALL_DOC:BOOL=OFF -DCMAKE_C_FLAGS="-Wno-error=implicit-function-declaration"
if %compiler% == intel (
rem MED libraries cannot be built as shared libraries with Visual Studio generator as they
rem miss the proper __declspec(dllexport) declarations on each class and function
......@@ -330,7 +372,7 @@ rem *********
call :download %scalapack% "https://github.com/Reference-ScaLAPACK/scalapack/archive/refs/tags/v2.1.0.zip" || exit /b 1
rem We need to use a foward slash for lapack and blas libraries paths since CMake CheckFortranFunctionExists is bugged when using a backward slash
set ext_path=%external_path:\=/%
set cmake_config_options=-DMPI_BASE_DIR:PATH=%ext_path%/%msmpi% -DLAPACK_LIBRARIES:STRING=%ext_path%/%openblas%/lib/libopenblas.a -DBLAS_LIBRARIES:STRING=%ext_path%/%openblas%/lib/libopenblas.a -DBUILD_TESTING:BOOL=OFF
set cmake_config_options=-DMPI_BASE_DIR:PATH=%ext_path%/%msmpi% -DLAPACK_LIBRARIES:STRING=%ext_path%/%openblas%/lib/libopenblas.a -DBLAS_LIBRARIES:STRING=%ext_path%/%openblas%/lib/libopenblas.a -DBUILD_TESTING:BOOL=OFF -DCMAKE_C_FLAGS="-Wno-error=implicit-function-declaration -Wno-implicit-int"
call :cmake_build %scalapack% || exit /b 1
exit /b 0
......@@ -338,8 +380,8 @@ rem *****
rem MUMPS
rem *****
:build_mumps
call :download %mumps% "https://github.com/scivision/mumps/archive/refs/tags/v5.6.1.2.tar.gz" || exit /b 1
set cmake_config_options=-DMUMPS_UPSTREAM_VERSION=5.2.1 -DBLAS_LIBRARY=%external_path%\%openblas%\lib\libopenblas.a -DLAPACK_LIBRARY=%external_path%\%openblas%\lib\libopenblas.a -DSCALAPACK_ROOT:PATH=%external_path%\%scalapack%
call :download %mumps% "https://github.com/scivision/mumps/archive/refs/tags/v5.7.3.1.tar.gz" || exit /b 1
set cmake_config_options=-DMUMPS_UPSTREAM_VERSION=%mumps_version% -DBLAS_LIBRARY=%external_path%\%openblas%\lib\libopenblas.a -DLAPACK_LIBRARY=%external_path%\%openblas%\lib\libopenblas.a -DSCALAPACK_ROOT:PATH=%external_path%\%scalapack%
if %compiler% == mingw (
set cmake_config_options=%cmake_config_options% -DMPI_ROOT:PATH=%external_path%\%msmpi%
) else (
......@@ -469,7 +511,7 @@ curl -OL https://github.com/cgohlke/geospatial-wheels/releases/download/%geo_whe
curl -OL https://github.com/cgohlke/geospatial-wheels/releases/download/%geo_wheels_version%/%shapely% || goto install_python_packages_error
popd
pushd %~dp0
pip install -r %python_requirements% || goto install_python_packages_error
pip install -r %python_requirements% --no-warn-script-location || goto install_python_packages_error
rem Starting with Python 3.8, mpi4py requires MPI DLLs to be present in the module directory: copy them there
xcopy /y %external_path%\%msmpi%\bin\msmpi*.dll %external_path%\%python%\Lib\site-packages\mpi4py\ >nul
......
diff -ur scalapack-2.1.0/CMAKE/FortranMangling.cmake scalapack-2.1.0-patched/CMAKE/FortranMangling.cmake
--- scalapack-2.1.0/CMAKE/FortranMangling.cmake 2019-11-26 21:37:04.000000000 +0100
+++ scalapack-2.1.0-patched/CMAKE/FortranMangling.cmake 2022-01-12 22:36:58.821733800 +0100
@@ -13,12 +13,18 @@
FUNCTION(COMPILE RESULT)
MESSAGE(STATUS "=========")
MESSAGE(STATUS "Compiling and Building BLACS INSTALL Testing to set correct variables")
-
+
+ if(CMAKE_BUILD_TYPE)
+ SET(BUILD_TYPE -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE})
+ endif()
+
# Configure:
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND}
- "-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER}"
- "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" "${PROJECT_SOURCE_DIR}//BLACS/INSTALL"
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/BLACS/INSTALL/
+ "-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER}"
+ "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" "${PROJECT_SOURCE_DIR}/BLACS/INSTALL"
+ -G ${CMAKE_GENERATOR} ${BUILD_TYPE}
+ -DCMAKE_Fortran_COMPILER_FORCED=TRUE -DCMAKE_C_COMPILER_FORCED=TRUE
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/BLACS/INSTALL/
RESULT_VARIABLE RESVAR OUTPUT_VARIABLE LOG1_OUT ERROR_VARIABLE LOG1_ERR
)
if(RESVAR EQUAL 0)
diff -ur scalapack-2.1.0/CMakeLists.txt scalapack-2.1.0-patched/CMakeLists.txt
--- scalapack-2.1.0/CMakeLists.txt 2019-11-26 21:37:04.000000000 +0100
+++ scalapack-2.1.0-patched/CMakeLists.txt 2022-01-12 22:33:46.607205500 +0100
@@ -157,18 +157,18 @@
message(STATUS "--> LAPACK and BLAS were not found. Reference LAPACK and BLAS will be downloaded and installed")
include(ExternalProject)
ExternalProject_Add(
- lapack
- URL http://www.netlib.org/lapack/lapack.tgz
- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${SCALAPACK_BINARY_DIR}
+ lapack
+ URL http://www.netlib.org/lapack/lapack.tgz
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${SCALAPACK_BINARY_DIR}
PREFIX ${SCALAPACK_BINARY_DIR}/dependencies
)
- if (UNIX)
+ if (UNIX OR MINGW)
SET(LAPACK_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/liblapack.a CACHE STRING "LAPACK library" FORCE)
SET(BLAS_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/libblas.a CACHE STRING "BLAS library" FORCE)
- else (UNIX) # On Windows
+ else () # MSVC
SET(LAPACK_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/liblapack.lib CACHE STRING "LAPACK library" FORCE)
SET(BLAS_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/libblas.lib CACHE STRING "BLAS library" FORCE)
- endif (UNIX)
+ endif ()
ENDIF()
ENDIF()
@@ -230,11 +230,11 @@
append_subdir_files(src "SRC")
append_subdir_files(src-C "SRC")
-if (UNIX)
+if (UNIX OR MINGW)
add_library(scalapack ${blacs} ${tools} ${tools-C} ${extra_lapack} ${pblas} ${pblas-F} ${ptzblas} ${ptools} ${pbblas} ${redist} ${src} ${src-C})
- target_link_libraries( scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ target_link_libraries(scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
scalapack_install_library(scalapack)
-else (UNIX) # Need to separate Fortran and C Code
+else () # Need to separate Fortran and C Code
OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON )
add_library(scalapack ${blacs} ${tools-C} ${pblas} ${ptools} ${redist} ${src-C})
target_link_libraries( scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
@@ -242,7 +242,7 @@
target_link_libraries( scalapack-F ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
scalapack_install_library(scalapack)
scalapack_install_library(scalapack-F)
-endif (UNIX)
+endif ()
add_subdirectory(TESTING)
# --------------------------------------------------
diff -ur scalapack-2.1.0/scalapack_build.cmake scalapack-2.1.0-patched/scalapack_build.cmake
--- scalapack-2.1.0/scalapack_build.cmake 2019-11-26 21:37:04.000000000 +0100
+++ scalapack-2.1.0-patched/scalapack_build.cmake 2022-01-12 22:31:42.310881200 +0100
@@ -2,7 +2,7 @@
###################################################################
# The values in this section must always be provided
###################################################################
-if(UNIX)
+if(UNIX OR MINGW)
if(NOT compiler)
set(compiler gcc)
endif(NOT compiler)
@@ -12,7 +12,7 @@
if(NOT full_compiler)
set(full_compiler g++)
endif(NOT full_compiler)
-endif(UNIX)
+endif()
if(EXISTS "/proc/cpuinfo")
set(parallel 1)
@@ -24,7 +24,7 @@
endforeach(line)
endif()
-if(WIN32)
+if(MSVC)
set(VSLOCATIONS
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Setup;VsCommonDir]/MSDev98/Bin"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.0\\Setup\\VS;EnvironmentDirectory]"
@@ -57,7 +57,7 @@
set(CTEST_CMAKE_GENERATOR "${GENERATOR}")
message("${CTEST_CMAKE_GENERATOR} - found")
set(compiler cl)
-endif(WIN32)
+endif()
find_program(HOSTNAME NAMES hostname)
find_program(UNAME NAMES uname)
numpy==1.26
numpy==1.26.4
scipy
matplotlib
mpi4py
......@@ -13,9 +13,9 @@ seaborn
# GDAL, Fiona and Rasterio Python packages cannot be installed using PyPI on Windows
# Also, the version of Shapely that comes through pip is unstable
# Instead, we need to use unofficial wheels from Christoph Gohlke’s website
.\wheels\GDAL-3.8.2-cp311-cp311-win_amd64.whl
.\wheels\fiona-1.9.5-cp311-cp311-win_amd64.whl
.\wheels\rasterio-1.3.9-cp311-cp311-win_amd64.whl
.\wheels\shapely-2.0.2-cp311-cp311-win_amd64.whl
.\wheels\GDAL-3.9.2-cp311-cp311-win_amd64.whl
.\wheels\fiona-1.10.1-cp311-cp311-win_amd64.whl
.\wheels\rasterio-1.3.11-cp311-cp311-win_amd64.whl
.\wheels\shapely-2.0.6-cp311-cp311-win_amd64.whl
geopandas
pyqt5
\ No newline at end of file
affine==2.4.0
anyio==4.6.2.post1
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==3.0.0
async-lru==2.0.4
attrs==24.2.0
babel==2.16.0
beautifulsoup4==4.12.3
bleach==6.2.0
certifi==2024.8.30
cffi==1.17.1
chardet==5.2.0
charset-normalizer==3.4.0
click==8.1.7
click-plugins==1.1.1
cligj==0.7.2
colorama==0.4.6
comm==0.2.2
contourpy==1.3.1
cycler==0.12.1
debugpy==1.8.9
decorator==5.1.1
defusedxml==0.7.1
doxypypy==0.8.8.7
et_xmlfile==2.0.0
executing==2.1.0
fastjsonschema==2.21.1
.\wheels\fiona-1.10.1-cp311-cp311-win_amd64.whl
fonttools==4.55.0
fqdn==1.5.1
.\wheels\GDAL-3.9.2-cp311-cp311-win_amd64.whl
geopandas==1.0.1
h11==0.14.0
httpcore==1.0.7
httpx==0.28.0
idna==3.10
ipykernel==6.29.5
ipython==8.30.0
ipywidgets==8.1.5
isoduration==20.11.0
jedi==0.19.2
Jinja2==3.1.4
json5==0.10.0
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter==1.1.1
jupyter-console==6.6.3
jupyter-events==0.10.0
jupyter-lsp==2.2.5
jupyter_client==8.6.3
jupyter_core==5.7.2
jupyter_server==2.14.2
jupyter_server_terminals==0.5.3
jupyterlab==4.2.6
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.3
jupyterlab_widgets==3.0.13
kiwisolver==1.4.7
lxml==5.3.0
MarkupSafe==3.0.2
matplotlib==3.9.3
matplotlib-inline==0.1.7
meson==1.6.0
mistune==3.0.2
mpi4py==4.0.1
nbclient==0.10.1
nbconvert==7.16.4
nbformat==5.10.4
nest-asyncio==1.6.0
notebook==7.2.2
notebook_shim==0.2.4
numpy==1.26.4
openpyxl==3.1.5
overrides==7.7.0
OWSLib==0.32.0
packaging==24.2
pandas==2.2.3
pandocfilters==1.5.1
parso==0.8.4
pillow==11.0.0
platformdirs==4.3.6
prometheus_client==0.21.0
prompt_toolkit==3.0.48
psutil==6.1.0
pure_eval==0.2.3
pycparser==2.22
Pygments==2.18.0
pyogrio==0.10.0
pyparsing==3.2.0
pyproj==3.7.0
PyQt5==5.15.11
PyQt5-Qt5==5.15.2
PyQt5_sip==12.15.0
python-dateutil==2.9.0.post0
python-json-logger==2.0.7
pytz==2024.2
pywin32==308
pywinpty==2.0.14
PyYAML==6.0.2
pyzmq==26.2.0
.\wheels\rasterio-1.3.11-cp311-cp311-win_amd64.whl
referencing==0.35.1
requests==2.32.3
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.21.0
Rtree==1.3.0
scipy==1.14.1
seaborn==0.13.2
Send2Trash==1.8.3
.\wheels\shapely-2.0.6-cp311-cp311-win_amd64.whl
six==1.16.0
sniffio==1.3.1
snuggs==1.4.7
soupsieve==2.6
stack-data==0.6.3
terminado==0.18.1
tinycss2==1.4.0
tornado==6.4.2
traitlets==5.14.3
types-python-dateutil==2.9.0.20241003
tzdata==2024.2
uri-template==1.3.0
urllib3==2.2.3
wcwidth==0.2.13
webcolors==24.11.1
webencodings==0.5.1
websocket-client==1.8.0
widgetsnbextension==4.0.13
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment