mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 19:00:54 -06:00
CUDA: NVCC support for COMPILE_WARNING_AS_ERROR target property
This commit is contained in:
committed by
Brad King
parent
2e9ac1d272
commit
cd324110d2
@@ -29,6 +29,11 @@ if(CMAKE_CUDA_HOST_COMPILER AND NOT CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
string(APPEND _CMAKE_CUDA_EXTRA_FLAGS " -ccbin=<CMAKE_CUDA_HOST_COMPILER>")
|
||||
endif()
|
||||
|
||||
if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 10.2.89)
|
||||
# Starting in 10.2, nvcc supported treating all warnings as errors
|
||||
set(CMAKE_CUDA_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror all-warnings")
|
||||
endif()
|
||||
|
||||
if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 10.2.89)
|
||||
# The -MD flag was only added to nvcc in 10.2 so
|
||||
# before that we had to invoke the compiler twice
|
||||
|
||||
@@ -372,7 +372,8 @@ add_RunCMake_test(TargetProperties)
|
||||
add_RunCMake_test(ToolchainFile)
|
||||
add_RunCMake_test(find_dependency)
|
||||
add_RunCMake_test(CompileDefinitions)
|
||||
add_RunCMake_test(CompileWarningAsError)
|
||||
add_RunCMake_test(CompileWarningAsError -DCMake_TEST_CUDA=${CMake_TEST_CUDA})
|
||||
set_property(TEST RunCMake.CompileWarningAsError APPEND PROPERTY LABELS "CUDA")
|
||||
add_RunCMake_test(CompileFeatures -DCMake_NO_C_STANDARD=${CMake_NO_C_STANDARD} -DCMake_NO_CXX_STANDARD=${CMake_NO_CXX_STANDARD})
|
||||
add_RunCMake_test(Policy)
|
||||
add_RunCMake_test(PolicyScope)
|
||||
|
||||
@@ -10,6 +10,10 @@ endfunction()
|
||||
|
||||
set(langs C CXX)
|
||||
set(exts c cxx)
|
||||
if(CMake_TEST_CUDA)
|
||||
list(APPEND langs CUDA)
|
||||
list(APPEND exts cu)
|
||||
endif()
|
||||
|
||||
foreach(lang ext IN ZIP_LISTS langs exts)
|
||||
run_compile_warn(WerrorOn ${lang} ${ext})
|
||||
|
||||
@@ -6,6 +6,13 @@ macro(get_warning_options warning_options lang)
|
||||
elseif (CMAKE_${lang}_COMPILER_ID STREQUAL "MSVC"
|
||||
OR (CMAKE_${lang}_COMPILER_ID STREQUAL "Intel" AND CMAKE_${lang}_SIMULATE_ID MATCHES "MSVC"))
|
||||
set(${warning_options} "-W4")
|
||||
elseif (CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA"
|
||||
AND CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 10.2.89)
|
||||
if(CMAKE_${lang}_SIMULATE_ID MATCHES "MSVC")
|
||||
set(${warning_options} "-Xcompiler=-W4")
|
||||
else()
|
||||
set(${warning_options} "-Xcompiler=-Wall")
|
||||
endif()
|
||||
elseif (CMAKE_${lang}_COMPILER_ID STREQUAL "Intel")
|
||||
set(${warning_options} "-w3")
|
||||
elseif (CMAKE_${lang}_COMPILER_ID STREQUAL "XL")
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
include(WerrorOff.cmake)
|
||||
@@ -0,0 +1 @@
|
||||
include(WerrorOnIgnore.cmake)
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
1
Tests/RunCMake/CompileWarningAsError/WerrorOn_CUDA.cmake
Normal file
1
Tests/RunCMake/CompileWarningAsError/WerrorOn_CUDA.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(WerrorOn.cmake)
|
||||
0
Tests/RunCMake/CompileWarningAsError/err.cu
Normal file
0
Tests/RunCMake/CompileWarningAsError/err.cu
Normal file
1
Tests/RunCMake/CompileWarningAsError/warn.cu
Normal file
1
Tests/RunCMake/CompileWarningAsError/warn.cu
Normal file
@@ -0,0 +1 @@
|
||||
#include "warn.c"
|
||||
Reference in New Issue
Block a user