Skip to content

Commit 650fd6d

Browse files
committed
cmake: Move c++ compiler flag detection & setting into a function
1 parent 8f77c78 commit 650fd6d

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

CMakeLists.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,18 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
150150
endif()
151151

152152
include(CheckCXXCompilerFlag)
153+
function(CxxAppendCompilerFlag flagstr)
154+
string(TOUPPER "${flagstr}" auto_flag_var)
155+
string(REGEX REPLACE "[^A-Z0-9]" "_" auto_flag_var "${auto_flag_var}")
156+
check_cxx_compiler_flag("${flagstr}" CXX_${auto_flag_var})
157+
if(CXX_${auto_flag_var})
158+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flagstr}" PARENT_SCOPE)
159+
endif()
160+
endfunction()
153161

154162
# Set default symbol visibility to 'hidden'
155163
if(JSONCPP_VISIBILITY_HIDDEN)
156-
check_cxx_compiler_flag("-fvisibility=hidden" VISIBILITY_HIDDEN_SUPPORTED)
157-
if (VISIBILITY_HIDDEN_SUPPORTED)
158-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
159-
endif()
164+
CxxAppendCompilerFlag("-fvisibility=hidden")
160165
endif()
161166

162167
find_program(CCACHE_FOUND ccache)

0 commit comments

Comments
 (0)