diff options
author | Robert Maynard <robert.maynard@kitware.com> | 2016-08-26 20:59:36 (GMT) |
---|---|---|
committer | Robert Maynard <robert.maynard@kitware.com> | 2016-11-14 16:36:42 (GMT) |
commit | f8aac21947f43a0e886a3cc3655514abb95bb260 (patch) | |
tree | a257ad0211362ab635e3b09922ec143eba1827a3 /Modules/CMakeCUDACompilerId.cu.in | |
parent | 4a4be0301bd9c6062738e87892cbe5bd8d900a49 (diff) | |
download | CMake-f8aac21947f43a0e886a3cc3655514abb95bb260.zip CMake-f8aac21947f43a0e886a3cc3655514abb95bb260.tar.gz CMake-f8aac21947f43a0e886a3cc3655514abb95bb260.tar.bz2 |
CUDA: Add basic CUDA language support for *NIX systems.
Diffstat (limited to 'Modules/CMakeCUDACompilerId.cu.in')
-rw-r--r-- | Modules/CMakeCUDACompilerId.cu.in | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Modules/CMakeCUDACompilerId.cu.in b/Modules/CMakeCUDACompilerId.cu.in new file mode 100644 index 0000000..ddbc8b4 --- /dev/null +++ b/Modules/CMakeCUDACompilerId.cu.in @@ -0,0 +1,40 @@ + +#ifndef __cplusplus +# error "A C compiler has been selected for CUDA/C++." +#endif + +@CMAKE_CUDA_COMPILER_ID_CONTENT@ + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; + +@CMAKE_CUDA_COMPILER_ID_PLATFORM_CONTENT@ +@CMAKE_CUDA_COMPILER_ID_ERROR_FOR_TEST@ + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if __cplusplus >= 201402L + "14" +#elif __cplusplus >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} |