|
From: Vincent M. <vin...@po...> - 2019-03-05 11:12:31
|
Hi Alan,
I have made some progress concerning PLplot & gtk-fortran:
Le 04/03/2019 à 22:05, Alan W. Irwin a écrit :
> This is just a comment in passing about the installation prefix you
> have chosen by default here. Instead, I suggest you specify the cmake
> option -DCMAKE_INSTALL_PREFIX=<whatever install prefix you like>. The
> prefix you chose instead by default was /usr/local. That is under
> control by the root account which is why you had to install as root.
> But if you use a unique install prefix under user account control
> instead, you don't have to install as the root account, and removing
> that entire prefix directory again for further installation tries is
> so easy compared to removing all the PLplot bits and pieces in
> /usr/local.
I have reverted my virtual machine to the state before building PLplot
and built it with a -DCMAKE_INSTALL_PREFIX:
osboxes@osboxes:~$ mkdir build_pl && cd build_pl
osboxes@osboxes:~/build_pl$ cmake -D CMAKE_INSTALL_PREFIX=/home/osboxes/myplplot ../plplot-5.14.0 >& cmake.out
osboxes@osboxes:~/build_pl$ make VERBOSE=1 >& make.out
osboxes@osboxes:~/build_pl$ make VERBOSE=1 install >& make_install.out
osboxes@osboxes:~/build_pl$ cd /home/osboxes/myplplot/share/plplot5.14.0/examples/fortran/
osboxes@osboxes:~/myplplot/share/plplot5.14.0/examples/fortran$ make
osboxes@osboxes:~/myplplot/share/plplot5.14.0/examples/fortran$ ./x08f
> find_package(plplot) (which you use below) just works for me here when
> I use it to build the installed examples that are linked with the
> installed PLplot libraries. Did you forget to set the environment
> variable CMAKE_PREFIX_PATH to your PLplot prefix (/usr/local for now,
> see above) so that the installed version of PLplot can be found?
First I tried this which had the advantage to give me some interesting
messages:
osboxes@osboxes:~/gtk-fortran/build$ cmake -D CMAKE_BUILD_TYPE=debug ..
-- Compiler: GNU 8.3.0 /usr/bin/f95
-- Build type is: debug
-- Compilation flags: -g -pthread -Wall -pedantic -std=f2008 -Wtabs
-fcheck=all -fbacktrace -Wno-unused-dummy-argument
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Warning at CMakeLists.txt:143 (find_package):
By not providing "Findplplot.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "plplot", but
CMake did not find one.
Could not find a package configuration file provided by "plplot" with any
of the following names:
plplotConfig.cmake
plplot-config.cmake
Add the installation prefix of "plplot" to CMAKE_PREFIX_PATH or set
"plplot_DIR" to a directory containing one of the above files. If "plplot"
provides a separate development package or SDK, be sure it has been
installed.
-- PLPLOT not found: PLPLOT integration and examples will not be built
-- Configuring done
-- Generating done
-- Build files have been written to: /home/osboxes/gtk-fortran/build
osboxes@osboxes:~/gtk-fortran/build$
Then I tried, as you suggested:
osboxes@osboxes:~/gtk-fortran/build$ cmake -D CMAKE_BUILD_TYPE=debug -D
CMAKE_PREFIX_PATH=/home/osboxes/myplplot ..
-- Compiler: GNU 8.3.0 /usr/bin/f95
-- Build type is: debug
-- Compilation flags: -g -pthread -Wall -pedantic -std=f2008 -Wtabs
-fcheck=all -fbacktrace -Wno-unused-dummy-argument
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- PLPLOT not found: PLPLOT integration and examples will not be built
-- Configuring done
-- Generating done
-- Build files have been written to: /home/osboxes/gtk-fortran/build
osboxes@osboxes:~/gtk-fortran/build$
I have also tried without success:
osboxes@osboxes:~/gtk-fortran/build$ cmake -D CMAKE_BUILD_TYPE=debug -D
plplot_DIR=/home/osboxes/myplplot/lib/cmake/plplot ..
After some hard fighting, I have just realized that CMake variables are
case sensitive (but not CMake commands) ! With PLplot<=5.10 we were
using in gtk-fortran the PLPLOT_FOUND variable. So I have written that
piece of code:
find_package(plplot)
message(STATUS "PLPLOT_FOUND : ${PLPLOT_FOUND}")
message(STATUS "PLplot_FOUND : ${PLplot_FOUND}")
message(STATUS "plplot_FOUND : ${plplot_FOUND}")
if(plplot_FOUND)
message(STATUS "plplot_LIBRARIES : ${plplot_LIBRARIES}")
message(STATUS "plplot_INCLUDE_DIR : ${plplot_INCLUDE_DIR}")
message(STATUS "plplot_MODULE_DIR : ${plplot_MODULE_DIR}")
message(STATUS "PLPLOT_LIBRARIES : ${PLPLOT_LIBRARIES}")
message(STATUS "PLPLOT_INCLUDE_DIR : ${PLPLOT_INCLUDE_DIR}")
message(STATUS "PLPLOT_MODULE_DIR : ${PLPLOT_MODULE_DIR}")
message(STATUS "PLplot_LIBRARIES : ${PLplot_LIBRARIES}")
message(STATUS "PLplot_INCLUDE_DIR : ${PLplot_INCLUDE_DIR}")
message(STATUS "PLplot_MODULE_DIR : ${PLplot_MODULE_DIR}")
Which yields:
osboxes@osboxes:~/gtk-fortran/build$ cmake -D CMAKE_BUILD_TYPE=debug -D
CMAKE_PREFIX_PATH=/home/osboxes/myplplot ..
....
-- PLPLOT_FOUND :
-- PLplot_FOUND :
-- plplot_FOUND : 1
-- plplot_LIBRARIES :
-- plplot_INCLUDE_DIR :
-- plplot_MODULE_DIR :
-- PLPLOT_LIBRARIES :
-- PLPLOT_INCLUDE_DIR :
-- PLPLOT_MODULE_DIR :
-- PLplot_LIBRARIES :
-- PLplot_INCLUDE_DIR : PLplot_INCLUDE_DIR-NOTFOUND
-- PLplot_MODULE_DIR :
....
osboxes@osboxes:~/gtk-fortran/build$
> Once you have found the installed PLplot (see comment above), I am not
> sure the above method will work anymore.
By now, I obtain the following errors when building our gtk-fortran
PLplot examples:
[ 95%] Building Fortran object
plplot/CMakeFiles/hl_plplot30e.dir/hl_plplot30e.f90.o
/home/osboxes/gtk-fortran/plplot/hl_plplot30e.f90:49:6:
use plplot, PI => PL_PI
1
Fatal Error: Can't open module file ‘plplot.mod’ for reading at (1): No
such file or directory
compilation terminated.
Error copying Fortran module "plplot/handlers_ex30.mod". Tried
"plplot/HANDLERS_EX30.mod" and "plplot/handlers_ex30.mod".
Error copying Fortran module "plplot/plplot_code_ex30.mod". Tried
"plplot/PLPLOT_CODE_EX30.mod" and "plplot/plplot_code_ex30.mod".
[ 95%] Linking Fortran executable hl_plplot30e
f95: error: CMakeFiles/hl_plplot30e.dir/hl_plplot30e.f90.o: No such file
or directory
[ 95%] Built target hl_plplot30e
> Instead, I suggest you
> follow the CMake logic (for the case when CORE_BUILD is false) in
> $PLPLOT_PREFIX/share/plplot5.14.0/examples/CMakeLists.txt (our
> principal CMakeLists.txt file for the installed examples);
> $PLPLOT_PREFIX/share/plplot5.14.0/examples/cmake/modules/plplot_configure.cmake
>
> (a configured file that contains definitions for many useful CMake
> variables); and primarily
> $PLPLOT_PREFIX/share/plplot5.14.0/examples/fortran/CMakeLists.txt
> (which is used to build our fortran examples that are linked against
> the installed PLplot) to build your Fortran source against PLplot.
>
> Of course, if you have any trouble following the CMake logic in the
> above 3 files,
> please ask again here.
OK, I will read those files.
Just a question: could it be helpful to copy
plplot-5.14.0/cmake/FindPLplot.cmake into our gtk-fortran/cmake
directory ? For the previous PLplot versions, there was a
FindPlplotF95.cmake file in it.
Thanks for your help,
Vincent
|