MDEV-9943 - TokuDB fails to compile with gcc 5.2.1
For some reason check_cxx_compiler_flag() passes result variable name down to compiler: https://github.com/Kitware/CMake/blob/master/Modules/CheckCXXSourceCompiles.cmake#L57 But compiler doesn't permit dashes in macro name, like in -DHAVE_CXX_-fimplicit-templates. Workarounded by renaming HAVE_CXX_-fimplicit-templates to HAVE_CXX_IMPLICIT_TEMPLAES.
This commit is contained in:
parent
62122ba5d5
commit
0c0a865fad
@ -61,12 +61,13 @@ endmacro(set_cflags_if_supported_named)
|
||||
## adds a compiler flag if the compiler supports it
|
||||
macro(set_cflags_if_supported)
|
||||
foreach(flag ${ARGN})
|
||||
check_c_compiler_flag(${flag} HAVE_C_${flag})
|
||||
if (HAVE_C_${flag})
|
||||
STRING(REGEX REPLACE "[-,= ]" "_" res ${flag})
|
||||
check_c_compiler_flag(${flag} HAVE_C_${res})
|
||||
if (HAVE_C_${res})
|
||||
set(CMAKE_C_FLAGS "${flag} ${CMAKE_C_FLAGS}")
|
||||
endif ()
|
||||
check_cxx_compiler_flag(${flag} HAVE_CXX_${flag})
|
||||
if (HAVE_CXX_${flag})
|
||||
check_cxx_compiler_flag(${flag} HAVE_CXX_${res})
|
||||
if (HAVE_CXX_${res})
|
||||
set(CMAKE_CXX_FLAGS "${flag} ${CMAKE_CXX_FLAGS}")
|
||||
endif ()
|
||||
endforeach(flag)
|
||||
@ -75,8 +76,9 @@ endmacro(set_cflags_if_supported)
|
||||
## adds a linker flag if the compiler supports it
|
||||
macro(set_ldflags_if_supported)
|
||||
foreach(flag ${ARGN})
|
||||
check_cxx_compiler_flag(${flag} HAVE_${flag})
|
||||
if (HAVE_${flag})
|
||||
STRING(REGEX REPLACE "[-,= ]" "_" res ${flag})
|
||||
check_cxx_compiler_flag(${flag} HAVE_${res})
|
||||
if (HAVE_${res})
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${flag} ${CMAKE_EXE_LINKER_FLAGS}")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${flag} ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
endif ()
|
||||
@ -103,8 +105,8 @@ set_cflags_if_supported(
|
||||
|
||||
if (CMAKE_CXX_FLAGS MATCHES -fno-implicit-templates)
|
||||
# must append this because mysql sets -fno-implicit-templates and we need to override it
|
||||
check_cxx_compiler_flag(-fimplicit-templates HAVE_CXX_-fimplicit-templates)
|
||||
if (HAVE_CXX_-fimplicit-templates)
|
||||
check_cxx_compiler_flag(-fimplicit-templates HAVE_CXX_IMPLICIT_TEMPLATES)
|
||||
if (HAVE_CXX_IMPLICIT_TEMPLATES)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fimplicit-templates")
|
||||
endif ()
|
||||
endif()
|
||||
|
Loading…
x
Reference in New Issue
Block a user