Imported Upstream version 3.20.6 upstream/3.20.6
authorDongHun Kwak <dh0128.kwak@samsung.com>
Fri, 8 Oct 2021 00:20:56 +0000 (09:20 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Fri, 8 Oct 2021 00:20:56 +0000 (09:20 +0900)
15 files changed:
Help/release/3.20.rst
Modules/CMakeCCompilerId.c.in
Modules/Compiler/IntelLLVM-C.cmake
Modules/Compiler/IntelLLVM-CXX.cmake
Modules/FindJPEG.cmake
Modules/GNUInstallDirs.cmake
Modules/Internal/CheckCompilerFlag.cmake
Modules/Platform/Android-Initialize.cmake
Modules/Platform/Darwin.cmake
Source/CMakeVersion.cmake
Source/cmDependsCompiler.cxx
Source/cmGccDepfileReader.cxx
Source/cmGccDepfileReader.h
Tests/RunCMake/CMakeLists.txt
Tests/TryCompile/CMakeLists.txt

index da27174..42e95be 100644 (file)
@@ -363,8 +363,8 @@ Changes made since CMake 3.20.0 include the following.
   The oneAPI 2021.2 Fortran compiler defines the proper identification
   macro and so is identified as ``IntelLLVM`` by all CMake 3.20 versions.
 
-3.20.3, 3.20.4, 3.20.5
-----------------------
+3.20.3, 3.20.4, 3.20.5, 3.20.6
+------------------------------
 
 These versions made no changes to documented features or interfaces.
 Some implementation updates were made to support ecosystem changes
index 14e1282..0bc8f5a 100644 (file)
@@ -33,9 +33,8 @@ char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
 @CMAKE_C_COMPILER_ID_PLATFORM_CONTENT@
 @CMAKE_C_COMPILER_ID_ERROR_FOR_TEST@
 
-#if !defined(__STDC__)
-# if (defined(_MSC_VER) && !defined(__clang__)) \
-  || (defined(__ibmxl__) || defined(__IBMC__))
+#if !defined(__STDC__) && !defined(__clang__)
+# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
 #  define C_DIALECT "90"
 # else
 #  define C_DIALECT
index fce2971..9b1c376 100644 (file)
@@ -49,10 +49,6 @@ else()
   set(CMAKE_C11_EXTENSION_COMPILE_OPTION "")
 endif()
 
-if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
-  # FIXME: The compiler actually defaults to C17, but
-  # CMake does not yet model or detect that standard.
-  __compiler_check_default_language_standard(C 2020 11)
-else()
-  set(CMAKE_C_STANDARD_DEFAULT "")
-endif()
+# FIXME: The compiler actually defaults to C17, but
+# CMake does not yet model or detect that standard.
+__compiler_check_default_language_standard(C 2020 11)
index 4c0c26e..9799888 100644 (file)
@@ -62,8 +62,4 @@ else()
   set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-Qstd=c++20")
 endif()
 
-if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
-  __compiler_check_default_language_standard(CXX 2020 14)
-else()
-  set(CMAKE_CXX_STANDARD_DEFAULT "")
-endif()
+__compiler_check_default_language_standard(CXX 2020 14)
index add2486..3f243de 100644 (file)
@@ -58,7 +58,7 @@ Obsolete variables
 
 find_path(JPEG_INCLUDE_DIR jpeglib.h)
 
-set(jpeg_names ${JPEG_NAMES} jpeg jpeg-static libjpeg libjpeg-static turbojpeg turbojpeg-static)
+set(jpeg_names ${JPEG_NAMES} jpeg jpeg-static libjpeg libjpeg-static)
 foreach(name ${jpeg_names})
   list(APPEND jpeg_names_debug "${name}d")
 endforeach()
index e149f4c..4016a64 100644 (file)
@@ -349,7 +349,7 @@ mark_as_advanced(
 macro(GNUInstallDirs_get_absolute_install_dir absvar var)
   set(GGAID_extra_args ${ARGN})
   list(LENGTH GGAID_extra_args GGAID_extra_arg_count)
-  if(GGAID_extra_arg_count GREATER 0)
+  if(GGAID_extra_arg_count GREATER "0")
     list(GET GGAID_extra_args 0 GGAID_dir)
   else()
     # Historical behaviour: use ${dir} from caller's scope
index 6b2a11e..99efc37 100644 (file)
@@ -73,7 +73,6 @@ int main(void) { return 0; }]=])
   foreach(v IN LISTS _locale_vars)
     set(ENV{${v}} ${_locale_vars_saved_${v}})
   endforeach()
-  set(${_var} "${${_var}}" PARENT_SCOPE)
 endfunction ()
 
 cmake_policy(POP)
index 50f0620..63bc949 100644 (file)
@@ -56,11 +56,6 @@ if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
     set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
   endif()
 
-  # Don't search paths in PATH environment variable.
-  if(NOT DEFINED CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH)
-    set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF)
-  endif()
-
   # Allows CMake to find headers in the architecture-specific include directories.
   set(CMAKE_LIBRARY_ARCHITECTURE "${CMAKE_ANDROID_ARCH_TRIPLE}")
 
index d9a7894..839dc81 100644 (file)
@@ -47,7 +47,9 @@ set(CMAKE_SHARED_MODULE_PREFIX "lib")
 set(CMAKE_SHARED_MODULE_SUFFIX ".so")
 set(CMAKE_MODULE_EXISTS 1)
 set(CMAKE_DL_LIBS "")
-set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
+if(NOT "${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5")
+  set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
+endif()
 
 foreach(lang C CXX OBJC OBJCXX)
   set(CMAKE_${lang}_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ")
index 7a14f55..61668f4 100644 (file)
@@ -1,7 +1,7 @@
 # CMake version number components.
 set(CMake_VERSION_MAJOR 3)
 set(CMake_VERSION_MINOR 20)
-set(CMake_VERSION_PATCH 5)
+set(CMake_VERSION_PATCH 6)
 #set(CMake_VERSION_RC 0)
 set(CMake_VERSION_IS_DIRTY 0)
 
@@ -21,7 +21,7 @@ endif()
 
 if(NOT CMake_VERSION_NO_GIT)
   # If this source was exported by 'git archive', use its commit info.
-  set(git_info [==[efa5e1f367 CMake 3.20.5]==])
+  set(git_info [==[0d3bfda22a CMake 3.20.6]==])
 
   # Otherwise, try to identify the current development source version.
   if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* "
index 2b48df9..09f5599 100644 (file)
@@ -131,7 +131,9 @@ bool cmDependsCompiler::CheckDependencies(
             depends.emplace_back(std::move(line));
           }
         } else if (format == "gcc"_s) {
-          auto deps = cmReadGccDepfile(depFile.c_str());
+          auto deps = cmReadGccDepfile(
+            depFile.c_str(), this->LocalGenerator->GetCurrentBinaryDirectory(),
+            GccDepfilePrependPaths::Deps);
           if (!deps) {
             continue;
           }
index 6436baa..d30dbc3 100644 (file)
@@ -12,8 +12,9 @@
 #include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
 
-cm::optional<cmGccDepfileContent> cmReadGccDepfile(const char* filePath,
-                                                   const std::string& prefix)
+cm::optional<cmGccDepfileContent> cmReadGccDepfile(
+  const char* filePath, const std::string& prefix,
+  GccDepfilePrependPaths prependPaths)
 {
   cmGccDepfileLexerHelper helper;
   if (!helper.readFile(filePath)) {
@@ -23,7 +24,8 @@ cm::optional<cmGccDepfileContent> cmReadGccDepfile(const char* filePath,
 
   for (auto& dep : *deps) {
     for (auto& rule : dep.rules) {
-      if (!prefix.empty() && !cmSystemTools::FileIsFullPath(rule)) {
+      if (prependPaths == GccDepfilePrependPaths::All && !prefix.empty() &&
+          !cmSystemTools::FileIsFullPath(rule)) {
         rule = cmStrCat(prefix, '/', rule);
       }
       if (cmSystemTools::FileIsFullPath(rule)) {
index c8a3748..2433492 100644 (file)
@@ -8,8 +8,15 @@
 
 #include "cmGccDepfileReaderTypes.h"
 
+enum class GccDepfilePrependPaths
+{
+  All,
+  Deps,
+};
+
 /*
- * Read dependencies file and append prefix to all relative paths
+ * Read dependencies file and prepend prefix to all relative paths
  */
 cm::optional<cmGccDepfileContent> cmReadGccDepfile(
-  const char* filePath, const std::string& prefix = {});
+  const char* filePath, const std::string& prefix = {},
+  GccDepfilePrependPaths prependPaths = GccDepfilePrependPaths::All);
index c81796c..95f28f6 100644 (file)
@@ -420,6 +420,19 @@ function(add_RunCMake_test_try_compile)
       set(CMAKE_C_STANDARD_DEFAULT "")
     endif()
   endif()
+  if(CMAKE_VERSION VERSION_LESS 3.20.6 AND "x${CMAKE_C_COMPILER_ID}" STREQUAL "xIntelLLVM" AND "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
+    # Older CMake versions accidentally set the default standards to empty when
+    # IntelLLVM targets the MSVC ABI, thus not activating standard selection.
+    # Approximate the logic from IntelLLVM-{C,CXX}.cmake.
+    if(DEFINED CMAKE_C_STANDARD_DEFAULT AND "${CMAKE_C_STANDARD_DEFAULT}" STREQUAL "")
+      # FIXME: The compiler actually defaults to C17, but
+      # CMake does not yet model or detect that standard.
+      set(CMAKE_C_STANDARD_DEFAULT 11)
+    endif()
+    if(DEFINED CMAKE_CXX_STANDARD_DEFAULT AND "${CMAKE_CXX_STANDARD_DEFAULT}" STREQUAL "")
+      set(CMAKE_CXX_STANDARD_DEFAULT 14)
+    endif()
+  endif()
   foreach(var
       CMAKE_SYSTEM_NAME
       CMAKE_C_COMPILER_ID
index 0c6b938..0d44f21 100644 (file)
@@ -305,11 +305,21 @@ unset(C_BOGUS_FLAG CACHE)
 include(CheckCCompilerFlag)
 CHECK_C_COMPILER_FLAG(${C_DD}-_this_is_not_a_flag_ C_BOGUS_FLAG)
 TEST_FAIL(C_BOGUS_FLAG "CHECK_C_COMPILER_FLAG() succeeded, but should have failed")
+unset(C_BOGUS_FLAG CACHE)
+if(DEFINED C_BOGUS_FLAG)
+  # Verify that CHECK_C_COMPILER_FLAG didn't construct a normal variable
+  message(SEND_ERROR "CHECK_C_COMPILER_FLAG shouldn't construct C_BOGUS_FLAG as a normal variable")
+endif()
 
 unset(CXX_BOGUS_FLAG CACHE)
 include(CheckCXXCompilerFlag)
 CHECK_CXX_COMPILER_FLAG(${CXX_DD}-_this_is_not_a_flag_ CXX_BOGUS_FLAG)
 TEST_FAIL(CXX_BOGUS_FLAG "CHECK_CXX_COMPILER_FLAG() succeeded, but should have failed")
+unset(CXX_BOGUS_FLAG CACHE)
+if(DEFINED CXX_BOGUS_FLAG)
+  # Verify that CHECK_C_COMPILER_FLAG didn't construct a normal variable
+  message(SEND_ERROR "CHECK_CXX_COMPILER_FLAG shouldn't construct CXX_BOGUS_FLAG as a normal variable")
+endif()
 
 if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
   unset(C_STRICT_PROTOTYPES CACHE)