CUDA_STANDARD.rst 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. CUDA_STANDARD
  2. -------------
  3. .. versionadded:: 3.8
  4. The CUDA/C++ standard whose features are requested to build this target.
  5. This property specifies the CUDA/C++ standard whose features are requested
  6. to build this target. For some compilers, this results in adding a
  7. flag such as ``-std=gnu++11`` to the compile line.
  8. Supported values are:
  9. ``98``
  10. CUDA C++98
  11. ``11``
  12. CUDA C++11
  13. ``14``
  14. CUDA C++14
  15. ``17``
  16. CUDA C++17
  17. ``20``
  18. .. versionadded:: 3.12
  19. CUDA C++20
  20. ``23``
  21. .. versionadded:: 3.20
  22. CUDA C++23
  23. If the value requested does not result in a compile flag being added for
  24. the compiler in use, a previous standard flag will be added instead. This
  25. means that using:
  26. .. code-block:: cmake
  27. set_property(TARGET tgt PROPERTY CUDA_STANDARD 11)
  28. with a compiler which does not support ``-std=gnu++11`` or an equivalent
  29. flag will not result in an error or warning, but will instead add the
  30. ``-std=gnu++98`` flag if supported. This "decay" behavior may be controlled
  31. with the :prop_tgt:`CUDA_STANDARD_REQUIRED` target property.
  32. Additionally, the :prop_tgt:`CUDA_EXTENSIONS` target property may be used to
  33. control whether compiler-specific extensions are enabled on a per-target basis.
  34. See the :manual:`cmake-compile-features(7)` manual for information on
  35. compile features and a list of supported compilers.
  36. This property is initialized by the value of
  37. the :variable:`CMAKE_CUDA_STANDARD` variable if it is set when a target
  38. is created.