| # add compile options to warning_options to ensure unused-function throws a warning |
| # if warning_options is NOT DEFINED, assume compiler doesn't support warning as error |
| macro(get_warning_options warning_options lang) |
| if (CMAKE_${lang}_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang|XLClang|IBMClang|LCC|IntelLLVM|NVHPC)$") |
| set(${warning_options} "-Wall") |
| 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") |
| set(${warning_options} "-qinfo=all") |
| elseif (CMAKE_${lang}_COMPILER_ID STREQUAL "SunPro") |
| if(lang STREQUAL CXX) |
| set(${warning_options} "+w;+w2") |
| else() |
| set(${warning_options} "") |
| endif() |
| elseif (CMAKE_${lang}_COMPILER_ID STREQUAL "Fujitsu") |
| set(${warning_options} "SHELL:-w 8") |
| endif() |
| endmacro() |