[Cmake-commits] CMake branch, next, updated. v3.2.1-1676-g5f9abec

Brad King brad.king at kitware.com
Thu Apr 9 11:42:40 EDT 2015


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, next has been updated
       via  5f9abec54efaf06b31330a980703286e55b7fec9 (commit)
       via  1b0c77a33d2e598c48bc8ad385cfd0586b8294e9 (commit)
       via  8313de2d5adf4514f0b3cccca747e78ca07d3ad3 (commit)
      from  43042badb4307673d415ac9cecfb7e4cb3eaabbd (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5f9abec54efaf06b31330a980703286e55b7fec9
commit 5f9abec54efaf06b31330a980703286e55b7fec9
Merge: 43042ba 1b0c77a
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Apr 9 11:42:39 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Apr 9 11:42:39 2015 -0400

    Merge topic 'FindCUDA.cmake/CUDA_SOURCE_FILE' into next
    
    1b0c77a3 FindCUDA: Add specific cuda_language_flag instead of using nvcc.
    8313de2d FindCUDA: Allow setting CUDA_SOURCE_PROPERTY_FORMAT for non-.cu files.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1b0c77a33d2e598c48bc8ad385cfd0586b8294e9
commit 1b0c77a33d2e598c48bc8ad385cfd0586b8294e9
Author:     James Bigler <jamesbigler at gmail.com>
AuthorDate: Wed Apr 1 17:23:51 2015 -0600
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Apr 9 11:41:36 2015 -0400

    FindCUDA: Add specific cuda_language_flag instead of using nvcc.
    
    I was previously appending to nvcc_flags inside the file loop.  This
    caused the flag to be appended multiple times which freaks out nvcc.
    Now the flag is specifically handled per file.

diff --git a/Modules/FindCUDA.cmake b/Modules/FindCUDA.cmake
index de66443..1802e61 100644
--- a/Modules/FindCUDA.cmake
+++ b/Modules/FindCUDA.cmake
@@ -1310,7 +1310,9 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files)
       endif()
       # If file isn't a .cu file, we need to tell nvcc to treat it as such.
       if(NOT ${file} MATCHES "\\.cu$")
-        list(APPEND nvcc_flags "-x=cu")
+        set(cuda_language_flag -x=cu)
+      else()
+        set(cuda_language_flag)
       endif()
 
       if( ${_cuda_source_format} MATCHES "OBJ")
diff --git a/Modules/FindCUDA/run_nvcc.cmake b/Modules/FindCUDA/run_nvcc.cmake
index abdd307..8032309 100644
--- a/Modules/FindCUDA/run_nvcc.cmake
+++ b/Modules/FindCUDA/run_nvcc.cmake
@@ -75,6 +75,7 @@ set(CUDA_NVCC_FLAGS @CUDA_NVCC_FLAGS@ ;; @CUDA_WRAP_OPTION_NVCC_FLAGS@) # list
 set(nvcc_flags @nvcc_flags@) # list
 set(CUDA_NVCC_INCLUDE_ARGS "@CUDA_NVCC_INCLUDE_ARGS@") # list (needs to be in quotes to handle spaces properly).
 set(format_flag "@format_flag@") # string
+set(cuda_language_flag @cuda_language_flag@) # list
 
 if(build_cubin AND NOT generated_cubin_file)
   message(FATAL_ERROR "You must specify generated_cubin_file on the command line")
@@ -238,6 +239,7 @@ cuda_execute_process(
   "Generating ${generated_file}"
   COMMAND "${CUDA_NVCC_EXECUTABLE}"
   "${source_file}"
+  ${cuda_language_flag}
   ${format_flag} -o "${generated_file}"
   ${CCBIN}
   ${nvcc_flags}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8313de2d5adf4514f0b3cccca747e78ca07d3ad3
commit 8313de2d5adf4514f0b3cccca747e78ca07d3ad3
Author:     James Bigler <jamesbigler at gmail.com>
AuthorDate: Thu Mar 26 23:46:35 2015 -0600
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Apr 9 11:41:36 2015 -0400

    FindCUDA: Allow setting CUDA_SOURCE_PROPERTY_FORMAT for non-.cu files.
    
    A previously undocumented feature allowed overriding the format
    specified to CUDA_WRAP_SRCS with a source file property called
    CUDA_SOURCE_PROPERTY_FORMAT.  I added documentation for this feature as
    well as added the ability to let nvcc compile any file regardless of
    type if this property was found.
    
    In addition, I also fixed a couple of bugs with the calls to
    _cuda_get_important_host_flags that weren't garding the arguments with
    "" to prevent empty values from causing errors.

diff --git a/Modules/FindCUDA.cmake b/Modules/FindCUDA.cmake
index ca32559..de66443 100644
--- a/Modules/FindCUDA.cmake
+++ b/Modules/FindCUDA.cmake
@@ -106,6 +106,13 @@
 #      CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME and
 #      CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS should be called.
 #
+#   CUDA_SOURCE_PROPERTY_FORMAT
+#   -- If this source file property is set, it can override the format specified
+#      to CUDA_WRAP_SRCS (OBJ, PTX, CUBIN, or FATBIN).  If an input source file
+#      is not a .cu file, setting this file will cause it to be treated as a .cu
+#      file. See documentation for set_source_files_properties on how to set
+#      this property.
+#
 #   CUDA_USE_STATIC_CUDA_RUNTIME (Default ON)
 #   -- When enabled the static version of the CUDA runtime library will be used
 #      in CUDA_LIBRARIES.  If the version of CUDA configured doesn't support
@@ -1294,13 +1301,17 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files)
   foreach(file ${ARGN})
     # Ignore any file marked as a HEADER_FILE_ONLY
     get_source_file_property(_is_header ${file} HEADER_FILE_ONLY)
-    if(${file} MATCHES "\\.cu$" AND NOT _is_header)
+    # Allow per source file overrides of the format.  Also allows compiling non-.cu files.
+    get_source_file_property(_cuda_source_format ${file} CUDA_SOURCE_PROPERTY_FORMAT)
+    if((${file} MATCHES "\\.cu$" OR _cuda_source_format) AND NOT _is_header)
 
-      # Allow per source file overrides of the format.
-      get_source_file_property(_cuda_source_format ${file} CUDA_SOURCE_PROPERTY_FORMAT)
       if(NOT _cuda_source_format)
         set(_cuda_source_format ${format})
       endif()
+      # If file isn't a .cu file, we need to tell nvcc to treat it as such.
+      if(NOT ${file} MATCHES "\\.cu$")
+        list(APPEND nvcc_flags "-x=cu")
+      endif()
 
       if( ${_cuda_source_format} MATCHES "OBJ")
         set( cuda_compile_to_external_module OFF )
@@ -1313,7 +1324,7 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files)
         elseif( ${_cuda_source_format} MATCHES "FATBIN")
           set( cuda_compile_to_external_module_type "fatbin" )
         else()
-          message( FATAL_ERROR "Invalid format flag passed to CUDA_WRAP_SRCS for file '${file}': '${_cuda_source_format}'.  Use OBJ, PTX, CUBIN or FATBIN.")
+          message( FATAL_ERROR "Invalid format flag passed to CUDA_WRAP_SRCS or set with CUDA_SOURCE_PROPERTY_FORMAT file property for file '${file}': '${_cuda_source_format}'.  Use OBJ, PTX, CUBIN or FATBIN.")
         endif()
       endif()
 
@@ -1472,10 +1483,10 @@ endmacro()
 
 function(_cuda_get_important_host_flags important_flags flag_string)
   if(CMAKE_GENERATOR MATCHES "Visual Studio")
-    string(REGEX MATCHALL "/M[DT][d]?" flags ${flag_string})
+    string(REGEX MATCHALL "/M[DT][d]?" flags "${flag_string}")
     list(APPEND ${important_flags} ${flags})
   else()
-    string(REGEX MATCHALL "-fPIC" flags ${flag_string})
+    string(REGEX MATCHALL "-fPIC" flags "${flag_string}")
     list(APPEND ${important_flags} ${flags})
   endif()
   set(${important_flags} ${${important_flags}} PARENT_SCOPE)
@@ -1535,14 +1546,14 @@ function(CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS output_file cuda_target options
         list(APPEND config_specific_flags $<$<CONFIG:${config}>:${f}>)
       endforeach()
       set(important_host_flags)
-      _cuda_get_important_host_flags(important_host_flags ${CMAKE_${CUDA_C_OR_CXX}_FLAGS_${config_upper}})
+      _cuda_get_important_host_flags(important_host_flags "${CMAKE_${CUDA_C_OR_CXX}_FLAGS_${config_upper}}")
       foreach(f ${important_host_flags})
         list(APPEND flags $<$<CONFIG:${config}>:-Xcompiler> $<$<CONFIG:${config}>:${f}>)
       endforeach()
     endforeach()
     # Add CMAKE_${CUDA_C_OR_CXX}_FLAGS
     set(important_host_flags)
-    _cuda_get_important_host_flags(important_host_flags ${CMAKE_${CUDA_C_OR_CXX}_FLAGS})
+    _cuda_get_important_host_flags(important_host_flags "${CMAKE_${CUDA_C_OR_CXX}_FLAGS}")
     foreach(f ${important_host_flags})
       list(APPEND flags -Xcompiler ${f})
     endforeach()

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list