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 <[email protected]> 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
