mirror of
https://github.com/eclipse/upm.git
synced 2025-03-15 13:07:40 +03:00
cmake: Added return/clear variable to function
Made sure output_variable gets cleared for case where target compiler is not supported. Signed-off-by: Noel Eck <noel.eck@intel.com>
This commit is contained in:
parent
e21e05a039
commit
585f2eb331
@ -30,35 +30,37 @@ set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_
|
|||||||
# The result of output_variable is set to the sanitized flag name if supported
|
# The result of output_variable is set to the sanitized flag name if supported
|
||||||
# or cleared if the flag is not supported.
|
# or cleared if the flag is not supported.
|
||||||
function (compiler_flag_supported compiler output_variable flag)
|
function (compiler_flag_supported compiler output_variable flag)
|
||||||
# Currently only C and CXX compile flags
|
# Currently only C and CXX compile flags, clear and return if not supported
|
||||||
if (NOT ${compiler} MATCHES "C|CXX")
|
if (NOT ${compiler} MATCHES "C|CXX")
|
||||||
message (WARNING "Unknown compiler: ${compiler}")
|
message (WARNING "Unknown compiler: ${compiler}")
|
||||||
|
set ("${output_variable}" "" PARENT_SCOPE)
|
||||||
|
return ()
|
||||||
|
endif (NOT ${compiler} MATCHES "C|CXX")
|
||||||
|
|
||||||
|
string (REPLACE "-" "_" SANITIZED_FLAG_NAME "${flag}")
|
||||||
|
string (REPLACE "/" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
||||||
|
string (REPLACE "=" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
||||||
|
string (REPLACE " " "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
||||||
|
|
||||||
|
# Disable messages from CHECK_C/XX_COMPILER_FLAGS macros
|
||||||
|
set (CMAKE_REQUIRED_QUIET_SAVED ${CMAKE_REQUIRED_QUIET})
|
||||||
|
set (CMAKE_REQUIRED_QUIET ON)
|
||||||
|
|
||||||
|
# C or CXX?
|
||||||
|
if (${compiler} STREQUAL C)
|
||||||
|
CHECK_C_COMPILER_FLAG("${flag}" HAS_${SANITIZED_FLAG_NAME})
|
||||||
|
elseif (${compiler} STREQUAL CXX)
|
||||||
|
CHECK_CXX_COMPILER_FLAG("${flag}" HAS_${SANITIZED_FLAG_NAME})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# Restore previous CMAKE_REQUIRED_QUIET state
|
||||||
|
set (CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET_SAVED})
|
||||||
|
|
||||||
|
# Does the compiler support this flag?
|
||||||
|
if (HAS_${SANITIZED_FLAG_NAME})
|
||||||
|
set ("${output_variable}" "${SANITIZED_FLAG_NAME}" PARENT_SCOPE)
|
||||||
else ()
|
else ()
|
||||||
string (REPLACE "-" "_" SANITIZED_FLAG_NAME "${flag}")
|
set ("${output_variable}" "" PARENT_SCOPE)
|
||||||
string (REPLACE "/" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
|
||||||
string (REPLACE "=" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
|
||||||
string (REPLACE " " "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
|
||||||
|
|
||||||
# Disable messages from CHECK_C/XX_COMPILER_FLAGS macros
|
|
||||||
set (CMAKE_REQUIRED_QUIET_SAVED ${CMAKE_REQUIRED_QUIET})
|
|
||||||
set (CMAKE_REQUIRED_QUIET ON)
|
|
||||||
|
|
||||||
# C or CXX?
|
|
||||||
if (${compiler} STREQUAL C)
|
|
||||||
CHECK_C_COMPILER_FLAG("${flag}" HAS_${SANITIZED_FLAG_NAME})
|
|
||||||
elseif (${compiler} STREQUAL CXX)
|
|
||||||
CHECK_CXX_COMPILER_FLAG("${flag}" HAS_${SANITIZED_FLAG_NAME})
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# Restore previous CMAKE_REQUIRED_QUIET state
|
|
||||||
set (CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET_SAVED})
|
|
||||||
|
|
||||||
# Does the compiler support this flag?
|
|
||||||
if (HAS_${SANITIZED_FLAG_NAME})
|
|
||||||
set ("${output_variable}" "${SANITIZED_FLAG_NAME}" PARENT_SCOPE)
|
|
||||||
else ()
|
|
||||||
set ("${output_variable}" "" PARENT_SCOPE)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
endfunction ()
|
endfunction ()
|
||||||
|
|
||||||
@ -85,8 +87,6 @@ function (upm_add_compile_flags compiler)
|
|||||||
set (CMAKE_${compiler}_FLAGS ${_TMP_COMPILER_FLAGS} PARENT_SCOPE)
|
set (CMAKE_${compiler}_FLAGS ${_TMP_COMPILER_FLAGS} PARENT_SCOPE)
|
||||||
endfunction ()
|
endfunction ()
|
||||||
|
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
||||||
|
|
||||||
# Compiler flags common to both C and CXX
|
# Compiler flags common to both C and CXX
|
||||||
set (C_CXX_WARNING_FLAGS -Wall)
|
set (C_CXX_WARNING_FLAGS -Wall)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user