You could also "encourage" the use of the FC env var by adding this to the very top of your CMakeLists file, before the project command:
if(NOT "$ENV{FC}" MATCHES "ifort") message(FATAL_ERROR "please set the environment variable FC to the full path to ifort before running CMake") endif() Or, if you know the full path to ifort already, perhaps set(ENV{FC} "/full/path/to/ifort") would work in that same location... If you take the set ENV{FC} route, I would issue a status message saying you're doing it so users can figure it out... HTH, David C. On Thu, Apr 30, 2015 at 11:06 PM, Jean-Christophe Fillion-Robin <jchris.filli...@kitware.com> wrote: > 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 <nr...@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 > > -- > > 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 -- 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