[petsc-users] Integrating PETSc with existing software using CMake

Hadayat Seddiqi hadsed at gmail.com
Mon Jul 30 18:27:35 CDT 2012


Hi Jed,

Apparently it's failing to run the test script (it says
PETSC_EXECUTABLE_RUNS was not set). If I'm correct, the output of the
failed test script should be in CMakeFiles/CMakeError.log . Looking at
this, it gives me the following:

In file included from /home/h37/petsc-3.2-p7/include/petscis.h:7,
                 from /home/h37/petsc-3.2-p7/include/petscvec.h:9,
                 from /home/h37/petsc-3.2-p7/include/petscmat.h:6,
                 from /home/h37/petsc-3.2-p7/include/petscdm.h:6,
                 from /home/h37/petsc-3.2-p7/include/petscpc.h:6,
                 from /home/h37/petsc-3.2-p7/include/petscksp.h:6,
                 from /home/h37/petsc-3.2-p7/include/petscsnes.h:6,
                 from /home/h37/petsc-3.2-p7/include/petscts.h:7,
                 from
/home/h37/sapphiresimulator/FOP/build/CMakeFiles/CMakeTmp/src.c:3:
/home/h37/petsc-3.2-p7/include/petscsys.h:105:17: error: mpi.h: No such
file or director

And of course a lot more afterwards. How is it possible that it cannot find
MPI, even though all of the test cases and example/tutorial programs worked
with mpi?

I realize it's probably bad practice, but I also thought I would try to
disable this flag by forcing PETSC_EXECUTABLE_RUNS to "YES", but it doesn't
seem to work. I tried commenting out if (${${run}}) and the corresponding
endif, as well as moving it outside the macro. I feel rather silly about
this, but I just cannot get it to work.

Thanks,

Had

On Mon, Jul 30, 2012 at 5:36 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> On Mon, Jul 30, 2012 at 4:19 PM, Hadayat Seddiqi <hadsed at gmail.com> wrote:
>
>> Hello,
>>
>> I'm working on a large numerical software project whose framework has
>> largely been developed already. We're using CMake to generate makefiles.
>> I'm also using SLEPc (for full disclosure). The examples given by PETSc and
>> SLEPc documentation require me to include makefiles, but I don't know of
>> any straightforward way to command CMake to do this for me.
>>
>> I have looked at the FAQ's link for the CMake question:
>> https://github.com/jedbrown/dohp But this seems very old, and in any
>> case it doesn't exactly work.
>>
>
> The CMake stuff is here.
>
> https://github.com/jedbrown/cmake-modules/
>
> I'm not an expert on CMake, so I couldn't say what was the causing the
>> problem, but in the end it told me it could not find the PETSc libraries.
>> It seemed to be rather complicated-- I know PETSc will be where I need it,
>> so I don't need all the verification that it's there and everything works.
>> I thought, with the benefit of more intimate knowledge of how PETSc runs,
>> that someone could show a much simpler way (it seems to me that this ought
>> to be the case).
>>
>
> The problem is that there are lots of ways that things can "not work", so
> its important for the FindPETSc.cmake script to really try. Also, CMake
> insists on taking parameters in a different way (e.g. converting
> command-line flags to full paths).
>
> Have you looked at the logs (CMakeFiles/CMake{Output,Error}.log
>
> Here is more active package that uses the FindPETSc.cmake script
>
> https://github.com/pism/pism
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120730/5cc5c137/attachment.html>


More information about the petsc-users mailing list