| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
99abebde FindCUDA: Handle c++11 host flag
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Mark variables pertaining to specific situations relevant to CUDA
compilation as advanced since they are not part of normal usage.
|
| |
|
|\
| |
| |
| |
| | |
b4e54f9b FindCUDA: Add relevant CMAKE_{C,CXX}_FLAGS for separable compilation
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |\
| | |
| | |
| | |
| | | |
Resolve conflict in Modules/ExternalProject.cmake by keeping our side,
which is more completely revised.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|\ \ \
| |/ /
|/| /
| |/ |
|
| |
| |
| |
| | |
Help format the blocks better for display without a wide screen.
|
|/
|
|
|
| |
Otherwise binaries end up with two copies of the same value and the OS X
install_name_tool may corrupt them.
|
|
|
|
| |
This silences possible CMP0054 warnings.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| |
| | |
6ad14c71 FindCUDA: Use CUDA_NVCC_FLAGS* for separable compilation
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
All these expressions work the same:
"foo"
".*foo.*"
"^.*foo.*$"
This assumes that the "Intel*" expressions were meant to be "Intel.*".
|
|/ |
|
|
|
|
| |
Fix locations of '::' manually to group literal blocks as desired.
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
Run the convert-help.bash script to convert documentation:
./convert-help.bash "/path/to/CMake-build/bin"
Then remove it.
|
|
|
|
| |
In CUDA 5.5 NPP was divided onto 3 separate libraries: nppc, npps, nppi.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
32b582d FindCUDA: Remove duplicate entries from INCLUDE_DIRECTORIES.
|
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
b6e9b8f FindCUDA: Use the PRE_LINK mode only for MSVC >= 10
|
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | |
| | | |
c939b49 FindCUDA: Added cupti library.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| | |/
| |/|
| | |
| | | |
6a19150 FindCUDA: Add support for separable compilation
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
db207e4 FindCUDA: Added CUDA_HOST_COMPILER variable.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | |
| | | |
787287c Added CUDA_SOURCE_PROPERTY_FORMAT. Allows setting per file format (OBJ or PTX)
|
| | |
| | |
| | |
| | |
| | | |
Added CUDA_SOURCE_PROPERTY_FORMAT that allows users to set the format (OBJ or PTX) on a
per file basis.
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
a20c41d Replace -g3 with -g for CUDA 4.1 and 4.2 in addition to CUDA < 3.0.
|
| |/
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|