[petsc-users] Placing FindPETSc.cmake

Jed Brown jed at jedbrown.org
Fri May 11 17:51:54 CDT 2018


Once again, see the repository from which you copied this script.

Evan Um <evanum at gmail.com> writes:

> Jed,
>
> After all was removed, I see a new error from FindPETSc.cmake.
> I added to cmake
> SET(CMAKE_CXX_COMPILER mpicxx)
> FIND_PACKAGE(MPI REQUIRED)
> INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH})
> and tested but no luck.
>
> It seems that I need to let FindPETSc.cmake know a compiler location.
> Thanks for your help.
>
> Evan
>
>
> ------------
> cmake_minimum_required(VERSION 3.10)
>
> project(hellopetsc)
> list (APPEND CMAKE_MODULE_PATH /home/evan/CLionProjects/hellopetsc)
>
> SET(CMAKE_CXX_STANDARD 11)
> SET(CMAKE_C_COMPILER mpicc)
> SET(CMAKE_CXX_COMPILER mpicxx)
>
> SET (PETSC_ARCH "arch-linux2-c-debug")
>
> find_package(PETSc COMPONENTS CXX)
>
> add_executable(hellopetsc main.cpp)
> -------------
> /home/evan/opt/clion-2018.1.2/bin/cmake/bin/cmake -DCMAKE_BUILD_TYPE=Debug
> -G "CodeBlocks - Unix Makefiles" /home/evan/CLionProjects/hellopetsc
> CMake Error at FindPETSc.cmake:179 (include):
>   include could not find load file:
>
>     ResolveCompilerPaths
> Call Stack (most recent call first):
>   CMakeLists.txt:12 (find_package)
>
>
> CMake Error at FindPETSc.cmake:181 (resolve_includes):
>   Unknown CMake command "resolve_includes".
> Call Stack (most recent call first):
>   CMakeLists.txt:12 (find_package)
>
>
> -- Configuring incomplete, errors occurred!
> See also
> "/home/evan/CLionProjects/hellopetsc/cmake-build-debug/CMakeFiles/CMakeOutput.log".
> See also
> "/home/evan/CLionProjects/hellopetsc/cmake-build-debug/CMakeFiles/CMakeError.log".
>
> [Finished]
>
>
> On Fri, May 11, 2018 at 3:10 PM, Jed Brown <jed at jedbrown.org> wrote:
>
>> Evan Um <evanum at gmail.com> writes:
>>
>> > Matt and Jed,
>> >
>> > Thanks for your comments.
>> >
>> > I still have a trouble in using FindPETSc.cmake. I removed the directory:
>> > (i.e. canceling cp - r /home/evan/petsc//lib/petsc/
>> > conf/rules /home/evan/petsc//lib/petsc/conf/petscrules) and explicitly
>> set
>> > SET (PETSC_ARCH "arch-linux2-c-debug all").
>>
>> No " all".
>>
>> > Now, FindPETSc.cmake does not recognize PETSC_DIR and PETSC_ARCH. When I
>> > read the comments inside FindPETSc.cmake, the twos should be refined by
>> > FindPETSc.cmake. BTW, I have my petsc at /home/evan/petsc. So all are
>> > defaults.
>> >
>> > Thanks for your kind help.
>> >
>> > Evan
>> >
>> > --------------
>> > cmake_minimum_required(VERSION 3.10)
>> >
>> > project(hellopetsc)
>> > list (APPEND CMAKE_MODULE_PATH /home/evan/CLionProjects/hellopetsc)
>> >
>> > SET(CMAKE_CXX_STANDARD 11)
>> > SET(CMAKE_C_COMPILER mpicc)
>> > SET(CMAKE_CXX_COMPILER mpicxx)
>> >
>> > SET (PETSC_ARCH "arch-linux2-c-debug all")
>> >
>> > find_package(PETSc COMPONENTS CXX)
>> >
>> > add_executable(hellopetsc main.cpp)
>> > --------------
>> > /home/evan/opt/clion-2018.1.2/bin/cmake/bin/cmake
>> -DCMAKE_BUILD_TYPE=Debug
>> > -G "CodeBlocks - Unix Makefiles" /home/evan/CLionProjects/hellopetsc
>> > CMake Error at FindPETSc.cmake:140 (message):
>> >   The pair PETSC_DIR=/home/evan/petsc PETSC_ARCH=arch-linux2-c-debug all
>> do
>> >   not specify a valid PETSc installation
>> > Call Stack (most recent call first):
>> >   CMakeLists.txt:12 (find_package)
>> >
>> >
>> > -- PETSc could not be found.  Be sure to set PETSC_DIR and PETSC_ARCH.
>> > (missing: PETSC_INCLUDES PETSC_LIBRARIES PETSC_EXECUTABLE_RUNS) (found
>> > version "3.9.1")
>> > -- Configuring incomplete, errors occurred!
>> > See also
>> > "/home/evan/CLionProjects/hellopetsc/cmake-build-debug/
>> CMakeFiles/CMakeOutput.log".
>> > See also
>> > "/home/evan/CLionProjects/hellopetsc/cmake-build-debug/
>> CMakeFiles/CMakeError.log".
>> >
>> > [Finished]
>> > --------------
>> >
>> >
>> > On Fri, May 11, 2018 at 2:13 PM, Matthew Knepley <knepley at gmail.com>
>> wrote:
>> >
>> >> On Fri, May 11, 2018 at 5:06 PM, Evan Um <evanum at gmail.com> wrote:
>> >>
>> >>> Hi Jed,
>> >>>
>> >>> Thanks for the comment. I added the module but still saw errors
>> (before I
>> >>> arrived here, I had to do cp - r /home/evan/petsc//lib/petsc/
>> >>> conf/rules /home/evan/petsc//lib/petsc/conf/petscrules).
>> >>>
>> >>
>> >> That is wrong. It means PETSC_ARCH is (null) instead of the correct
>> string.
>> >>
>> >>    Matt
>> >>
>> >>
>> >>> They are supposed to be defined by FindPETSc.cmake. How could I solve
>> >>> these errors?
>> >>>
>> >>> Could you also explain a little bit about how to use pkg-config to find
>> >>> PETSc? Thanks!
>> >>>
>> >>> Evan
>> >>>
>> >>> ----------------
>> >>> cmake_minimum_required(VERSION 3.10)
>> >>>
>> >>> project(hellopetsc)
>> >>> list (APPEND CMAKE_MODULE_PATH /home/evan/CLionProjects/hellopetsc)
>> >>>
>> >>> SET(CMAKE_CXX_STANDARD 11)
>> >>> SET(CMAKE_C_COMPILER mpicc)
>> >>> SET(CMAKE_CXX_COMPILER mpicxx)
>> >>>
>> >>> find_package(PETSc COMPONENTS CXX)
>> >>>
>> >>> add_executable(hellopetsc main.cpp)
>> >>> -----------------
>> >>>
>> >>> -----------------
>> >>> /home/evan/opt/clion-2018.1.2/bin/cmake/bin/cmake
>> >>> -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles"
>> >>> /home/evan/CLionProjects/hellopetsc
>> >>> -- PETSc could not be found.  Be sure to set PETSC_DIR and PETSC_ARCH.
>> >>> (missing: PETSC_INCLUDES PETSC_LIBRARIES PETSC_EXECUTABLE_RUNS) (found
>> >>> version "3.9.1")
>> >>> -- Configuring done
>> >>> -- Generating done
>> >>> -- Build files have been written to: /home/evan/CLionProjects/hello
>> >>> petsc/cmake-build-debug
>> >>>
>> >>> [Finished]
>> >>> -----------------
>> >>>
>> >>>
>> >>> On Fri, May 11, 2018 at 12:08 PM, Jed Brown <jed at jedbrown.org> wrote:
>> >>>
>> >>>> Yes, it depends on this module from the same repository.
>> >>>>
>> >>>> Note that you can use pkg-config to find PETSc these days.
>> >>>>
>> >>>> Evan Um <evanum at gmail.com> writes:
>> >>>>
>> >>>> > Hi Stefano,
>> >>>> >
>> >>>> > Thanks for your comment. Now, cmake was able to locate
>> FindPETSc.cmake
>> >>>> file
>> >>>> > in my project directory, but I see a new error.
>> >>>> >
>> >>>> > Evan
>> >>>> >
>> >>>> >
>> >>>> > Messages
>> >>>> > ----------------------------------------------
>> >>>> > /home/evan/opt/clion-2018.1.2/bin/cmake/bin/cmake
>> >>>> -DCMAKE_BUILD_TYPE=Debug
>> >>>> > -G "CodeBlocks - Unix Makefiles" /home/evan/CLionProjects/
>> hellopetsc
>> >>>> > CMake Error at FindPETSc.cmake:123 (include):
>> >>>> >   include could not find load file:
>> >>>> >
>> >>>> >     FindPackageMultipass
>> >>>> > Call Stack (most recent call first):
>> >>>> >   CMakeLists.txt:10 (find_package)
>> >>>> >
>> >>>> >
>> >>>> > CMake Error at FindPETSc.cmake:124 (find_package_multipass):
>> >>>> >   Unknown CMake command "find_package_multipass".
>> >>>> > Call Stack (most recent call first):
>> >>>> >   CMakeLists.txt:10 (find_package)
>> >>>> >
>> >>>> >
>> >>>> > -- Configuring incomplete, errors occurred!
>> >>>> > See also
>> >>>> > "/home/evan/CLionProjects/hellopetsc/cmake-build-debug/CMake
>> >>>> Files/CMakeOutput.log".
>> >>>> > See also
>> >>>> > "/home/evan/CLionProjects/hellopetsc/cmake-build-debug/CMake
>> >>>> Files/CMakeError.log".
>> >>>> > ----------------------------------------------
>> >>>> >
>> >>>> > CMakeLists.txt
>> >>>> > ----------------------------------------------
>> >>>> > /home/evan/opt/clion-2018.1.2/bin/cmake/bin/cmake
>> >>>> -DCMAKE_BUILD_TYPE=Debug
>> >>>> > -G "CodeBlocks - Unix Makefiles" /home/evan/CLionProjects/
>> hellopetsc
>> >>>> > CMake Error at FindPETSc.cmake:123 (include):
>> >>>> >   include could not find load file:
>> >>>> >
>> >>>> >     FindPackageMultipass
>> >>>> > Call Stack (most recent call first):
>> >>>> >   CMakeLists.txt:10 (find_package)
>> >>>> >
>> >>>> >
>> >>>> > CMake Error at FindPETSc.cmake:124 (find_package_multipass):
>> >>>> >   Unknown CMake command "find_package_multipass".
>> >>>> > Call Stack (most recent call first):
>> >>>> >   CMakeLists.txt:10 (find_package)
>> >>>> >
>> >>>> >
>> >>>> > -- Configuring incomplete, errors occurred!
>> >>>> > See also
>> >>>> > "/home/evan/CLionProjects/hellopetsc/cmake-build-debug/CMake
>> >>>> Files/CMakeOutput.log".
>> >>>> > See also
>> >>>> > "/home/evan/CLionProjects/hellopetsc/cmake-build-debug/CMake
>> >>>> Files/CMakeError.log".
>> >>>> >
>> >>>> > [Finished]
>> >>>> >
>> >>>> >
>> >>>> >
>> >>>> > On Fri, May 11, 2018 at 11:34 AM, Stefano Zampini <
>> >>>> stefano.zampini at gmail.com
>> >>>> >> wrote:
>> >>>> >
>> >>>> >> CMAKE is case sensitive on this. You should use find_package(PETSc
>> ….)
>> >>>> >>
>> >>>> >>
>> >>>> >> > On May 11, 2018, at 9:28 PM, Evan Um <evanum at gmail.com> wrote:
>> >>>> >> >
>> >>>> >> > Hi,
>> >>>> >> >
>> >>>> >> > I would like to ask a question about FindPETSc.cmake. I place the
>> >>>> cmake
>> >>>> >> file in the same directory where main.cpp is placed. I also placed
>> >>>> the file
>> >>>> >> in /usr/share/cmake_xx/Modules.
>> >>>> >>
>> >>>> >> Actually, it can be put in any directory pointed by the variable
>> >>>> >> CMAKE_MODULE_PATH. If I were you, I would not modify /usr/share/
>> >>>> >>
>> >>>> >> > Where should i put the file? What else should I do to use the
>> file
>> >>>> in
>> >>>> >> cmake? Do I need any other lines in my cmakelists.txt except
>> >>>> >> find_package(petsc)? Thanks for your comments.
>> >>>> >> >
>> >>>> >> > Evan
>> >>>> >> >
>> >>>> >> > -------------------------------------------------------------
>> >>>> >> >
>> >>>> >> > cmake_minimum_required(VERSION 3.10)
>> >>>> >> >
>> >>>> >> > project(hellopetsc)
>> >>>> >> >
>> >>>> >> > SET(CMAKE_CXX_STANDARD 11)
>> >>>> >> > SET(CMAKE_C_COMPILER mpicc)
>> >>>> >> > SET(CMAKE_CXX_COMPILER mpicxx)
>> >>>> >> >
>> >>>> >> > find_package(PETSC COMPONENTS CXX)
>> >>>> >> >
>> >>>> >> > add_executable(hellopetsc main.cpp)
>> >>>> >> >
>> >>>> >> > ------------------------------------------------------------
>> >>>> >> > CMake Warning at CMakeLists.txt:9 (find_package):
>> >>>> >> >   By not providing "FindPETSC.cmake" in CMAKE_MODULE_PATH this
>> >>>> project
>> >>>> >> has
>> >>>> >> >   asked CMake to find a package configuration file provided by
>> >>>> "PETSC",
>> >>>> >> but
>> >>>> >> >   CMake did not find one.
>> >>>> >> >
>> >>>> >> >   Could not find a package configuration file provided by "PETSC"
>> >>>> with
>> >>>> >> any of
>> >>>> >> >   the following names:
>> >>>> >> >
>> >>>> >> >     PETSCConfig.cmake
>> >>>> >> >     petsc-config.cmake
>> >>>> >> >
>> >>>> >> >   Add the installation prefix of "PETSC" to CMAKE_PREFIX_PATH or
>> set
>> >>>> >> >   "PETSC_DIR" to a directory containing one of the above files.
>> If
>> >>>> >> "PETSC"
>> >>>> >> >   provides a separate development package or SDK, be sure it has
>> >>>> been
>> >>>> >> >   installed.
>> >>>> >>
>> >>>> >>
>> >>>>
>> >>>
>> >>>
>> >>
>> >>
>> >> --
>> >> What most experimenters take for granted before they begin their
>> >> experiments is infinitely more interesting than any results to which
>> their
>> >> experiments lead.
>> >> -- Norbert Wiener
>> >>
>> >> https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
>> >>
>>


More information about the petsc-users mailing list