mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
CMakeLists.txt: explicitly ask for C99.
A user just reported that 0.79 doesn't build out of the box on Ubuntu 14.04 (trusty), because although its gcc (4.8.4) does _support_ C99, it doesn't enable it without a non-default -std option. The user was able to work around the problem by defining CMAKE_C_FLAGS=-std=gnu99, but it would have been nicer if we'd done that automatically. Setting CMAKE_C_STANDARD causes cmake to do so. (This isn't a regression of 0.79 over 0.78 as far as I know; the user in question said they had last built 0.76.) I was surprised to find Ubuntu 14.04 still in use at all, but a quick web search revealed that its support has been extended until next year, so fair enough, I suppose. It's also running a cmake way older than we support, but apparently that can be worked around via Kitware's binary tarball downloads (which do still run on 14.04). This is a bit unsatisfactory: I'd prefer to ask for C standards support of _at least_ C99 level, and C11 if possible. Then I could test for the presence of C11 features via check_c_source_compiles, and use them opportunistically (e.g. in macro definitions). But as far as I can see, cmake has no built-in support for asking for a standards level of 'as new as you can get, but no older than 99'. Oh well. (In any case, the thing I'd find most useful from C11 is _Generic, and since that's in implementation namespace, compilers can - and do - support it in C99 mode anyway. So it's probably fine, at least for now.)
This commit is contained in:
parent
3d34007889
commit
bd27962cd9
@ -1,6 +1,8 @@
|
||||
cmake_minimum_required(VERSION 3.7)
|
||||
project(putty LANGUAGES C)
|
||||
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
|
||||
include(cmake/setup.cmake)
|
||||
|
||||
# Scan the docs directory first, so that when we start calling
|
||||
|
Loading…
Reference in New Issue
Block a user