CRPropa / CRPropa3

CRPropa is a public astrophysical simulation framework for propagating extraterrestrial ultra-high energy particles. https://crpropa.github.io/CRPropa3/
https://crpropa.desy.de
GNU General Public License v3.0
68 stars 67 forks source link

cmake does not see correct version of swig #392

Closed jstvdk closed 2 years ago

jstvdk commented 2 years ago

Dear developers,

I have problems installing CRPropa on my system System Information: (Please fill out the following information)

Did you install CRPropa from git or download a release? I installed version 3.1.7 from git.

Things that I tried before asking for help: I read and followed the installation instructions at https://crpropa.github.io/CRPropa3/ . Before writing this request I also checked previous installation issues at https://github.com/CRPropa/CRPropa3/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Ainstallation+ . However, this did not work. I receive the following output from cmake:

... CMake Error at /cluster/bwhpc/common/devel/cmake/3.17.0/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message): Could NOT find SWIG: Found unsuitable version "2.0.10", but required is at least "3.0" (found /usr/bin/swig) ...

But I already installed swig 4.0 by conda and added it to the $PATH variable, so when I use command "which swig" i got:

~/miniconda3/envs/crpropa/bin/swig

and when use "swig -version":

SWIG Version 4.0.2

So the main problem is that cmake doesn't see new version of swig, but only the old version in /usr/bin/

lukasmerten commented 2 years ago

Please try to provide the path to your installed swig version manually, e.g., by using the -D flag with cmake to set the following variables.

jstvdk commented 2 years ago

Thanks for the reply. I already tried to do this, but still getting error (Could NOT find SWIG: Found unsuitable version "2.0.10"). Maybe I am doing cmake command not accurately?

cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local -DSWIG_DIR=/home/tu/tu_tu/tu_p13vo01/miniconda3/envs/crpropa/share/swig/4.0.2 -DSWIG_EXECUTABLE=~/miniconda3/envs/crpropa/bin

DSWIG_DIR = result of command 'swig -swiglib' DSWIG_EXECUTABLE = result of command 'which swig'

lukasmerten commented 2 years ago

Mmmh that's not really clear to me. My only suggestions are: 1) Delete all generated files (e.g., the build directory) before reattempting the installation 2) Try again with the flags you used above.

Maybe someone else has some suggestions? I usually used the system's swig, which is due to the old version for you not working.

jstvdk commented 2 years ago

Thank you a lot! Deleting build directory solve this problem. Now it finds correct version of swig. I am sorry if its not connected issue, but I want to ask also why cmake can't find fftw library. I am using method discussed in previous issue "fftw3 not found #297", adding the flag to cmake command with path to the libfftw3.so file:

-DFFTW3F_LIBRARY=/opt/bwhpc/common/numlib/fftw/3.3.8-openmpi-3.1-gnu-9.2/lib

but compiler still doesn't see fftw:

-- FFTW3 with single precision (FFTW3F): NOT Found! -- Include: FFTW3F_INCLUDE_DIR-NOTFOUND -- Library: /opt/bwhpc/common/numlib/fftw/3.3.8-openmpi-3.1-gnu-9.2/lib

jstvdk commented 2 years ago

Okay then, I will create new ticket for FFTW problem because I still can't solve it.

The problem of finding correct version of the SWIG is solved, this ticket can be closed. Thank you for help.