diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2021-08-26 12:00:50 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2021-08-31 07:56:44 +0200 |
commit | 7da01fb51334df2fdc5cbab30fd9d8676711ec4a (patch) | |
tree | 8ef0a1269f19ce79b14f210672a050b6d8eea37e | |
parent | 8572ae3eed4f22dc5eed388569bfa5031397ef7d (diff) |
qmake: Add support for C17/C18
Make it possible to select the C17/C18 standard with
CONFIG += c17
or
CONFIG += c18
Fixes: QTBUG-96026
Change-Id: I719d22366c3efda009118d58ead173a25ed285c0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 9004575f4b2aee7bf3c55522affd10555d134c51)
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
-rw-r--r-- | mkspecs/common/gcc-base.conf | 1 | ||||
-rw-r--r-- | mkspecs/common/msvc-version.conf | 1 | ||||
-rw-r--r-- | mkspecs/features/default_post.prf | 3 | ||||
-rw-r--r-- | qmake/doc/src/qmake-manual.qdoc | 5 |
4 files changed, 9 insertions, 1 deletions
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf index 9942089ed5..1c27f34441 100644 --- a/mkspecs/common/gcc-base.conf +++ b/mkspecs/common/gcc-base.conf @@ -86,6 +86,7 @@ QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG -fuse-linker-plugin QMAKE_CFLAGS_C99 = -std=c99 QMAKE_CFLAGS_C11 = -std=c11 +QMAKE_CFLAGS_C17 = -std=c17 QMAKE_CFLAGS_SSE2 += -msse2 QMAKE_CFLAGS_SSE3 += -msse3 diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf index d9f38dae67..b3689dec41 100644 --- a/mkspecs/common/msvc-version.conf +++ b/mkspecs/common/msvc-version.conf @@ -121,6 +121,7 @@ greaterThan(QMAKE_MSC_VER, 1927) { # Visual Studio 2019 (16.8 or 16.9) / Visual C++ 19.28 and up MSVC_VER = 16.8 QMAKE_CFLAGS_C11 = /std:c11 + QMAKE_CFLAGS_C17 = /std:c17 } !isEmpty(COMPAT_MKSPEC):!$$COMPAT_MKSPEC: CONFIG += $$COMPAT_MKSPEC diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index b2985fe89c..18f8b8ad9a 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -153,7 +153,8 @@ c++1z|c++2a { unset(cxxstd) } -c99|c11 { +c99|c11|c17|c18 { + c17|c18: cstd = C17 c11: cstd = C11 else: cstd = C99 diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc index 6dae9e8ff0..c647d92928 100644 --- a/qmake/doc/src/qmake-manual.qdoc +++ b/qmake/doc/src/qmake-manual.qdoc @@ -1205,6 +1205,11 @@ \row \li c11 \li C11 support is enabled. This option has no effect if the compiler does not support C11, or can't select the C standard. By default, the compiler default is used. + \row \li c17 \li C17, also known as C18, support is enabled. + This option has no effect if the compiler does not support C17, or + can't select the C standard. + By default, the compiler default is used. + \row \li c18 \li This is an alias for the \c{c17} value. \row \li strict_c \li Disables support for C compiler extensions. By default, they are enabled. \row \li c++11 \li C++11 support is enabled. This option has no effect if |