diff --git a/c17-default.patch b/c17-default.patch new file mode 100644 index 0000000..c45c18f --- /dev/null +++ b/c17-default.patch @@ -0,0 +1,75 @@ +Index: cmake-3.10.2/Modules/CMakeCCompilerId.c.in +=================================================================== +--- cmake-3.10.2.orig/Modules/CMakeCCompilerId.c.in ++++ cmake-3.10.2/Modules/CMakeCCompilerId.c.in +@@ -39,6 +39,8 @@ char const *info_cray = "INFO" ":" "comp + # else + # define C_DIALECT + # endif ++#elif __STDC_VERSION__ >= 201710L ++# define C_DIALECT "17" + #elif __STDC_VERSION__ >= 201000L + # define C_DIALECT "11" + #elif __STDC_VERSION__ >= 199901L +Index: cmake-3.10.2/Modules/Compiler/GNU-C.cmake +=================================================================== +--- cmake-3.10.2.orig/Modules/Compiler/GNU-C.cmake ++++ cmake-3.10.2/Modules/Compiler/GNU-C.cmake +@@ -22,4 +22,4 @@ elseif (NOT CMAKE_C_COMPILER_VERSION VER + set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu1x") + endif() + +-__compiler_check_default_language_standard(C 3.4 90 5.0 11) ++__compiler_check_default_language_standard(C 3.4 90 5.0 11 8.0 17) +Index: cmake-3.10.2/Source/cmLocalGenerator.cxx +=================================================================== +--- cmake-3.10.2.orig/Source/cmLocalGenerator.cxx ++++ cmake-3.10.2/Source/cmLocalGenerator.cxx +@@ -1575,6 +1575,7 @@ void cmLocalGenerator::AddCompilerRequir + langStdMap["CXX"].push_back("11"); + langStdMap["CXX"].push_back("98"); + ++ langStdMap["C"].push_back("17"); + langStdMap["C"].push_back("11"); + langStdMap["C"].push_back("99"); + langStdMap["C"].push_back("90"); +Index: cmake-3.10.2/Source/cmMakefile.cxx +=================================================================== +--- cmake-3.10.2.orig/Source/cmMakefile.cxx ++++ cmake-3.10.2/Source/cmMakefile.cxx +@@ -4077,7 +4077,7 @@ static const char* const CXX_FEATURES[] + FEATURE_STRING) }; + #undef FEATURE_STRING + +-static const char* const C_STANDARDS[] = { "90", "99", "11" }; ++static const char* const C_STANDARDS[] = { "90", "99", "11", "17" }; + static const char* const CXX_STANDARDS[] = { "98", "11", "14", "17" }; + + bool cmMakefile::AddRequiredTargetFeature(cmTarget* target, +Index: cmake-3.10.2/Tests/CompileFeatures/CMakeLists.txt +=================================================================== +--- cmake-3.10.2.orig/Tests/CompileFeatures/CMakeLists.txt ++++ cmake-3.10.2/Tests/CompileFeatures/CMakeLists.txt +@@ -214,6 +214,7 @@ if (C_expected_features) + if (std_flag_idx EQUAL -1) + add_executable(default_dialect_C default_dialect.c) + target_compile_definitions(default_dialect_C PRIVATE ++ DEFAULT_C17=$ + DEFAULT_C11=$ + DEFAULT_C99=$ + DEFAULT_C90=$ +Index: cmake-3.10.2/Tests/CompileFeatures/default_dialect.c +=================================================================== +--- cmake-3.10.2.orig/Tests/CompileFeatures/default_dialect.c ++++ cmake-3.10.2/Tests/CompileFeatures/default_dialect.c +@@ -1,5 +1,9 @@ + +-#if DEFAULT_C11 ++#if DEFAULT_C17 ++#if __STDC_VERSION__ != 201710L ++#error Unexpected value for __STDC_VERSION__. ++#endif ++#elif DEFAULT_C11 + #if __STDC_VERSION__ != 201112L + #error Unexpected value for __STDC_VERSION__. + #endif diff --git a/cmake.changes b/cmake.changes index 2471145..913d8be 100644 --- a/cmake.changes +++ b/cmake.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Feb 13 13:48:41 UTC 2018 - schwab@suse.de + +- c17-default.patch: Add support for C17 default in GCC 8 + ------------------------------------------------------------------- Fri Jan 19 01:49:19 UTC 2018 - avindra@opensuse.org diff --git a/cmake.spec b/cmake.spec index fb7e685..d7de712 100644 --- a/cmake.spec +++ b/cmake.spec @@ -40,6 +40,7 @@ Patch5: system-libs.patch Patch6: cmake-3.10.1_boost-1.66.patch # Search for python interpreters from newest to oldest rather then picking up /usr/bin/python as first choice Patch7: feature-suse-python-interp-search-order.patch +Patch8: c17-default.patch %if 0%{?suse_version} >= 1330 BuildRequires: libcurl-mini-devel %else