I'm working on replacing an antiquated custom build system with cmake on a project which uses a mix of several flavors of Fortran as well as some C and C++. The problem I'm running into is that FIND_MPI (and I would guess a variety of other modules) just assume that the compiler flags should be the same for each language and this simply isn't the case.
For example, FIND_MPI uses mpicc --show to get the compiler and linker flags required to make MPI work: mpicc --show icc -I/usr/local/openmpi/1.4.2-intel/include -pthread -L/usr/local/openmpi/1.4.2-intel/lib -lmpi -lopen-rte -lopen-pal -ldl -Wl,--export-dynamic -lnsl -lutil To get Fortran bindings, you have to use a couple different libraries: mpif90 --show ifort -I/usr/local/openmpi/1.4.2-intel/include -I/usr/local/openmpi/1.4.2-intel/lib -L/usr/local/openmpi/1.4.2-intel/lib -lmpi_f90 -lmpi_f77 -lmpi -lopen-rte -lopen-pal -ldl -Wl,--export-dynamic -lnsl -lutil It is possible to force FIND_MPI to use mpif90 rather than mpicc, but that just breaks the C[++] part of the code. Ideally, the variables set by FIND_MPI would change dynamically depending on the type of code that cmake happens to be building, but that doesn't seem to be the case. The only other (halfway reasonable) solution I can think of is to modify FIND_MPI to export a second set of variables for Fortran. For now I'm manually setting the compiler flags for the Fortran compiler at cmake runtime, but that's not a good solution. Does anyone have a better way to do this? Thanks Ben _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake