[Cmake-commits] [cmake-commits] bigler committed FindCUDA.cmake 1.1 1.2
cmake-commits at cmake.org
cmake-commits at cmake.org
Wed Sep 23 01:01:54 EDT 2009
Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv20979
Modified Files:
FindCUDA.cmake
Log Message:
Updated formatting of documentation plus a little reorganization.
Index: FindCUDA.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/FindCUDA.cmake,v
retrieving revision 1.1
retrieving revision 1.2
diff -C 2 -d -r1.1 -r1.2
*** FindCUDA.cmake 15 Sep 2009 06:38:20 -0000 1.1
--- FindCUDA.cmake 23 Sep 2009 05:01:51 -0000 1.2
***************
*** 1,3 ****
! # - Tools for building C for CUDA files: libraries and build dependencies.
# This script locates the Nvidia Compute Unified Driver Architecture (CUDA)
# tools. It should work on linux, windows, and mac and should be reasonably
--- 1,3 ----
! # - Tools for building CUDA C files: libraries and build dependencies.
# This script locates the Nvidia Compute Unified Driver Architecture (CUDA)
# tools. It should work on linux, windows, and mac and should be reasonably
***************
*** 8,23 ****
# was found.
#
! # The script will prompt the user to specify CUDA_TOOLKIT_ROOT_DIR if the
! # prefix cannot be determined by the location of nvcc in the system path. To
! # use a different installed version of the toolkit set the environment variable
! # CUDA_BIN_PATH before running cmake (e.g. CUDA_BIN_PATH=/usr/local/cuda1.0
! # instead of the default /usr/local/cuda).
#
# Set CUDA_BUILD_EMULATION to ON for Emulation mode. Defaults to OFF (device
! # mode).
! # _DEVICEEMU is defined when CUDA_BUILD_EMULATION is TRUE.
#
! # Set CUDA_HOST_COMPILATION_CPP to OFF for C compilation of host code.
! # Default TRUE.
#
# Set CUDA_BUILD_CUBIN to "ON" or "OFF" to enable and extra compilation pass
--- 8,30 ----
# was found.
#
! # The script will prompt the user to specify CUDA_TOOLKIT_ROOT_DIR if the prefix
! # cannot be determined by the location of nvcc in the system path and REQUIRED
! # is specified to find_package(). To use a different installed version of the
! # toolkit set the environment variable CUDA_BIN_PATH before running cmake
! # (e.g. CUDA_BIN_PATH=/usr/local/cuda1.0 instead of the default
! # /usr/local/cuda) or set CUDA_TOOLKIT_ROOT_DIR after configuring.
! #
! # It might be necessary to set CUDA_TOOLKIT_ROOT_DIR manually on certain
! # platforms, or to use a cuda runtime not installed in the default location. In
! # newer versions of the toolkit the cuda library is included with the graphics
! # driver- be sure that the driver version matches what is needed by the cuda
! # runtime version.
#
# Set CUDA_BUILD_EMULATION to ON for Emulation mode. Defaults to OFF (device
! # mode). -D_DEVICEEMU is defined for CUDA C files when CUDA_BUILD_EMULATION is
! # TRUE.
#
! # Set CUDA_HOST_COMPILATION_CPP to OFF for C compilation of host code. Default
! # TRUE.
#
# Set CUDA_BUILD_CUBIN to "ON" or "OFF" to enable and extra compilation pass
***************
*** 60,205 ****
# The script creates the following macros:
#
! # CUDA_INCLUDE_DIRECTORIES( path0 path1 ... )
! # -- Sets the directories that should be passed to nvcc
! # (e.g. nvcc -Ipath0 -Ipath1 ... ). These paths usually contain other .cu
! # files.
#
! # CUDA_ADD_LIBRARY( cuda_target file0 file1 ...
! # [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
! # -- Creates a shared library "cuda_target" which contains all of the source
! # (*.c, *.cc, etc.) specified and all of the nvcc'ed .cu files specified.
! # All of the specified source files and generated .cpp files are compiled
! # using the standard CMake compiler, so the normal INCLUDE_DIRECTORIES,
! # LINK_DIRECTORIES, and TARGET_LINK_LIBRARIES can be used to affect their
! # build and link. In addition CUDA_INCLUDE_DIRS is added automatically added
! # to include_directories().
#
! # CUDA_ADD_EXECUTABLE( cuda_target file0 file1 ...
! # [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
! # -- Same as CUDA_ADD_LIBRARY except that an exectuable is created.
#
! # CUDA_COMPILE( generated_files file0 file1 ... [STATIC | SHARED | MODULE]
! # [OPTIONS ...] )
! # -- Returns a list of generated files from the input source files to be used
! # with ADD_LIBRARY or ADD_EXECUTABLE.
#
! # CUDA_COMPILE_PTX( generated_files file0 file1 ... [OPTIONS ...] )
! # -- Returns a list of PTX files generated from the input source files.
#
! # CUDA_WRAP_SRCS ( cuda_target format generated_files file0 file1 ...
! # [STATIC | SHARED | MODULE] [OPTIONS ...] )
! # -- This is where all the magic happens. CUDA_ADD_EXECUTABLE,
! # CUDA_ADD_LIBRARY, CUDA_COMPILE, and CUDA_COMPILE_PTX all call this function
! # under the hood.
#
! # Given the list of files (file0 file1 ... fileN) this macro generates custom
! # commands that generate either PTX or linkable objects (use "PTX" or "OBJ"
! # for the format argument to switch. Files that don't end with .cu or have
! # the HEADER_FILE_ONLY property are ignored.
#
! # The arguments passed in after OPTIONS are extra command line options to
! # give to NVCC. You can also specify per configuration options by specifying
! # the name of the configuration followed by the options. General options
! # must preceed configuration specific options. Not all configurations need
! # to be specified, only the ones provided will be used.
#
! # OPTIONS -DFLAG=2 "-DFLAG_OTHER=space in flag"
! # DEBUG -g
! # RELEASE --use_fast_math
! # RELWITHDEBINFO --use_fast_math;-g
! # MINSIZEREL --use_fast_math
#
! # For certain configurations (namely VS generating object files with
! # CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE set to ON), no generated file will
! # be produced for the given cuda file. This is because when you add the cuda
! # file to Visual Studio it knows that this file produces and will link in the
! # resulting object file automatically.
#
! # This script also looks at optional arguments STATIC, SHARED, or MODULE to
! # override the behavior specified by the value of the CMake variable
! # BUILD_SHARED_LIBS. See BUILD_SHARED_LIBS below for more details.
#
! # This script will also generate a separate cmake script that is used at
! # build time to invoke nvcc. This is for serveral reasons.
#
! # 1. nvcc can return negative numbers as return values which confuses
! # Visual Studio into thinking that the command succeeded. The script now
! # checks the error codes and produces errors when there was a problem
#
! # 2. nvcc has been known to not delete intermediate results when it
! # encounters problems. The build rules then don't complete, because there
! # exists a partially written output file. The script now deletes the
! # output files if there was an error.
#
! # 3. By putting all the options that affect the build into a file and then
! # make the build rule dependent on the file, when the options change the
! # output files will be regenerated.
#
! # CUDA_ADD_CUFFT_TO_TARGET( cuda_target )
! # -- Adds the cufft library to the target. Handles whether you are in emulation
! # mode or not.
#
! # CUDA_ADD_CUBLAS_TO_TARGET( cuda_target )
! # -- Adds the cublas library to the target. Handles whether you are in emulation
! # mode or not.
#
! # CUDA_BUILD_CLEAN_TARGET()
! # -- Creates a convience target that deletes all the dependency files generated.
! # You should make clean after running this target to ensure the dependency
! # files get regenerated.
#
# The script defines the following variables:
#
! # ( Note CUDA_ADD_* macros setup cuda/cut library dependencies automatically.
! # These variables are only needed if a cuda API call must be made from code in
! # a outside library or executable. )
#
! # CUDA_VERSION_MAJOR -- The major version of cuda as reported by nvcc.
! # CUDA_VERSION_MINOR -- The minor version.
! # CUDA_VERSION
! # CUDA_VERSION_STRING -- CUDA_VERSION_MAJOR.CUDA_VERSION_MINOR
#
! # CUDA_INCLUDE_DIRS -- Include directory for cuda headers. Added automatically
! # for CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY.
! # CUDA_LIBRARIES -- Cuda RT library.
! # CUDA_CUT_INCLUDE_DIR -- Include directory for cuda SDK headers (cutil.h).
! # CUDA_CUT_LIBRARIES -- SDK libraries.
! # CUDA_NVCC_FLAGS -- Additional NVCC command line arguments. NOTE:
! # multiple arguments must be semi-colon delimited
! # e.g. --compiler-options;-Wall
! # CUDA_NVCC_FLAGS_<CONFIG> -- Confugration specific flags for NVCC.
! # CUDA_CUFFT_LIBRARIES -- Device or emulation library for the Cuda FFT
! # implementation (alternative to:
! # CUDA_ADD_CUFFT_TO_TARGET macro)
! # CUDA_CUBLAS_LIBRARIES -- Device or emulation library for the Cuda BLAS
! # implementation (alterative to:
! # CUDA_ADD_CUBLAS_TO_TARGET macro).
#
#
! # The script now builds object files instead of generating C files. In order to
! # facilitate this, the script now makes use of the CMAKE_{C,CXX}_FLAGS along
! # with their configuration dependent counterparts (i.e. CMAKE_C_FLAGS_DEBUG).
! # These flags are passed through nvcc to the native compiler. In addition, on
! # some systems special flags are added for building objects intended for shared
! # libraries. FindCUDA make use of the CMake variable BUILD_SHARED_LIBS and the
! # usual STATIC, SHARED, and MODULE arguments to determine if these flags should
! # be used. Please set BUILD_SHARED_LIBS or pass in STATIC, SHARED, or MODULE
! # according to how the objects are to be used before calling CUDA_ADD_LIBRARY.
! # A preprocessor macro, <target_name>_EXPORTS is defined when BUILD_SHARED_LIBS
! # is defined. In addition, flags passed into add_definitions with -D or /D are
! # passed along to nvcc.
#
# Files with the HEADER_FILE_ONLY property set will not be compiled.
#
! # It might be necessary to set CUDA_TOOLKIT_ROOT_DIR manually on certain platforms,
! # or to use a cuda runtime not installed in the default location. In newer
! # versions of the toolkit the cuda library is included with the graphics
! # driver- be sure that the driver version matches what is needed by the cuda
! # runtime version.
! #
! # * James Bigler, NVIDIA Corp
! # * Abe Stephens, SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html
! #
! # The MIT License
#
# Copyright (c) 2008-2009
--- 67,204 ----
# The script creates the following macros:
#
! # CUDA_INCLUDE_DIRECTORIES( path0 path1 ... )
! # -- Sets the directories that should be passed to nvcc
! # (e.g. nvcc -Ipath0 -Ipath1 ... ). These paths usually contain other .cu
! # files.
#
! # CUDA_ADD_LIBRARY( cuda_target file0 file1 ...
! # [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
! # -- Creates a shared library "cuda_target" which contains all of the source
! # (*.c, *.cc, etc.) specified and all of the nvcc'ed .cu files specified.
! # All of the specified source files and generated .cpp files are compiled
! # using the standard CMake compiler, so the normal INCLUDE_DIRECTORIES,
! # LINK_DIRECTORIES, and TARGET_LINK_LIBRARIES can be used to affect their
! # build and link. In addition CUDA_INCLUDE_DIRS is added automatically
! # added to include_directories().
#
! # CUDA_ADD_EXECUTABLE( cuda_target file0 file1 ...
! # [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
! # -- Same as CUDA_ADD_LIBRARY except that an exectuable is created.
#
! # CUDA_COMPILE( generated_files file0 file1 ... [STATIC | SHARED | MODULE]
! # [OPTIONS ...] )
! # -- Returns a list of generated files from the input source files to be used
! # with ADD_LIBRARY or ADD_EXECUTABLE.
#
! # CUDA_COMPILE_PTX( generated_files file0 file1 ... [OPTIONS ...] )
! # -- Returns a list of PTX files generated from the input source files.
#
! # CUDA_WRAP_SRCS ( cuda_target format generated_files file0 file1 ...
! # [STATIC | SHARED | MODULE] [OPTIONS ...] )
! # -- This is where all the magic happens. CUDA_ADD_EXECUTABLE,
! # CUDA_ADD_LIBRARY, CUDA_COMPILE, and CUDA_COMPILE_PTX all call this
! # function under the hood.
#
! # Given the list of files (file0 file1 ... fileN) this macro generates
! # custom commands that generate either PTX or linkable objects (use "PTX" or
! # "OBJ" for the format argument to switch. Files that don't end with .cu or
! # have the HEADER_FILE_ONLY property are ignored.
#
! # The arguments passed in after OPTIONS are extra command line options to
! # give to NVCC. You can also specify per configuration options by
! # specifying the name of the configuration followed by the options. General
! # options must preceed configuration specific options. Not all
! # configurations need to be specified, only the ones provided will be used.
#
! # OPTIONS -DFLAG=2 "-DFLAG_OTHER=space in flag"
! # DEBUG -g
! # RELEASE --use_fast_math
! # RELWITHDEBINFO --use_fast_math;-g
! # MINSIZEREL --use_fast_math
#
! # For certain configurations (namely VS generating object files with
! # CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE set to ON), no generated file will
! # be produced for the given cuda file. This is because when you add the
! # cuda file to Visual Studio it knows that this file produces and will link
! # in the resulting object file automatically.
#
! # This script also looks at optional arguments STATIC, SHARED, or MODULE to
! # override the behavior specified by the value of the CMake variable
! # BUILD_SHARED_LIBS. See BUILD_SHARED_LIBS below for more details.
#
! # This script will also generate a separate cmake script that is used at
! # build time to invoke nvcc. This is for serveral reasons.
#
! # 1. nvcc can return negative numbers as return values which confuses
! # Visual Studio into thinking that the command succeeded. The script now
! # checks the error codes and produces errors when there was a problem
#
! # 2. nvcc has been known to not delete intermediate results when it
! # encounters problems. The build rules then don't complete, because there
! # exists a partially written output file. The script now deletes the
! # output files if there was an error.
#
! # 3. By putting all the options that affect the build into a file and then
! # make the build rule dependent on the file, when the options change the
! # output files will be regenerated.
#
! # CUDA_ADD_CUFFT_TO_TARGET( cuda_target )
! # -- Adds the cufft library to the target. Handles whether you are in
! # emulation mode or not.
#
! # CUDA_ADD_CUBLAS_TO_TARGET( cuda_target )
! # -- Adds the cublas library to the target. Handles whether you are in
! # emulation mode or not.
#
! # CUDA_BUILD_CLEAN_TARGET()
! # -- Creates a convience target that deletes all the dependency files
! # generated. You should make clean after running this target to ensure the
! # dependency files get regenerated.
#
# The script defines the following variables:
#
! # ( Note CUDA_ADD_* macros setup cuda/cut library dependencies automatically.
! # These variables are only needed if a cuda API call must be made from code in
! # a outside library or executable. )
#
! # CUDA_VERSION_MAJOR -- The major version of cuda as reported by nvcc.
! # CUDA_VERSION_MINOR -- The minor version.
! # CUDA_VERSION
! # CUDA_VERSION_STRING -- CUDA_VERSION_MAJOR.CUDA_VERSION_MINOR
#
! # CUDA_INCLUDE_DIRS -- Include directory for cuda headers. Added automatically
! # for CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY.
! # CUDA_LIBRARIES -- Cuda RT library.
! # CUDA_CUT_INCLUDE_DIR -- Include directory for cuda SDK headers (cutil.h).
! # CUDA_CUT_LIBRARIES -- SDK libraries.
! # CUDA_NVCC_FLAGS -- Additional NVCC command line arguments. NOTE:
! # multiple arguments must be semi-colon delimited
! # e.g. --compiler-options;-Wall
! # CUDA_NVCC_FLAGS_<CONFIG> -- Confugration specific flags for NVCC.
! # CUDA_CUFFT_LIBRARIES -- Device or emulation library for the Cuda FFT
! # implementation (alternative to:
! # CUDA_ADD_CUFFT_TO_TARGET macro)
! # CUDA_CUBLAS_LIBRARIES -- Device or emulation library for the Cuda BLAS
! # implementation (alterative to:
! # CUDA_ADD_CUBLAS_TO_TARGET macro).
#
#
! # The script generates object files by default. In order to facilitate this,
! # the script makes use of the CMAKE_{C,CXX}_FLAGS along with their configuration
! # dependent counterparts (i.e. CMAKE_C_FLAGS_DEBUG). These flags are passed
! # through nvcc to the native compiler. In addition, on some systems special
! # flags are added for building objects intended for shared libraries. FindCUDA
! # make use of the CMake variable BUILD_SHARED_LIBS and the usual STATIC, SHARED,
! # and MODULE arguments to determine if these flags should be used. Please set
! # BUILD_SHARED_LIBS or pass in STATIC, SHARED, or MODULE according to how the
! # objects are to be used before calling CUDA_ADD_LIBRARY. A preprocessor macro,
! # <target_name>_EXPORTS is defined when BUILD_SHARED_LIBS is defined. In
! # addition, flags passed into add_definitions with -D or /D are passed along to
! # nvcc.
#
# Files with the HEADER_FILE_ONLY property set will not be compiled.
#
! # James Bigler, NVIDIA Corp
! # Abe Stephens, SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html
#
# Copyright (c) 2008-2009
***************
*** 209,230 ****
# Scientific Computing and Imaging Institute, University of Utah
#
! # License for the specific language governing rights and limitations under
! # Permission is hereby granted, free of charge, to any person obtaining a
! # copy of this software and associated documentation files (the "Software"),
! # to deal in the Software without restriction, including without limitation
! # the rights to use, copy, modify, merge, publish, distribute, sublicense,
! # and/or sell copies of the Software, and to permit persons to whom the
! # Software is furnished to do so, subject to the following conditions:
#
! # The above copyright notice and this permission notice shall be included
! # in all copies or substantial portions of the Software.
#
! # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
! # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
! # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
! # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
! # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
! # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
! # DEALINGS IN THE SOFTWARE.
#
###############################################################################
--- 208,234 ----
# Scientific Computing and Imaging Institute, University of Utah
#
! # This code is licensed under the MIT License. See the FindCUDA.cmake script
! # for the text of the license.
!
! # The MIT License
#
! # License for the specific language governing rights and limitations under
! # Permission is hereby granted, free of charge, to any person obtaining a
! # copy of this software and associated documentation files (the "Software"),
! # to deal in the Software without restriction, including without limitation
! # the rights to use, copy, modify, merge, publish, distribute, sublicense,
! # and/or sell copies of the Software, and to permit persons to whom the
! # Software is furnished to do so, subject to the following conditions:
#
! # The above copyright notice and this permission notice shall be included
! # in all copies or substantial portions of the Software.
! #
! # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
! # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
! # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
! # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
! # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
! # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
! # DEALINGS IN THE SOFTWARE.
#
###############################################################################
More information about the Cmake-commits
mailing list