[petsc-dev] CMake: make, install, find_package ?

Satish Balay balay at mcs.anl.gov
Sun Nov 5 10:34:46 CST 2017


Sure - but I still disagree on  your premise:

If:
 'CMakeLists.txt' exists
then:
 'mkdir BUILD; cd BUILD; cmake -DPETSc_CMAKE_ARCH=arch-linux2-c-opt -DCMAKE_INSTALL_PREFIX=/tmp/local ..; make; make install' should work!

Its equivalent to assuming:

if 'makefile' exists 'make all && make install' will work.

There is no such universality - and documentation is primary way of resolving this.

I don't think we should remove CMakeLists.txt for this reason.
[We could remove it if we decide to remove all cmake code in petsc]

Note: 'make all-cmake' the previously documented mode works for me. [but might not work for all use cases]

Satish


On Sun, 5 Nov 2017, Franck Houssen wrote:

> OK, guys, let's summarize:
> - I just say that generating a CMakeLists.txt (that can't be used) IS misleading for any users ! :D
> - You don't want to deal with CMake: OK, I am fine with that, no problem (I can understand that).
> - Now I know (!...), I'll stick to pkg-config... Because now I know !
> 
> Bonne journée,
> 
> Franck
> 
> ----- Mail original -----
> > De: "Satish Balay" <balay at mcs.anl.gov>
> > À: "Jed Brown" <jed at jedbrown.org>
> > Cc: "Franck Houssen" <franck.houssen at inria.fr>, "petsc-dev" <petsc-dev at mcs.anl.gov>
> > Envoyé: Dimanche 5 Novembre 2017 17:13:25
> > Objet: Re: [petsc-dev] CMake: make, install, find_package ?
> > 
> > On Sun, 5 Nov 2017, Jed Brown wrote:
> > 
> > > Franck Houssen <franck.houssen at inria.fr> writes:
> > > 
> > > > Here is a bundle you can pull for you to have a look (franck/cmake branch
> > > > - push KO to the bitbucket as I don't know which loggin/password to
> > > > use): take it or leave it ! :D
> > > >
> > > > On debian, I have a "real" cmake build (not the configure traces) in a
> > > > dedicated BUILD directory (make things cleaner).
> > > 
> > > PETSC_ARCH is a dedicated build directory.
> > > 
> > > Porting a configuration from our Python (BuildSystem) to CMake for
> > > cross-compilation and all the optional dependencies would be monumental
> > > task and would result in a portability regression for systems where
> > > platform files are not yet available.
> > > 
> > > > More important: getting find_package to work will be much more reliable
> > > > than resorting to FindPETSc.cmake (often KO as architecture/OS
> > > > specific...).
> > > 
> > > Please use the pkg-config file that PETSc generates.
> > > 
> > > > I would understand you give up with CMake for reason of your own reason
> > > > (!)...
> > > > But if so, the simple presence of CMakeLists.txt may be misleading
> > > > (personal opinion: people can go "let's try to use it".).
> > > >
> > > > Hope this helps !...
> > > >
> > > > Franck
> > > >
> > > > /petsc> ./configure; mkdir BUILD; cd BUILD; cmake
> > > > -DPETSc_CMAKE_ARCH=arch-linux2-c-opt -DCMAKE_INSTALL_PREFIX=/tmp/local
> > > > ..; make; make install
> > 
> > And we never supported this build mode - or documented it - or recommended
> > it.
> > 
> > Configure used cmake to generate gnumakefiles [so presumably this step is
> > already done]. So the next step would be 'make all-cmake'
> > This basically did:
> > 
> > cd arch-linux2-c-opt && make -j  ${MAKE_NP}
> > 
> > Check 'ccmake:' target in lib/petsc/conf/rules
> > 
> > Satish
> > 
> > 
> > > > ...
> > > > -- Configuring done
> > > > -- Generating done
> > > > -- Build files have been written to:
> > > > /home/fghoussen/Documents/INRIA/petsc/BUILD
> > > > Scanning dependencies of target petsc
> > > > [  0%] Building Fortran object
> > > > CMakeFiles/petsc.dir/src/sys/f90-mod/petscsysmod.F.o
> > > > [  0%] Building Fortran object
> > > > CMakeFiles/petsc.dir/src/vec/f90-mod/petscvecmod.F.o
> > > > ...
> > > >
> > > > ----- Mail original -----
> > > >> De: "Satish Balay" <balay at mcs.anl.gov>
> > > >> À: "Franck Houssen" <franck.houssen at inria.fr>
> > > >> Cc: "petsc-dev" <petsc-dev at mcs.anl.gov>, "Jed Brown" <jed at jedbrown.org>
> > > >> Envoyé: Dimanche 5 Novembre 2017 15:52:44
> > > >> Objet: Re: [petsc-dev] CMake: make, install, find_package ?
> > > >> 
> > > >> On Sun, 5 Nov 2017, Franck Houssen wrote:
> > > >> 
> > > >> > > Or are you having trouble with
> > > >> > > https://github.com/jedbrown/cmake-modules/blob/master/FindPETSc.cmake
> > > >> > > ?
> > > >> > > [and not with PETSc build?]
> > > >> > 
> > > >> > At first, I was trying to understand why find_package(petsc) was not
> > > >> > working.
> > > >> > So then, I looked at the way the make/install was done: that lead me
> > > >> > to
> > > >> > look at the CMakeLists.txt and test it.
> > > >> > 
> > > >> 
> > > >> > > > What did not work for you? Please send relavent logs.
> > > >> > 
> > > >> > Didn't find mpi.mod.
> > > >> > find_package(MPI) was missing: I just added it.
> > > >> > Still can push if you want to have a look (?).
> > > >> 
> > > >> So your primary issue is with FindPETSc.cmake - and the fix you have is
> > > >> for
> > > >> petsc?
> > > >> 
> > > >> Sure post the patch or push [where?] and Jed might review..
> > > >> 
> > > >> Instructions to reproduce the problem will help.
> > > >> 
> > > >> Satish
> > > >> 
> > > 
> > 
> 


More information about the petsc-dev mailing list