[ CMakeLists.txt ] PETSc
Hello,
I have two installations of PETSc:
- custom (version 3.5)
- packaged (version 3.4)
In the packaged one (that comes from libpetsc3.4.2-dev_3.4.2.dfsg1-6_amd64.deb ) the symbolic links libpetscksp, libpetscvec ... are created, even if they all finally points to libpetsc.so (see below)
I ccmake gmsh providing the PETSC_DIR to point to the custom installation.
With the CMakeLists.txt gmsh provides, we we links against both version (since libpetsc*
I suggest to only look - at the find_all_library (line 984) - in the ${ENV_PETSC_DIR} directory.
There is one other method: determine the PETSC_VERSION thanks to the petscversion.h file see https://github.com/jedbrown/cmake-modules/blob/master/FindPETSc.cmake#L50
All the best,
VH
libpetsc postinst script
# Make alternatives links
if [ "$1" = "configure" ]; then
install -d /usr/share/aclocal
update-alternatives --install /usr/lib/petsc petsc /usr/lib/petscdir/3.4.2 3420 \
--slave /usr/bin/petscarch petscarch /usr/lib/petscdir/3.4.2/bin/petscarch \
--slave /usr/bin/mpirun_lam mpirun_lam /usr/lib/petscdir/3.4.2/bin/mpirun_lam \
--slave /usr/share/man/man1/petscarch.1.gz petscarch.1.gz /usr/lib/petscdir/3.4.2/bin/petscarch.1.gz \
--slave /usr/share/man/man1/mpirun_lam.1.gz mpirun_lam.1.gz /usr/lib/petscdir/3.4.2/bin/mpirun_lam.1.gz \
--slave /usr/include/petsc petscinclude /usr/lib/petscdir/3.4.2/include \
--slave /usr/share/aclocal/petsc.m4 petsc.m4 /usr/lib/petscdir/3.4.2/aclocal/petsc.m4 \
--slave /usr/lib/libpetsc.a libpetsc.a /usr/lib/petscdir/3.4.2/lib/libO/libpetsc.a \
--slave /usr/lib/libpetsc.so libpetsc.so /usr/lib/libpetsc.so.3.4.2 \
--slave /usr/lib/libpetscdm.a libpetscdm.a /usr/lib/petscdir/3.4.2/lib/libO/libpetsc.a \
--slave /usr/lib/libpetscdm.so libpetscdm.so /usr/lib/libpetsc.so.3.4.2 \
--slave /usr/lib/libpetscfortran.a libpetscfortran.a /usr/lib/petscdir/3.4.2/lib/libO/libpetsc.a \
--slave /usr/lib/libpetscmat.a libpetscmat.a /usr/lib/petscdir/3.4.2/lib/libO/libpetsc.a \
--slave /usr/lib/libpetscmat.so libpetscmat.so /usr/lib/libpetsc.so.3.4.2 \
--slave /usr/lib/libpetscksp.a libpetscksp.a /usr/lib/petscdir/3.4.2/lib/libO/libpetsc.a \
--slave /usr/lib/libpetscksp.so libpetscksp.so /usr/lib/libpetsc.so.3.4.2 \
--slave /usr/lib/libpetscsnes.a libpetscsnes.a /usr/lib/petscdir/3.4.2/lib/libO/libpetsc.a \
--slave /usr/lib/libpetscsnes.so libpetscsnes.so /usr/lib/libpetsc.so.3.4.2 \
--slave /usr/lib/libpetscts.a libpetscts.a /usr/lib/petscdir/3.4.2/lib/libO/libpetsc.a \
--slave /usr/lib/libpetscts.so libpetscts.so /usr/lib/libpetsc.so.3.4.2 \
--slave /usr/lib/libpetscvec.a libpetscvec.a /usr/lib/petscdir/3.4.2/lib/libO/libpetsc.a \
--slave /usr/lib/libpetscvec.so libpetscvec.so /usr/lib/libpetsc.so.3.4.2
update-alternatives --install /usr/share/aclocal/math-blaslapack.m4 math-blaslapack.m4 /usr/lib/petscdir/3.4.2/aclocal/math-blaslapack.m4 1
fi