Skip to content

Commit 899c5c3

Browse files
committed
smarter MY_CHECK_AND_SET_COMPILER_FLAG
If a flag is supported only for C or C++ - add it to the corresponding compiler option list. Old behavior was to add always to both, but only if supported in both.
1 parent 87b46dc commit 899c5c3

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

cmake/check_compiler_flag.cmake

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,16 @@ FUNCTION(MY_CHECK_AND_SET_COMPILER_FLAG flag)
3737
ENDIF()
3838
MY_CHECK_C_COMPILER_FLAG(${flag} HAVE_C_${flag})
3939
MY_CHECK_CXX_COMPILER_FLAG(${flag} HAVE_CXX_${flag})
40-
IF (HAVE_C_${flag} AND HAVE_CXX_${flag})
41-
IF(ARGN)
42-
FOREACH(type ${ARGN})
43-
SET(CMAKE_C_FLAGS_${type} "${CMAKE_C_FLAGS_${type}} ${flag}" PARENT_SCOPE)
44-
SET(CMAKE_CXX_FLAGS_${type} "${CMAKE_CXX_FLAGS_${type}} ${flag}" PARENT_SCOPE)
45-
ENDFOREACH()
46-
ELSE()
47-
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}" PARENT_SCOPE)
48-
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" PARENT_SCOPE)
40+
FOREACH(lang C CXX)
41+
IF (HAVE_${lang}_${flag})
42+
IF(ARGN)
43+
FOREACH(type ${ARGN})
44+
SET(CMAKE_${lang}_FLAGS_${type} "${CMAKE_${lang}_FLAGS_${type}} ${flag}" PARENT_SCOPE)
45+
ENDFOREACH()
46+
ELSE()
47+
SET(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} ${flag}" PARENT_SCOPE)
48+
ENDIF()
4949
ENDIF()
50-
ENDIF()
50+
ENDFOREACH()
5151
ENDFUNCTION()
5252

0 commit comments

Comments
 (0)