summaryrefslogtreecommitdiffstats
path: root/Modules/FindCUDA.cmake
Commit message (Collapse)AuthorAgeFilesLines
* FindCUDA: Fix object build rule for separate compilation on VS 2013+ (#15697)Dominic Meiser2015-08-201-3/+2
| | | | | | The handling of multilevel dependencies has been fixed in Visual Studio 2013. The work around used for VS 2010 and VS 2012 does not work for VS 2013 any more. Switch to normal object build rules for VS 2013 and newer.
* FindCUDA: Resolve a host compiler symlink only if it is Apple cc -> clangBill Hoffman2015-06-151-9/+23
| | | | | | | | Otherwise using a "cc -> ccache" or similar symlink as the compiler causes FindCUDA to select ccache as the host compiler. Update the logic added by commit v3.1.0-rc1~354^2 (FindCUDA: Fix OSX Clang & no C language enabled, 2014-06-12) to apply only in the specific case it is needed.
* FindCUDA: Create output dir while compiling intermediate link file (#15016)James Bigler2015-04-201-0/+2
| | | | | | | | During compilation of the intermediate link file, the output directory may not be present in Visual Studio builds. This fix makes sure the output directory exists before generating the output file. Suggested-by: Irwin Zaid
* FindCUDA: Add specific cuda_language_flag instead of using nvcc.James Bigler2015-04-091-1/+3
| | | | | | 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.
* FindCUDA: Allow setting CUDA_SOURCE_PROPERTY_FORMAT for non-.cu files.James Bigler2015-04-091-8/+19
| | | | | | | | | | | | 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.
* Merge topic 'FindCUDA.cmake/C++11Flags'Brad King2015-04-091-0/+13
|\ | | | | | | | | 99abebde FindCUDA: Handle c++11 host flag
| * FindCUDA: Handle c++11 host flagJames Bigler2015-04-081-0/+13
| | | | | | | | | | | | | | | | | | | | If the host flags contain a c++11 flag (at least for gcc), then we can't automatically propagate to nvcc it using -Xcompiler. This is because nvcc can't use any C++ only flags. Instead we find this flag and add it to nvcc's flags (it has a special flag for dealing with c++11 code) and remove it from the host flags. Co-Author: Guillermo Marcus <gmarcus@nvidia.com>
* | FindCUDA: Use the static CUDA runtime library if available (#15482)James Bigler2015-04-031-4/+81
|/ | | | | | | | | | Beginning in CUDA 5.5 a static version of the cuda runtime library became available. Since nvcc defaults to using this library over the shared version, FindCUDA will also default to using this version. There are many advantages to using the static version (most importantly to avoid conflicts with multiple versions when building a CUDA based library). Offer a CUDA_USE_STATIC_CUDA_RUNTIME option to control this behavior.
* FindCUDA: Mark more cache variables as advancedMark Abraham2015-01-221-0/+4
| | | | | Mark variables pertaining to specific situations relevant to CUDA compilation as advanced since they are not part of normal usage.
* FindCUDA: Add cuSOLVER library from CUDA 7.0Andrew Seidl2015-01-211-0/+7
|
* Merge topic 'FindCUDA.cmake/UseCMAKE_CXX_FLAGS_separableCompilation'Brad King2015-01-111-1/+9
|\ | | | | | | | | b4e54f9b FindCUDA: Add relevant CMAKE_{C,CXX}_FLAGS for separable compilation
| * FindCUDA: Add relevant CMAKE_{C,CXX}_FLAGS for separable compilationJames Bigler2015-01-061-1/+9
| | | | | | | | | | | | | | Previously only the CMAKE_{C,CXX}_FLAGS_<CONFIG> flags were inspected for relevant flags when compiling the intermediate link file. We need to also consider the configuration agnostic flags, CMAKE_{C,CXX}_FLAGS as well.
| * Merge branch 'release-doc-formatting' into doc-formattingBrad King2014-11-061-4/+4
| |\ | | | | | | | | | | | | Resolve conflict in Modules/ExternalProject.cmake by keeping our side, which is more completely revised.
* | | FindCUDA: Do not assume CMAKE_SYSTEM_PROCESSOR is setMark Abraham2015-01-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | CMAKE_SYSTEM_PROCESSOR is not guaranteed to be defined (per http://www.cmake.org/Wiki/CMake_Cross_Compiling), and when cross compiling where it happens to be undefined, this module was broken. Reviewed-by: Rolf Eike Beer <eike@sf-mail.de>
* | | Merge branch 'release-doc-formatting' into releaseBrad King2014-11-071-4/+4
|\ \ \ | |/ / |/| / | |/
| * Modules: Wrap long lines in pre-formatted documentation blocksBrad King2014-11-061-4/+4
| | | | | | | | Help format the blocks better for display without a wide screen.
* | FindCUDA: Remove rpath logic outdated by CMake's own @rpath supportClinton Stimpson2014-10-221-12/+0
|/ | | | | Otherwise binaries end up with two copies of the same value and the OS X install_name_tool may corrupt them.
* FindCUDA: Avoid if() auto-dereference in string comparisonsAdam Strzelecki2014-09-241-7/+7
| | | | This silences possible CMP0054 warnings.
* FindCUDA: Fix OSX Clang & no C language enabledAdam Strzelecki2014-06-301-2/+12
| | | | | | | | | | | When setting default CUDA_HOST_COMPILER we must dereference CMAKE_C_COMPILER, i.e. /usr/bin/clang should be used instead /usr/bin/cc which is symlink. Otherwise CUDA thinks it is GCC and issues -dumpspecs which is unknown option to Clang. Also in case neither CMAKE_C_COMPILER is defined (project does not use C language) nor CUDA_HOST_COMPILER is specified manually we should skip -ccbin and let nvcc use its own default C compiler.
* Do not change minimum required version in modulesDaniele E. Domenichelli2014-05-191-5/+0
| | | | | | | | | | | | | | | | | | | | Some modules change CMake minimum required version when they are included. For example: cmake_minimum_required(VERSION 2.8.12) message("${CMAKE_MINIMUM_REQUIRED_VERSION}") include(CheckTypeSize) message("${CMAKE_MINIMUM_REQUIRED_VERSION}") will produce the following output: 2.8.12 2.6 This patch ensures that when you include a CMake module the minimum required version and the policies set are left unchanged. Fixes Issue #14864
* Merge topic 'FindCUDA-separable-compilation-flags'Brad King2014-05-191-0/+9
|\ | | | | | | | | 6ad14c71 FindCUDA: Use CUDA_NVCC_FLAGS* for separable compilation
| * FindCUDA: Use CUDA_NVCC_FLAGS* for separable compilationJames Bigler2014-05-191-0/+9
| | | | | | | | | | | | | | Previously when linking the intermediate link file for separable compilation the CUDA_NVCC_FLAGS* were not used. This caused tremendous confusion when using this feature, and I consider it to be a bug. This change should fix this.
* | FindCUDA: Add support for compilation to fatbin & cubin modulesTobias Zirr2014-04-301-29/+60
| |
* | Remove .* expressions from beginning and end of MATCHES regexsRolf Eike Beer2014-04-141-1/+1
| | | | | | | | | | | | | | | | | | All these expressions work the same: "foo" ".*foo.*" "^.*foo.*$" This assumes that the "Intel*" expressions were meant to be "Intel.*".
* | FindCUDA: Fix a typoBen Boeckel2014-03-081-1/+1
|/
* FindCUDA: Fix literal block formattingBrad King2014-01-291-161/+4
| | | | Fix locations of '::' manually to group literal blocks as desired.
* added support for arm cross compilation with CUDA 5.5:Vladislav Vinogradov2013-10-241-8/+40
| | | | | | | | | * added CUDA_TOOLKIT_TARGET_DIR CMake variable that used to locate headers and libraries for target platform * added CUDA_TARGET_CPU_ARCH which is set to ARM for arm cross-compilation and is used to add --target-cpu-architecture NVCC flag
* Convert builtin help to reStructuredText source filesKitware Robot2013-10-151-281/+449
| | | | | | | | Run the convert-help.bash script to convert documentation: ./convert-help.bash "/path/to/CMake-build/bin" Then remove it.
* FindCUDA: Fix NPP library search for CUDA 5.5Vladislav Vinogradov2013-10-111-1/+16
| | | | In CUDA 5.5 NPP was divided onto 3 separate libraries: nppc, npps, nppi.
* FindCUDA: Always list custom command outputs in their targetsBrad King2013-09-131-16/+1
| | | | | | | | | CMake's intended interface for linking to explicit object files (marked with EXTERNAL_OBJECT) is that only those listed as target sources should be linked. Drop FindCUDA's attempt to hide the .obj files from VS IDE project files, which depends on VS-version-specific behavior of linking custom command outputs that happen to be named "*.obj". CMake puts external object files in a dedicated source group anyway.
* FindCUDA: Search for libraries in <prefix>/lib/<arch>/nvidida-current.Robert Maynard2013-07-221-1/+5
| | | | | | Ubuntu install the CUDA libraries into a location that is different than the default location provided by the NVidia installer. So we teach the FindCUDA package to also find the Ubuntu install location.
* Merge topic 'Cuda_WRAP_SRCS_duplicates'Brad King2013-05-161-0/+3
|\ | | | | | | | | 32b582d FindCUDA: Remove duplicate entries from INCLUDE_DIRECTORIES.
| * FindCUDA: Remove duplicate entries from INCLUDE_DIRECTORIES.Marcel Loose2013-04-181-0/+3
| | | | | | | | | | | | As of CMake 2.8.8, the INCLUDE_DIRECTORIES() command does not de-duplicate entries. Failure to do so can lead to an extremely long and repetitive list of -I entries on the command line.
* | FindCUDA: CUDA_COMPUTE_BUILD_PATH uses relative paths to binary dir.Mathias Gaunard2013-04-181-1/+7
|/ | | | | | | make CUDA_COMPUTE_BUILD_PATH use a relative path to the current binary directory instead of the current source directory if the source file considered is in the current binary directory. This is done to shorten the paths given to the compiler.
* Merge topic 'FindCUDA.cmake/SeparableCompilation'Brad King2013-03-181-13/+28
|\ | | | | | | | | b6e9b8f FindCUDA: Use the PRE_LINK mode only for MSVC >= 10
| * FindCUDA: Use the PRE_LINK mode only for MSVC >= 10James Bigler2013-03-141-13/+28
| | | | | | | | | | | | Use normal custom command dependencies by default. Use the PRE_LINK approach only to work around what seems to be a bug in msbuild handling of custom build rules that chain together.
* | Merge topic 'FindCUDA.cmake/AddCUDA_cupti_LIBRARY'Brad King2013-03-121-7/+26
|\ \ | | | | | | | | | | | | c939b49 FindCUDA: Added cupti library.
| * | FindCUDA: Added cupti library.James Bigler2013-03-121-7/+26
| | | | | | | | | | | | | | | | | | | | | In addition to adding the cupti library, find_local_library_first has been renamed to cuda_find_local_library_first with a backward compatibility macro to find_local_library_first. Also added cuda_find_local_library_first_with_path_ext to handle different paths.
* | | Merge topic 'FindCUDA.cmake/SeparableCompilation'Brad King2013-03-121-1/+150
|\ \ \ | | |/ | |/| | | | | | | 6a19150 FindCUDA: Add support for separable compilation
| * | FindCUDA: Add support for separable compilationJames Bigler2013-03-121-1/+150
| |/ | | | | | | | | | | | | | | | | | | | | | | This adds a new variable, CUDA_SEPARABLE_COMPILATION, and two new functions, CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME and CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS. When CUDA_SEPARABLE_COMPILATION is specified then CUDA runtime objects will be compiled with the separable compilation flag. These object files are collected in a target named variable that can be used in CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME and CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS.
* | FindCUDA: Remove linkage against CUDA driver library (#13084)James Bigler2013-03-121-5/+0
|/ | | | | The CUDA runtime library (libcudart) doesn't depend on the driver API library (libcuda) and shouldn't be used to link CUDA run time codes.
* Merge topic 'topics/FindCUDA/Add-CUDA_HOST_COMPILER'David Cole2012-09-181-5/+17
|\ | | | | | | | | db207e4 FindCUDA: Added CUDA_HOST_COMPILER variable.
| * FindCUDA: Added CUDA_HOST_COMPILER variable.James Bigler2012-08-201-5/+17
| | | | | | | | | | | | | | | | | | Added a new CUDA variable for specifying the CUDA_HOST_COMPILER. This will allow users to be able to specify which host compiler to use for invoking NVCC with. By default it will use the compiler used for host compilation. This is convenient for when you want to specify a different compiler than the default compiler. You end up using the same compiler for both the NVCC compilation and the host compilation instead of using the default compiler in the path for NVCC.
* | Merge topic 'topics/FindCUDA/Add-CUDA_SOURCE_PROPERTY_FORMAT'David Cole2012-08-241-19/+29
|\ \ | | | | | | | | | | | | 787287c Added CUDA_SOURCE_PROPERTY_FORMAT. Allows setting per file format (OBJ or PTX)
| * | Added CUDA_SOURCE_PROPERTY_FORMAT. Allows setting per file format (OBJ or PTX)James Bigler2012-08-201-19/+29
| | | | | | | | | | | | | | | Added CUDA_SOURCE_PROPERTY_FORMAT that allows users to set the format (OBJ or PTX) on a per file basis.
* | | Merge topic 'topics/FindCUDA/Fix-g3-again'David Cole2012-08-241-1/+11
|\ \ \ | |/ / |/| | | | | | | | a20c41d Replace -g3 with -g for CUDA 4.1 and 4.2 in addition to CUDA < 3.0.
| * | Replace -g3 with -g for CUDA 4.1 and 4.2 in addition to CUDA < 3.0.James Bigler2012-06-191-1/+11
| |/ | | | | | | | | CUDA 4.1 reintroduced the bug where -g3 breaks compilation. This wasn't fixed until CUDA 5.0, so both CUDA 4.1 and 4.2 have this bug.
* | use the find_* functions ENV parameterRolf Eike Beer2012-08-141-1/+3
| | | | | | | | | | | | | | | | | | Instead of directly passing $ENV{SOMEVAR} to a find_* call pass in ENV SOMEVAR. This will make sure the paths will get correctly handled through different platforms, especially on Windows. Also fixes one place where paths with windows delimiters (\) were hardcoded to use forward slashes.
* | Remove CMake-language block-end command argumentsKitware Robot2012-08-131-33/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* | Convert CMake-language commands to lower caseKitware Robot2012-08-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed