Skip to content

Commit aa1cc42

Browse files
committed
issue #10649 Building failure: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Fixing the problems when using a `< 2.6.0` version of flex that still issues the word `register`
1 parent 39744a6 commit aa1cc42

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

CMakeLists.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,21 @@ endif()
107107
# produce compile_commands.json
108108
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
109109

110+
if (FLEX_VERSION VERSION_LESS 2.6.0)
111+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dregister=")
112+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Dregister=")
113+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Dregister=")
114+
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Dregister=")
115+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -Dregister=")
116+
if (MSVC)
117+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_ALLOW_KEYWORD_MACROS=")
118+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_ALLOW_KEYWORD_MACROS=")
119+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D_ALLOW_KEYWORD_MACROS=")
120+
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -D_ALLOW_KEYWORD_MACROS=")
121+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -D_ALLOW_KEYWORD_MACROS=")
122+
endif()
123+
endif()
124+
110125
if (CMAKE_SYSTEM MATCHES "Darwin")
111126
set(CMAKE_OSX_DEPLOYMENT_TARGET "${MACOS_VERSION_MIN}" CACHE STRING "Minimum OS X deployment version" FORCE)
112127
set(CMAKE_CXX_FLAGS "-Wno-deprecated-register -mmacosx-version-min=${MACOS_VERSION_MIN} ${CMAKE_CXX_FLAGS}")

0 commit comments

Comments
 (0)