From fe37b99473df00b69beede10ad4ed2472c375d4d Mon Sep 17 00:00:00 2001 From: Robert Maynard Date: Tue, 26 Sep 2017 09:25:35 -0400 Subject: CUDA: Add support for requesting C++98 under CUDA 9 Starting in CUDA 9 the default compilation mode is C++14, and you need to explicitly enable C++98/03 mode. While at it, document `14` among the values for `CUDA_STANDARD`. This was accidentally left out of commit v3.9.0-rc1~118^2 (CUDA: Add support for the C++14 standard flag, 2017-05-11). --- Help/prop_tgt/CUDA_STANDARD.rst | 2 +- Modules/Compiler/NVIDIA-CUDA.cmake | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Help/prop_tgt/CUDA_STANDARD.rst b/Help/prop_tgt/CUDA_STANDARD.rst index b262814..a3a2f56 100644 --- a/Help/prop_tgt/CUDA_STANDARD.rst +++ b/Help/prop_tgt/CUDA_STANDARD.rst @@ -7,7 +7,7 @@ This property specifies the CUDA/C++ standard whose features are requested to build this target. For some compilers, this results in adding a flag such as ``-std=gnu++11`` to the compile line. -Supported values are ``98``, ``11``. +Supported values are ``98``, ``11``, ``14``. If the value requested does not result in a compile flag being added for the compiler in use, a previous standard flag will be added instead. This diff --git a/Modules/Compiler/NVIDIA-CUDA.cmake b/Modules/Compiler/NVIDIA-CUDA.cmake index 785e269..1c91654 100644 --- a/Modules/Compiler/NVIDIA-CUDA.cmake +++ b/Modules/Compiler/NVIDIA-CUDA.cmake @@ -26,6 +26,8 @@ else() set(CMAKE_CUDA11_EXTENSION_COMPILE_OPTION "-std=c++11") if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 9.0) + set(CMAKE_CUDA98_STANDARD_COMPILE_OPTION "-std=c++03") + set(CMAKE_CUDA98_EXTENSION_COMPILE_OPTION "-std=c++03") set(CMAKE_CUDA14_STANDARD_COMPILE_OPTION "-std=c++14") set(CMAKE_CUDA14_EXTENSION_COMPILE_OPTION "-std=c++14") endif() -- cgit v0.12