[Cmake-commits] CMake branch, master, updated. v3.10.1-837-g84e2a7e

Kitware Robot kwrobot at kitware.com
Thu Jan 18 09:45:09 EST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  84e2a7e58a897f9003f02afb2b0feb9c5923a27f (commit)
       via  d0b00a848f45361fd5e2646938a57fcdf834d38d (commit)
       via  1c681f92004effec738545dce53d4a52329b7675 (commit)
       via  bffdc2e2e1697ffc0ad1fa1f16e9f1092e6a6489 (commit)
       via  a6e9b9c9e4460f77fc173a3610b167e15f66f4ec (commit)
       via  c10119df62cf212f9274c6a5c0af609bae4f1b03 (commit)
       via  c9f66540591303d8ba9bce83865059b79bdc6e01 (commit)
       via  2bd232b536b59824053bbf3d6a2ac120f493090f (commit)
       via  46abfedb8395f7e72281bd8eb7bd4f118c311140 (commit)
      from  2868019b2f93f2eb50de901d8a58ceb9b5790ae5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=84e2a7e58a897f9003f02afb2b0feb9c5923a27f
commit 84e2a7e58a897f9003f02afb2b0feb9c5923a27f
Merge: d0b00a8 a6e9b9c
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Jan 18 14:43:04 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Thu Jan 18 09:43:08 2018 -0500

    Merge topic 'ctest-libuv-output-decode'
    
    a6e9b9c9 CTest: Fix process output read error cases
    c10119df CTest: Fix decoding of MBCS character split by buffering
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1667


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d0b00a848f45361fd5e2646938a57fcdf834d38d
commit d0b00a848f45361fd5e2646938a57fcdf834d38d
Merge: 1c681f9 c9f6654
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Jan 18 14:41:49 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Thu Jan 18 09:42:11 2018 -0500

    Merge topic 'FindTCL-thread-suffix'
    
    c9f66540 FindTCL: Find 8.6 libraries with 't' suffix
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1663


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1c681f92004effec738545dce53d4a52329b7675
commit 1c681f92004effec738545dce53d4a52329b7675
Merge: bffdc2e 2bd232b
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Jan 18 14:41:01 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Thu Jan 18 09:41:39 2018 -0500

    Merge topic 'fix_ninja_cuda'
    
    2bd232b5 Ninja: Fixes CUDA device link in Windows
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1662


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bffdc2e2e1697ffc0ad1fa1f16e9f1092e6a6489
commit bffdc2e2e1697ffc0ad1fa1f16e9f1092e6a6489
Merge: 2868019 46abfed
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Jan 18 14:40:52 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Thu Jan 18 09:41:01 2018 -0500

    Merge topic 'msvc_cuda_8_explicitly_specify_cuda_language'
    
    46abfedb CUDA: MSVC will now state files are cuda files when needed
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1658


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a6e9b9c9e4460f77fc173a3610b167e15f66f4ec
commit a6e9b9c9e4460f77fc173a3610b167e15f66f4ec
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jan 17 11:17:28 2018 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jan 17 11:20:24 2018 -0500

    CTest: Fix process output read error cases
    
    The libuv documentation states that the stream read callback may
    be called with `nread == 0` for EAGAIN.  Handle this gracefully.
    It also states that the callee is responsible for closing the
    stream on error.  Always close the stream for `nread < 0`.

diff --git a/Source/CTest/cmProcess.cxx b/Source/CTest/cmProcess.cxx
index 4454715..e332a77 100644
--- a/Source/CTest/cmProcess.cxx
+++ b/Source/CTest/cmProcess.cxx
@@ -244,6 +244,10 @@ void cmProcess::OnRead(ssize_t nread, const uv_buf_t* buf)
     return;
   }
 
+  if (nread == 0) {
+    return;
+  }
+
   // The process will provide no more data.
   if (nread != UV_EOF) {
     auto error = static_cast<int>(nread);
@@ -257,6 +261,7 @@ void cmProcess::OnRead(ssize_t nread, const uv_buf_t* buf)
   }
 
   this->ReadHandleClosed = true;
+  this->PipeReader.reset();
   if (this->ProcessHandleClosed) {
     uv_timer_stop(this->Timer);
     this->Runner.FinalizeTest();

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c10119df62cf212f9274c6a5c0af609bae4f1b03
commit c10119df62cf212f9274c6a5c0af609bae4f1b03
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Jan 16 13:59:55 2018 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jan 17 10:41:51 2018 -0500

    CTest: Fix decoding of MBCS character split by buffering
    
    Use a single `cmProcessOutput` instance persistently to decode
    all output of a test process so that partial character bytes
    can be buffered.

diff --git a/Source/CTest/cmProcess.cxx b/Source/CTest/cmProcess.cxx
index c8806a7..4454715 100644
--- a/Source/CTest/cmProcess.cxx
+++ b/Source/CTest/cmProcess.cxx
@@ -5,19 +5,19 @@
 #include "cmCTest.h"
 #include "cmCTestRunTest.h"
 #include "cmCTestTestHandler.h"
-#include "cmProcessOutput.h"
 #include "cmsys/Process.h"
 
 #include <algorithm>
 #include <fcntl.h>
 #include <iostream>
 #include <signal.h>
-#include <stdint.h>
 #include <string>
 #if !defined(_WIN32)
 #include <unistd.h>
 #endif
 
+#define CM_PROCESS_BUF_SIZE 65536
+
 #if defined(_WIN32) && !defined(__CYGWIN__)
 #include <io.h>
 
@@ -60,6 +60,7 @@ static int cmProcessGetPipes(int* fds)
 
 cmProcess::cmProcess(cmCTestRunTest& runner)
   : Runner(runner)
+  , Conv(cmProcessOutput::UTF8, CM_PROCESS_BUF_SIZE)
 {
   this->Timeout = std::chrono::duration<double>::zero();
   this->TotalTime = std::chrono::duration<double>::zero();
@@ -232,9 +233,7 @@ void cmProcess::OnRead(ssize_t nread, const uv_buf_t* buf)
   std::string line;
   if (nread > 0) {
     std::string strdata;
-    cmProcessOutput processOutput(cmProcessOutput::UTF8,
-                                  static_cast<unsigned int>(buf->len));
-    processOutput.DecodeText(buf->base, static_cast<size_t>(nread), strdata);
+    this->Conv.DecodeText(buf->base, static_cast<size_t>(nread), strdata);
     this->Output.insert(this->Output.end(), strdata.begin(), strdata.end());
 
     while (this->Output.GetLine(line)) {
@@ -271,10 +270,10 @@ void cmProcess::OnAllocateCB(uv_handle_t* handle, size_t suggested_size,
   self->OnAllocate(suggested_size, buf);
 }
 
-void cmProcess::OnAllocate(size_t suggested_size, uv_buf_t* buf)
+void cmProcess::OnAllocate(size_t /*suggested_size*/, uv_buf_t* buf)
 {
-  if (this->Buf.size() < suggested_size) {
-    this->Buf.resize(suggested_size);
+  if (this->Buf.size() != CM_PROCESS_BUF_SIZE) {
+    this->Buf.resize(CM_PROCESS_BUF_SIZE);
   }
 
   *buf =
diff --git a/Source/CTest/cmProcess.h b/Source/CTest/cmProcess.h
index 9250896..633be24 100644
--- a/Source/CTest/cmProcess.h
+++ b/Source/CTest/cmProcess.h
@@ -5,13 +5,14 @@
 
 #include "cmConfigure.h" // IWYU pragma: keep
 
+#include "cmProcessOutput.h"
 #include "cmUVHandlePtr.h"
 #include "cm_uv.h"
 
 #include <chrono>
 #include <stddef.h>
+#include <stdint.h>
 #include <string>
-#include <sys/types.h>
 #include <vector>
 
 class cmCTestRunTest;
@@ -80,6 +81,7 @@ private:
   std::vector<char> Buf;
 
   cmCTestRunTest& Runner;
+  cmProcessOutput Conv;
   int Signal = 0;
   cmProcess::State ProcessState = cmProcess::State::Starting;
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c9f66540591303d8ba9bce83865059b79bdc6e01
commit c9f66540591303d8ba9bce83865059b79bdc6e01
Author:     lorenz <sppedflyer at gmail.com>
AuthorDate: Mon Jan 15 15:36:15 2018 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Jan 16 09:52:24 2018 -0500

    FindTCL: Find 8.6 libraries with 't' suffix
    
    Building Tcl with `makefile.vc` produces library files with a `t`
    suffix to indicate threading support.  Since threading support is
    on by default in 8.6 anyway, the libraries should be compatible.
    
    Issue: https://github.com/conda-forge/tk-feedstock/issues/12

diff --git a/Modules/FindTCL.cmake b/Modules/FindTCL.cmake
index 80779b3..19eb932 100644
--- a/Modules/FindTCL.cmake
+++ b/Modules/FindTCL.cmake
@@ -116,7 +116,7 @@ find_library(TCL_LIBRARY
   NAMES
   tcl
   tcl${TCL_LIBRARY_VERSION} tcl${TCL_TCLSH_VERSION} tcl${TK_WISH_VERSION}
-  tcl86 tcl8.6
+  tcl86 tcl8.6 tcl86t tcl8.6t
   tcl85 tcl8.5
   tcl84 tcl8.4
   tcl83 tcl8.3
@@ -130,7 +130,7 @@ find_library(TK_LIBRARY
   NAMES
   tk
   tk${TK_LIBRARY_VERSION} tk${TCL_TCLSH_VERSION} tk${TK_WISH_VERSION}
-  tk86 tk8.6
+  tk86 tk8.6 tk86t tk8.6t
   tk85 tk8.5
   tk84 tk8.4
   tk83 tk8.3

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2bd232b536b59824053bbf3d6a2ac120f493090f
commit 2bd232b536b59824053bbf3d6a2ac120f493090f
Author:     Francisco Facioni <francisco.facioni at hawkeyeinnovations.com>
AuthorDate: Mon Jan 15 10:58:52 2018 +0000
Commit:     Francisco Facioni <francisco.facioni at hawkeyeinnovations.com>
CommitDate: Mon Jan 15 11:04:37 2018 +0000

    Ninja: Fixes CUDA device link in Windows
    
    nvcc in linker mode doesn't support response files
    
    Fixes: #17644

diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index e0cc35a..594e0f5 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -760,7 +760,7 @@ void cmNinjaNormalTargetGenerator::WriteDeviceLinkStatement()
                        /*implicitOuts=*/cmNinjaDeps(), explicitDeps,
                        implicitDeps, orderOnlyDeps, vars, rspfile,
                        commandLineLengthLimit, &usedResponseFile);
-  this->WriteDeviceLinkRule(usedResponseFile);
+  this->WriteDeviceLinkRule(false);
 }
 
 void cmNinjaNormalTargetGenerator::WriteLinkStatement()

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=46abfedb8395f7e72281bd8eb7bd4f118c311140
commit 46abfedb8395f7e72281bd8eb7bd4f118c311140
Author:     Robert Maynard <robert.maynard at kitware.com>
AuthorDate: Thu Jan 11 17:15:31 2018 -0500
Commit:     Robert Maynard <robert.maynard at kitware.com>
CommitDate: Fri Jan 12 15:17:03 2018 -0500

    CUDA: MSVC will now state files are cuda files when needed
    
    The MSVC CUDA build customizations before CUDA 9 would not explicitly
    add the -x cu option when building. This caused .cpp and .c files
    invoked with CudaCompile to be compiled as host code and not
    cuda. Now when we detect CUDA < 9 we will explicitly add this
    option to correct this bug.

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index ee9db43..3a008cd 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2646,6 +2646,7 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions(
     cudaOptions.AddFlag("GPUDebugInfo", "false");
   }
 
+  bool notPtx = true;
   if (this->GeneratorTarget->GetPropertyAsBool("CUDA_SEPARABLE_COMPILATION")) {
     cudaOptions.AddFlag("GenerateRelocatableDeviceCode", "true");
   } else if (this->GeneratorTarget->GetPropertyAsBool(
@@ -2654,6 +2655,16 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions(
     // We drop the %(Extension) component as CMake expects all PTX files
     // to not have the source file extension at all
     cudaOptions.AddFlag("CompileOut", "$(IntDir)%(Filename).ptx");
+    notPtx = false;
+  }
+
+  if (notPtx &&
+      cmSystemTools::VersionCompareGreaterEq(
+        "8.0", this->GlobalGenerator->GetPlatformToolsetCudaString())) {
+    // Explicitly state that we want this file to be treated as a
+    // CUDA file no matter what the file extensions is
+    // This is only needed for < CUDA 9
+    cudaOptions.AppendFlagString("AdditionalOptions", "-x cu");
   }
 
   // CUDA automatically passes the proper '--machine' flag to nvcc
diff --git a/Tests/CudaOnly/WithDefs/CMakeLists.txt b/Tests/CudaOnly/WithDefs/CMakeLists.txt
index 5bd93a4..308c089 100644
--- a/Tests/CudaOnly/WithDefs/CMakeLists.txt
+++ b/Tests/CudaOnly/WithDefs/CMakeLists.txt
@@ -21,14 +21,8 @@ set(release_compile_defs DEFREL)
 #this verifies we can pass things such as '_','(' to nvcc
 add_definitions("-DPACKED_DEFINE=__attribute__((packed))")
 
-if(CMAKE_GENERATOR MATCHES "Visual Studio")
-  # CUDA MSBuild rules do not pass '-x cu' to nvcc
-  set(main main_for_vs.cu)
-else()
-  set(main main.notcu)
-  set_source_files_properties(main.notcu PROPERTIES LANGUAGE CUDA)
-endif()
-add_executable(CudaOnlyWithDefs ${main})
+add_executable(CudaOnlyWithDefs main.notcu)
+set_source_files_properties(main.notcu PROPERTIES LANGUAGE CUDA)
 
 target_compile_options(CudaOnlyWithDefs
   PRIVATE
diff --git a/Tests/CudaOnly/WithDefs/main_for_vs.cu b/Tests/CudaOnly/WithDefs/main_for_vs.cu
deleted file mode 100644
index 56078e7..0000000
--- a/Tests/CudaOnly/WithDefs/main_for_vs.cu
+++ /dev/null
@@ -1 +0,0 @@
-#include "main.notcu"

-----------------------------------------------------------------------

Summary of changes:
 Modules/FindTCL.cmake                      |    4 ++--
 Source/CTest/cmProcess.cxx                 |   20 ++++++++++++--------
 Source/CTest/cmProcess.h                   |    4 +++-
 Source/cmNinjaNormalTargetGenerator.cxx    |    2 +-
 Source/cmVisualStudio10TargetGenerator.cxx |   11 +++++++++++
 Tests/CudaOnly/WithDefs/CMakeLists.txt     |   10 ++--------
 Tests/CudaOnly/WithDefs/main_for_vs.cu     |    1 -
 7 files changed, 31 insertions(+), 21 deletions(-)
 delete mode 100644 Tests/CudaOnly/WithDefs/main_for_vs.cu


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list