Skip to content

Commit

Permalink
[CI] Compile GALAHAD with dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
amontoison committed Jan 26, 2024
1 parent bcdf401 commit 60a9777
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 18 deletions.
35 changes: 26 additions & 9 deletions .github/workflows/meson.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,12 +96,27 @@ jobs:
PLATFORM="x86_64-w64-mingw32"
choco install wget
fi
if [[ "${{matrix.int64}}" == "true" ]]; then
wget https://github.com/JuliaBinaryWrappers/OpenBLAS_jll.jl/releases/download/OpenBLAS-v0.3.26%2B0/OpenBLAS.v0.3.26.$PLATFORM-libgfortran5.tar.gz
tar -xzvf OpenBLAS.v0.3.26.$PLATFORM-libgfortran5.tar.gz -C deps
if [[ "${{matrix.compiler}}" == "gcc" ]]; then
if [[ "${{matrix.int64}}" == "true" ]]; then
wget https://github.com/JuliaBinaryWrappers/OpenBLAS_jll.jl/releases/download/OpenBLAS-v0.3.26%2B0/OpenBLAS.v0.3.26.$PLATFORM-libgfortran5.tar.gz
# tar -xzvf OpenBLAS.v0.3.26.$PLATFORM-libgfortran5.tar.gz -C deps
else
wget https://github.com/JuliaBinaryWrappers/OpenBLAS32_jll.jl/releases/download/OpenBLAS32-v0.3.26%2B0/OpenBLAS32.v0.3.26.$PLATFORM-libgfortran5.tar.gz
tar -xzvf OpenBLAS32.v0.3.26.$PLATFORM-libgfortran5.tar.gz -C deps
wget https://github.com/JuliaBinaryWrappers/MUMPS_seq_jll.jl/releases/download/MUMPS_seq-v5.4.1%2B0/MUMPS_seq.v5.4.1.$PLATFORM-libgfortran5.tar.gz
tar -xzvf MUMPS_seq.v5.4.1.$PLATFORM-libgfortran5.tar.gz -C deps
wget https://github.com/JuliaBinaryWrappers/Hwloc_jll.jl/releases/download/Hwloc-v2.10.0%2B0/Hwloc.v2.10.0.$PLATFORM.tar.gz
tar -xzvf Hwloc.v2.10.0.$PLATFORM.tar.gz -C deps
wget https://github.com/JuliaBinaryWrappers/METIS_jll.jl/releases/download/METIS-v5.1.2%2B0/METIS.v5.1.2.$PLATFORM.tar.gz
tar -xzvf METIS.v5.1.2.$PLATFORM.tar.gz -C deps
# wget https://github.com/JuliaBinaryWrappers/SCOTCH_jll.jl/releases/download/SCOTCH-v7.0.4%2B0/SCOTCH.v7.0.4.$PLATFORM.tar.gz
# tar -xzvf SCOTCH.v7.0.4.$PLATFORM.tar.gz -C deps
# wget https://github.com/JuliaBinaryWrappers/PaStiX_jll.jl/releases/download/PaStiX-v6.3.0%2B0/PaStiX.v6.3.0.$PLATFORM-libgfortran5.tar.gz
# tar -xzvf PaStiX.v6.3.0.$PLATFORM-libgfortran5.tar.gz -C deps
fi
fi
# wget https://github.com/JuliaBinaryWrappers/OpenBLAS32_jll.jl/releases/download/OpenBLAS32-v0.3.26%2B0/OpenBLAS32.v0.3.26.$PLATFORM-libgfortran5.tar.gz
# tar -xzvf OpenBLAS32.v0.3.26.$PLATFORM-libgfortran5.tar.gz -C deps
# wget https://github.com/JuliaBinaryWrappers/MKL_jll.jl/releases/download/MKL-v2023.2.0%2B0/MKL.v2023.2.0.$PLATFORM.tar.gz
# tar -xzvf MKL.v2023.2.0.$PLATFORM.tar.gz -C deps
- name: Set the environment variables LIBRARY_PATH, LD_LIBRARY_PATH and DYLD_LIBRARY_PATH
if: matrix.os != 'windows-latest'
Expand Down Expand Up @@ -153,8 +168,10 @@ jobs:
SSIDS="true"
BLAS="openblas"
LAPACK="openblas"
BLAS_PATH=""
LAPACK_PATH=""
BLAS_PATH="$DEPS/deps/$LIBDIR"
LAPACK_PATH="$DEPS/deps/$LIBDIR"
METIS_PATH="$DEPS/deps/$LIBDIR"
MUMPS_PATH="$DEPS/deps/$LIBDIR"
PYTHON_INTERFACE="true"
if [[ "${{matrix.compiler}}" == "nvidia-hpc" ]]; then
CSTD="none"
Expand All @@ -168,8 +185,6 @@ jobs:
INT64="true"
BLAS="openblas64_"
LAPACK="openblas64_"
BLAS_PATH="$DEPS/deps/$LIBDIR"
LAPACK_PATH="$DEPS/deps/$LIBDIR"
fi
if [[ "${{matrix.compiler}}" == "nvidia-hpc" || "${{matrix.compiler}}" == "intel-classic" || ( "${{matrix.compiler}}" == "intel" && "${{matrix.os}}" == "windows-latest" ) ]]; then
SSIDS="false"
Expand All @@ -186,6 +201,8 @@ jobs:
-Dgalahad_int64=$INT64 \
-Dlibblas_path=${BLAS_PATH} \
-Dliblapack_path=${LAPACK_PATH} \
-Dlibmetis_path=${METIS_PATH} \
-Dlibmumps_path=${MUMPS_PATH} \
-Dlibblas=$BLAS \
-Dliblapack=$LAPACK
Expand Down
22 changes: 18 additions & 4 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,10 @@ libmetis_name = get_option('libmetis')
libhsl_name = get_option('libhsl')
libwsmp_name = get_option('libwsmp')
libpardiso_name = get_option('libpardiso')
libspm_name = get_option('libspm')
libspmf_name = get_option('libspmf')
libpastix_name = get_option('libpastix')
libpastixf_name = get_option('libpastixf')
libampl_name = get_option('libampl')
libcutest_single_name = get_option('libcutest_single')
libcutest_double_name = get_option('libcutest_double')
Expand All @@ -102,7 +104,7 @@ libmetis_path = get_option('libmetis_path')
libhsl_path = get_option('libhsl_path')
libwsmp_path = get_option('libwsmp_path')
libpardiso_path = get_option('libpardiso_path')
libspmf_path = get_option('libspmf_path')
libspm_path = get_option('libspm_path')
libpastix_path = get_option('libpastix_path')
libampl_path = get_option('libampl_path')
libcutest_single_path = get_option('libcutest_single_path')
Expand All @@ -115,6 +117,8 @@ libhwloc_include = get_option('libhwloc_include')
libcutest_single_modules = get_option('libcutest_single_modules')
libcutest_double_modules = get_option('libcutest_double_modules')
libhsl_modules = get_option('libhsl_modules')
libpastix_modules = get_option('libpastix_modules')
libspm_modules = get_option('libspm_modules')

# Dependencies
libblas = fc.find_library(libblas_name, dirs : libblas_path, required : false)
Expand All @@ -125,8 +129,10 @@ libcutest_single = fc.find_library(libcutest_single_name, dirs : libcutest_singl
libcutest_double = fc.find_library(libcutest_double_name, dirs : libcutest_double_path, required : false)
libwsmp = fc.find_library(libwsmp_name, dirs : libwsmp_path, required : false)
libpardiso = fc.find_library(libpardiso_name, dirs : libpardiso_path, required : false)
libspmf = fc.find_library(libspmf_name, dirs : libspmf_path, required : false)
libspm = fc.find_library(libspm_name, dirs : libspm_path, required : false)
libspmf = fc.find_library(libspmf_name, dirs : libspm_path, required : false)
libpastix = fc.find_library(libpastix_name, dirs : libpastix_path, required : false)
libpastixf = fc.find_library(libpastixf_name, dirs : libpastix_path, required : false)
libsmumps = fc.find_library('smumps', dirs : libmumps_path, required : false)
libdmumps = fc.find_library('dmumps', dirs : libmumps_path, required : false)
libampl = fc.find_library(libampl_name, dirs : libampl_path, required : false)
Expand Down Expand Up @@ -164,8 +170,8 @@ endif
libgalahad_single_deps = [libsmumps, libcutest_single]
libgalahad_double_deps = [libdmumps, libcutest_double]
libgalahad_deps = [libblas, liblapack, libmetis, libhsl,
libwsmp, libpardiso, libspmf, libpastix,
libampl, libmpi, libhwloc]
libwsmp, libpardiso, libspm, libspmf, libpastix,
libpastixf, libampl, libmpi, libhwloc]

# Fortran files *.F90 or *.f90
libgalahad_src = []
Expand Down Expand Up @@ -213,7 +219,15 @@ galahad_python_tests = []
# Folders that contain headers and Fortran modules
libgalahad_include = [include_directories('include'),
include_directories('src/dum/include'),
<<<<<<< HEAD
include_directories('src/ampl')] + libhsl_modules + libhwloc_include
=======
include_directories('src/ampl')]

libgalahad_include += libhsl_modules
libgalahad_include += libspm_modules
libgalahad_include += libpastix_modules
>>>>>>> 66a8e27f ([CI] Compile GALAHAD with dependencies)

libgalahad_single_include = libgalahad_include + libcutest_single_modules
libgalahad_double_include = libgalahad_include + libcutest_double_modules
Expand Down
26 changes: 23 additions & 3 deletions meson_options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,11 @@ option('libpardiso',
value : 'pardiso',
description : 'PARDISO library against which to link')

option('libspm',
type : 'string',
value : 'spm',
description : 'SPM library against which to link')

option('libspmf',
type : 'string',
value : 'spmf',
Expand All @@ -88,6 +93,11 @@ option('libpastix',
value : 'pastix',
description : 'PASTIX library against which to link')

option('libpastixf',
type : 'string',
value : 'pastixf',
description : 'PASTIXF library against which to link')

option('libampl',
type : 'string',
value : 'ampl',
Expand Down Expand Up @@ -138,15 +148,15 @@ option('libpardiso_path',
value : [],
description : 'Additional directories to search for the PARDISO library')

option('libspmf_path',
option('libspm_path',
type : 'array',
value : [],
description : 'Additional directories to search for the SPMF library')
description : 'Additional directories to search for the SPM libraries')

option('libpastix_path',
type : 'array',
value : [],
description : 'Additional directories to search for the PASTIX library')
description : 'Additional directories to search for the PASTIX libraries')

option('libmumps_path',
type : 'array',
Expand All @@ -168,6 +178,16 @@ option('libhwloc_include',
value : [],
description : 'Additional directories to search for the HWLOC header files')

option('libpastix_modules',
type : 'array',
value : [],
description : 'Additional directories to search for the PASTIX modules')

option('libspm_modules',
type : 'array',
value : [],
description : 'Additional directories to search for the SPM modules')

option('libhsl_modules',
type : 'array',
value : [],
Expand Down
4 changes: 2 additions & 2 deletions src/dum/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,11 @@ if not libpardiso.found()
libgalahad_src += files('pardiso.F90')
endif

if not libspmf.found()
if not (libspm.found() and libspmf.found())
libgalahad_src += files('spmf.F90', 'spmf_enums.F90')
endif

if not libpastix.found()
if not (libpastix.found() and libpastixf.found())
libgalahad_src += files('pastixf.F90', 'pastixf_enums.F90')
endif

Expand Down

0 comments on commit 60a9777

Please sign in to comment.