From a47cb146809e32f43449dcfe9932833c2f0ab987 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 14 Feb 2018 13:40:57 +0100 Subject: Detect C standard and try using the most recent Fixes the default C version used with gcc < 5 Change-Id: I948dece961caed8e6b181e1c6e6b9dc43c46583f Reviewed-by: Oswald Buddenhagen --- configure.json | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'configure.json') diff --git a/configure.json b/configure.json index ae2aa22070..b4d763116c 100644 --- a/configure.json +++ b/configure.json @@ -259,6 +259,36 @@ "type": "compile", "test": "stl" }, + "c99": { + "label": "C99 support", + "type": "compile", + "test": { + "head": [ + "#if __STDC_VERSION__ >= 199901L", + "// Compiler claims to support C99, trust it", + "#else", + "# error __STDC_VERSION__ must be >= 199901L", + "#endif" + ], + "lang": "c", + "qmake": "CONFIG += c99" + } + }, + "c11": { + "label": "C11 support", + "type": "compile", + "test": { + "head": [ + "#if __STDC_VERSION__ >= 201112L", + "// Compiler claims to support C11, trust it", + "#else", + "# error __STDC_VERSION__ must be >= 201112L", + "#endif" + ], + "lang": "c", + "qmake": "CONFIG += c11" + } + }, "c++14": { "label": "C++14 support", "type": "compile", @@ -786,6 +816,19 @@ "condition": "features.c++14 && tests.c++1z", "output": [ "publicFeature", "publicQtConfig" ] }, + "c89": { + "label": "C89" + }, + "c99": { + "label": "C99", + "condition": "tests.c99", + "output": [ "publicFeature" ] + }, + "c11": { + "label": "C11", + "condition": "features.c99 && tests.c11", + "output": [ "publicFeature" ] + }, "precompile_header": { "label": "Using precompiled headers", "condition": "config.msvc || tests.precompile_header", @@ -1246,6 +1289,11 @@ Configure with '-qreal float' to create a build that is binary-compatible with 5 "condition": "!features.debug || features.debug_and_release" }, "shared", + { + "message": "Using C standard", + "type": "firstAvailableFeature", + "args": "c11 c99 c89" + }, { "message": "Using C++ standard", "type": "firstAvailableFeature", -- cgit v1.2.3