Hello CMake Developers,

i've recently encountered an issue with the CMake [CMAKE_]C_STANDARD settings. (same for CXX) For initial background see http://public.kitware.com/pipermail/cmake/2015-September/061546.html

Basically, CMake silently continues to configure past any set(CMAKE_C_STANDARD <value>) command even if CMake does
not have any information on the necessary flags for the current compiler.
In my case, i've had that issue with the SUPERLU_DIST package and Intel 14.xx compilers. The configure stage would go fine but the compile breaks complaining about all sorts of weird things, from which it was far from obvious it was because of the missing -std=c99 flag. Especially as i've entrusted CMake to handle that situation as i've also specified set(CMAKE_C_STANDARD_REQUIRED YES).

I know there's standard flags information right now only for gnu and clang, and having them included for all supported compilers will be a different issue. but i suggest to include the following into cmake:

- if there is no standards information for the given compiler, issue a warning to tell the developer just that. - if additionally XX_REQUIRED is set on cmake or target level, throw a fatal error on configure time as cmake cannot ensure
  to set the correct flags required for the requested C standard.

of course, this wont save the user the trouble of finding the correct flags for the current compiler for himself, but at least it's a more informed action than just wondering why suddenly everything breaks which went fine on GNU.

this will clearly be redundant once all supported compilers have the necessary information, but would also makes cmake more robust in case new compilers come in without having the standards info contained at the beginning.

Cheers
Daniel

--
Dr. Daniel Wirtz
Dipl. Math. Dipl. Inf.
SRC SimTech
Pfaffenwaldring 5a
+49 711 685 60044

--

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-developers

Reply via email to