Author: thomas
Date: Tue Nov 24 03:18:38 2020
New Revision: 4231

Log:
Add patch to cmake-3.19.0

Added:
   trunk/cmake/cmake-3.19.0-src_property_fix-1.patch

Added: trunk/cmake/cmake-3.19.0-src_property_fix-1.patch
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ trunk/cmake/cmake-3.19.0-src_property_fix-1.patch   Tue Nov 24 03:18:38 
2020        (r4231)
@@ -0,0 +1,376 @@
+From 30aa715fac06deba7eaa3e6167cf34eb4d2521d0 Mon Sep 17 00:00:00 2001
+From: Brad King <brad.k...@kitware.com>
+Date: Thu, 19 Nov 2020 15:19:36 -0500
+Subject: [PATCH] Revert "specify language flag when source LANGUAGE property
+ is set"
+
+Revert commit 74b1c9fc8e (Explicitly specify language flag when source
+LANGUAGE property is set, 2020-06-01, v3.19.0-rc1~722^2) and the lookup
+tables from its two immediate ancestors.  The purpose of that change was
+to convert an explicit `LANGUAGE` source file property into an explicit
+language specification compiler flag like `-x c`.  This seems reasonable
+since the property is documented as meaning "indicate what programming
+language the source file is".  It is also needed to help compilers deal
+with non-standard source file extensions they don't recognize.
+
+However, some projects have been setting `LANGUAGE C` on `.S` assembler
+source files to mean "use the C compiler".  Passing `-x c` for them
+breaks the build because the `.S` sources are not written in C.  These
+projects should be updated to use `enable_language(ASM)`, for which
+CMake often chooses the C compiler as the assembler when using
+toolchains that support it (which would have to be the case for projects
+using the approach).
+
+Revert the change for now to preserve the old behavior for such projects.
+We can re-introduce it with a policy in a future version of CMake.
+
+Fixes: #21469
+Issue: #14516, #20716
+---
+ Help/release/3.19.rst                  | 16 ++++++++++++++++
+ Modules/Compiler/AppleClang-C.cmake    |  2 --
+ Modules/Compiler/AppleClang-CXX.cmake  |  2 --
+ Modules/Compiler/Clang-C.cmake         |  2 --
+ Modules/Compiler/Clang-CXX.cmake       |  2 --
+ Modules/Compiler/GNU-C.cmake           |  2 --
+ Modules/Compiler/GNU-CXX.cmake         |  2 --
+ Modules/Compiler/Intel-C.cmake         |  2 --
+ Modules/Compiler/Intel-CXX.cmake       |  2 --
+ Modules/Compiler/XL-C.cmake            |  2 --
+ Modules/Compiler/XL-CXX.cmake          |  5 +++--
+ Modules/Compiler/XLClang-C.cmake       |  2 --
+ Modules/Compiler/XLClang-CXX.cmake     |  2 --
+ Source/cmExtraSublimeTextGenerator.cxx |  7 -------
+ Source/cmGlobalXCodeGenerator.cxx      |  8 --------
+ Source/cmMakefileTargetGenerator.cxx   |  7 -------
+ Source/cmNinjaTargetGenerator.cxx      | 11 +----------
+ Tests/SetLang/CMakeLists.txt           |  7 -------
+ Tests/SetLang/bar.c                    | 14 +-------------
+ Tests/SetLang/zoom.zzz                 |  7 -------
+ 20 files changed, 21 insertions(+), 83 deletions(-)
+ delete mode 100644 Tests/SetLang/zoom.zzz
+
+diff --git a/Help/release/3.19.rst b/Help/release/3.19.rst
+index be63e9db79..961d6c059b 100644
+--- a/Help/release/3.19.rst
++++ b/Help/release/3.19.rst
+@@ -330,3 +330,19 @@ Other Changes
+ * If ``CUDA`` compiler detection fails with user-specified
+   :variable:`CMAKE_CUDA_ARCHITECTURES` or
+   :variable:`CMAKE_CUDA_HOST_COMPILER`, an error is raised.
++
++Updates
++=======
++
++Changes made since CMake 3.19.0 include the following.
++
++3.19.1
++------
++
++* CMake 3.19.0 compiles source files with the :prop_sf:`LANGUAGE`
++  property by passing an explicit language flag such as ``-x c``.
++  This is consistent with the property's documented meaning that
++  the source file is written in the specified language.  However,
++  it can break projects that were using the property only to
++  cause the specified language's compiler to be used.  This has
++  been reverted to restore behavior from CMake 3.18 and below.
+diff --git a/Modules/Compiler/AppleClang-C.cmake 
b/Modules/Compiler/AppleClang-C.cmake
+index 26a4bbd335..2794f52bbb 100644
+--- a/Modules/Compiler/AppleClang-C.cmake
++++ b/Modules/Compiler/AppleClang-C.cmake
+@@ -1,8 +1,6 @@
+ include(Compiler/Clang)
+ __compiler_clang(C)
+ 
+-set(CMAKE_C_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c)
+-
+ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0)
+   set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
+   set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
+diff --git a/Modules/Compiler/AppleClang-CXX.cmake 
b/Modules/Compiler/AppleClang-CXX.cmake
+index 611c674576..15edc21e99 100644
+--- a/Modules/Compiler/AppleClang-CXX.cmake
++++ b/Modules/Compiler/AppleClang-CXX.cmake
+@@ -1,8 +1,6 @@
+ include(Compiler/Clang)
+ __compiler_clang(CXX)
+ 
+-set(CMAKE_CXX_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c++)
+-
+ if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+   set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN 
"-fvisibility-inlines-hidden")
+ endif()
+diff --git a/Modules/Compiler/Clang-C.cmake b/Modules/Compiler/Clang-C.cmake
+index fb6ffa7b00..7c4a263f6a 100644
+--- a/Modules/Compiler/Clang-C.cmake
++++ b/Modules/Compiler/Clang-C.cmake
+@@ -8,8 +8,6 @@ endif()
+ 
+ if("x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
+   set(CMAKE_C_CLANG_TIDY_DRIVER_MODE "cl")
+-elseif("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+-  set(CMAKE_C_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c)
+ endif()
+ 
+ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
+diff --git a/Modules/Compiler/Clang-CXX.cmake 
b/Modules/Compiler/Clang-CXX.cmake
+index 311d2b07f6..789e991594 100644
+--- a/Modules/Compiler/Clang-CXX.cmake
++++ b/Modules/Compiler/Clang-CXX.cmake
+@@ -2,9 +2,7 @@ include(Compiler/Clang)
+ __compiler_clang(CXX)
+ __compiler_clang_cxx_standards(CXX)
+ 
+-
+ if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+-  set(CMAKE_CXX_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c++)
+   set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN 
"-fvisibility-inlines-hidden")
+ endif()
+ 
+diff --git a/Modules/Compiler/GNU-C.cmake b/Modules/Compiler/GNU-C.cmake
+index 8105a77f62..ca286b3975 100644
+--- a/Modules/Compiler/GNU-C.cmake
++++ b/Modules/Compiler/GNU-C.cmake
+@@ -1,8 +1,6 @@
+ include(Compiler/GNU)
+ __compiler_gnu(C)
+ 
+-set(CMAKE_C_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c)
+-
+ if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.5)
+   set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
+   set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
+diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake
+index 59ec05691c..fcaaeab433 100644
+--- a/Modules/Compiler/GNU-CXX.cmake
++++ b/Modules/Compiler/GNU-CXX.cmake
+@@ -1,8 +1,6 @@
+ include(Compiler/GNU)
+ __compiler_gnu(CXX)
+ 
+-set(CMAKE_CXX_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c++)
+-
+ if (WIN32)
+   if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.6)
+     set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN 
"-fno-keep-inline-dllexport")
+diff --git a/Modules/Compiler/Intel-C.cmake b/Modules/Compiler/Intel-C.cmake
+index 322f63d0d2..ec3bfd88fa 100644
+--- a/Modules/Compiler/Intel-C.cmake
++++ b/Modules/Compiler/Intel-C.cmake
+@@ -28,8 +28,6 @@ if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
+ 
+ else()
+ 
+-  set(CMAKE_C_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c)
+-
+   if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0)
+     set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
+     set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
+diff --git a/Modules/Compiler/Intel-CXX.cmake 
b/Modules/Compiler/Intel-CXX.cmake
+index 42adfd10c7..b71b946e92 100644
+--- a/Modules/Compiler/Intel-CXX.cmake
++++ b/Modules/Compiler/Intel-CXX.cmake
+@@ -42,8 +42,6 @@ if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+ 
+ else()
+ 
+-  set(CMAKE_CXX_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c++)
+-
+   if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0)
+     set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++20")
+     set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++20")
+diff --git a/Modules/Compiler/XL-C.cmake b/Modules/Compiler/XL-C.cmake
+index 78c44d5d72..2077bdabdf 100644
+--- a/Modules/Compiler/XL-C.cmake
++++ b/Modules/Compiler/XL-C.cmake
+@@ -6,8 +6,6 @@ string(APPEND CMAKE_C_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
+ # -qthreaded = Ensures that all optimizations will be thread-safe
+ string(APPEND CMAKE_C_FLAGS_INIT " -qthreaded")
+ 
+-set(CMAKE_C_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -qsourcetype=c)
+-
+ if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1)
+   set(CMAKE_C90_STANDARD_COMPILE_OPTION "-qlanglvl=stdc89")
+   set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-qlanglvl=extc89")
+diff --git a/Modules/Compiler/XL-CXX.cmake b/Modules/Compiler/XL-CXX.cmake
+index 3b911f3d6c..41e3e11194 100644
+--- a/Modules/Compiler/XL-CXX.cmake
++++ b/Modules/Compiler/XL-CXX.cmake
+@@ -6,8 +6,6 @@ string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
+ # -qthreaded = Ensures that all optimizations will be thread-safe
+ string(APPEND CMAKE_CXX_FLAGS_INIT " -qthreaded")
+ 
+-set(CMAKE_CXX_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -+)
+-
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1)
+   if(CMAKE_SYSTEM MATCHES "Linux")
+     set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
+@@ -34,3 +32,6 @@ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1)
+ endif ()
+ 
+ __compiler_check_default_language_standard(CXX 10.1 98)
++
++set(CMAKE_CXX_COMPILE_OBJECT
++  "<CMAKE_CXX_COMPILER> -+ <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c 
<SOURCE>")
+diff --git a/Modules/Compiler/XLClang-C.cmake 
b/Modules/Compiler/XLClang-C.cmake
+index 1668a4d0f9..54c18a668a 100644
+--- a/Modules/Compiler/XLClang-C.cmake
++++ b/Modules/Compiler/XLClang-C.cmake
+@@ -1,8 +1,6 @@
+ include(Compiler/XLClang)
+ __compiler_xlclang(C)
+ 
+-set(CMAKE_C_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c)
+-
+ if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.1)
+   set(CMAKE_C90_STANDARD_COMPILE_OPTION  "-std=c89")
+   set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu89")
+diff --git a/Modules/Compiler/XLClang-CXX.cmake 
b/Modules/Compiler/XLClang-CXX.cmake
+index 02638c7917..9ea3d7cace 100644
+--- a/Modules/Compiler/XLClang-CXX.cmake
++++ b/Modules/Compiler/XLClang-CXX.cmake
+@@ -1,8 +1,6 @@
+ include(Compiler/XLClang)
+ __compiler_xlclang(CXX)
+ 
+-set(CMAKE_CXX_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c++)
+-
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.1)
+   set(CMAKE_CXX98_STANDARD_COMPILE_OPTION  "")
+   set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
+diff --git a/Source/cmExtraSublimeTextGenerator.cxx 
b/Source/cmExtraSublimeTextGenerator.cxx
+index 1c7e4b1684..7c3614435b 100644
+--- a/Source/cmExtraSublimeTextGenerator.cxx
++++ b/Source/cmExtraSublimeTextGenerator.cxx
+@@ -349,13 +349,6 @@ std::string 
cmExtraSublimeTextGenerator::ComputeFlagsForObject(
+   if (language.empty()) {
+     language = "C";
+   }
+-
+-  // explicitly add the explicit language flag before any other flag
+-  // this way backwards compatibility with user flags is maintained
+-  if (source->GetProperty("LANGUAGE")) {
+-    lg->AppendFeatureOptions(flags, language, "EXPLICIT_LANGUAGE");
+-  }
+-
+   std::string const& config =
+     lg->GetMakefile()->GetSafeDefinition("CMAKE_BUILD_TYPE");
+ 
+diff --git a/Source/cmGlobalXCodeGenerator.cxx 
b/Source/cmGlobalXCodeGenerator.cxx
+index 766ae7224f..b40d8ea8e9 100644
+--- a/Source/cmGlobalXCodeGenerator.cxx
++++ b/Source/cmGlobalXCodeGenerator.cxx
+@@ -937,14 +937,6 @@ cmXCodeObject* 
cmGlobalXCodeGenerator::CreateXCodeSourceFile(
+     default:
+       break;
+   }
+-
+-  // explicitly add the explicit language flag before any other flag
+-  // this way backwards compatibility with user flags is maintained
+-  if (sf->GetProperty("LANGUAGE")) {
+-    this->CurrentLocalGenerator->AppendFeatureOptions(flags, lang,
+-                                                      "EXPLICIT_LANGUAGE");
+-  }
+-
+   const std::string COMPILE_FLAGS("COMPILE_FLAGS");
+   if (cmProp cflags = sf->GetProperty(COMPILE_FLAGS)) {
+     lg->AppendFlags(flags, genexInterpreter.Evaluate(*cflags, COMPILE_FLAGS));
+diff --git a/Source/cmMakefileTargetGenerator.cxx 
b/Source/cmMakefileTargetGenerator.cxx
+index 5f97d868fe..3c4f68c94c 100644
+--- a/Source/cmMakefileTargetGenerator.cxx
++++ b/Source/cmMakefileTargetGenerator.cxx
+@@ -573,13 +573,6 @@ void cmMakefileTargetGenerator::WriteObjectRuleFiles(
+   // Build the set of compiler flags.
+   std::string flags;
+ 
+-  // explicitly add the explicit language flag before any other flag
+-  // this way backwards compatibility with user flags is maintained
+-  if (source.GetProperty("LANGUAGE")) {
+-    this->LocalGenerator->AppendFeatureOptions(flags, lang,
+-                                               "EXPLICIT_LANGUAGE");
+-  }
+-
+   // Add language-specific flags.
+   std::string langFlags = cmStrCat("$(", lang, "_FLAGS", filterArch, ")");
+   this->LocalGenerator->AppendFlags(flags, langFlags);
+diff --git a/Source/cmNinjaTargetGenerator.cxx 
b/Source/cmNinjaTargetGenerator.cxx
+index 04d84a0890..76df9f231c 100644
+--- a/Source/cmNinjaTargetGenerator.cxx
++++ b/Source/cmNinjaTargetGenerator.cxx
+@@ -190,16 +190,7 @@ std::string cmNinjaTargetGenerator::ComputeFlagsForObject(
+     }
+   }
+ 
+-  std::string flags;
+-  // explicitly add the explicit language flag before any other flag
+-  // this way backwards compatibility with user flags is maintained
+-  if (source->GetProperty("LANGUAGE")) {
+-    this->LocalGenerator->AppendFeatureOptions(flags, language,
+-                                               "EXPLICIT_LANGUAGE");
+-    flags += " ";
+-  }
+-
+-  flags += this->GetFlags(language, config, filterArch);
++  std::string flags = this->GetFlags(language, config, filterArch);
+ 
+   // Add Fortran format flags.
+   if (language == "Fortran") {
+diff --git a/Tests/SetLang/CMakeLists.txt b/Tests/SetLang/CMakeLists.txt
+index 616421ed53..9de4fc61d1 100644
+--- a/Tests/SetLang/CMakeLists.txt
++++ b/Tests/SetLang/CMakeLists.txt
+@@ -15,10 +15,3 @@ if(CMAKE_GENERATOR MATCHES "^Visual Studio" AND 
"x${CMAKE_C_COMPILER_ID}" STREQU
+   add_library(stay stay_c.c stay_cxx.cxx)
+   set_property(TARGET stay PROPERTY COMPILE_OPTIONS "-TP")
+ endif()
+-
+-if((CMAKE_C_COMPILER_ID MATCHES 
"(GNU|Clang|MSVC|Borland|Embarcadero|Intel|TI|XL)"))
+-  add_library(zoom zoom.zzz)
+-  set_source_files_properties(zoom.zzz PROPERTIES LANGUAGE CXX)
+-  target_link_libraries(SetLang zoom)
+-  target_compile_definitions(SetLang PRIVATE WITH_ZOOM)
+-endif()
+diff --git a/Tests/SetLang/bar.c b/Tests/SetLang/bar.c
+index 515e8c233e..b934356fa1 100644
+--- a/Tests/SetLang/bar.c
++++ b/Tests/SetLang/bar.c
+@@ -1,22 +1,10 @@
+ #include <stdio.h>
+ 
+ int foo();
+-
+-#ifdef WITH_ZOOM
+-int zoom();
+-#endif
+-
+ class A
+ {
+ public:
+-  A()
+-  {
+-    this->i = foo();
+-#ifdef WITH_ZOOM
+-    i += zoom();
+-    i -= zoom();
+-#endif
+-  }
++  A() { this->i = foo(); }
+   int i;
+ };
+ 
+diff --git a/Tests/SetLang/zoom.zzz b/Tests/SetLang/zoom.zzz
+deleted file mode 100644
+index a0c8899b6b..0000000000
+--- a/Tests/SetLang/zoom.zzz
++++ /dev/null
+@@ -1,7 +0,0 @@
+-int zoom()
+-{
+-  int r = 10;
+-  r++;
+-  int ret = r + 10;
+-  return ret;
+-}
+-- 
+GitLab
+
-- 
http://lists.linuxfromscratch.org/listinfo/patches
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to