[CMake] Set Fortran compiler in CMakeLists.txt?

Jean-Christophe Fillion-Robin jchris.fillionr at kitware.com
Thu Apr 30 23:06:01 EDT 2015


Hi Nikolaus,

May you could ask your user to invoke cmake with the -C argument allowing
to specify an initial cache file with value specific to the environment ?

It would for example contain:

set(FC "ifort" CACHE PATH "Intel Fortran compiler")

See http://www.cmake.org/cmake/help/v3.1/manual/cmake.1.html

Hth
Jc

On Thu, Apr 30, 2015 at 6:40 PM, Nikolaus Rath <nrath at trialphaenergy.com>
wrote:

> On 04/30/2015 03:27 PM, Bill Hoffman wrote:
> > On 4/30/2015 2:50 PM, Nikolaus Rath wrote:
> >> Hmm. My situation is a bit different. We have different Fortran
> >> compilers installed, but this specific one needs to be compiled using
> >> the intel compiler. But by default, CMake selects gfortran.
> >>
> >> At the moment I abort the build if FC != ifort, but this is not exactly
> >> a good user experience. Imagine:
> >>
> >> $ cmake ..
> >> Unsupported! Please set FC=ifort
> >> $ FC=ifort cmake ..
> >>
> >> For the user, this raises the question: if the build system knows what
> >> compiler it needs, why doesn't it just use it instead of telling me to
> >> tell it to use it?:-)
> >
> > I suppose the CMake way to do this would be to test for the "feature"
> > that you need from the compiler.  Then complain that the compiler picked
> > does not support "feature N".  This would be done with a try_compile.
> > That way if the user has a compiler that supports what you need intel or
> > gfortran it will work.
>
>
> In practice this still means that the user still has to manually choose
> ifort, and that the error message is now almost deliberately obfuscated
> ("please use ifort" is much easier to understand than "your compiler
> does not support x, y, z  and a. Please switch to a different compiler").
>
> I know what compilers we have installed, what features they have, and
> which one's are compatible with the code. Is there really no way to
> encode that knowledge in the build system?
>
> Best,
> -Nikolaus
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake
>



-- 
+1 919 869 8849
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20150430/bc5b2060/attachment.html>


More information about the CMake mailing list