mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
refactor(build): graduate -Wvla, -fno-common and -Og "features"
These are in gcc 4.9+ which we require anyway. -Og is safe on clang as well (reserved for a future debug-optimize mode, and currently does the same as -O1 which is reasonable)
This commit is contained in:
parent
848dac0aaa
commit
2cffd04833
@ -120,16 +120,10 @@ if(CMAKE_C_FLAGS_RELEASE MATCHES "-O3")
|
|||||||
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
|
|
||||||
check_c_compiler_flag(-Og HAS_OG_FLAG)
|
|
||||||
else()
|
|
||||||
set(HAS_OG_FLAG 0)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#
|
|
||||||
# Build-type: RelWithDebInfo
|
# Build-type: RelWithDebInfo
|
||||||
#
|
|
||||||
if(HAS_OG_FLAG)
|
# /Og means something different in MSVC
|
||||||
|
if(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -Og -g")
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -Og -g")
|
||||||
endif()
|
endif()
|
||||||
# We _want_ assertions in RelWithDebInfo build-type.
|
# We _want_ assertions in RelWithDebInfo build-type.
|
||||||
|
@ -87,14 +87,14 @@ if(MSVC)
|
|||||||
target_sources(main_lib INTERFACE ${CMAKE_CURRENT_LIST_DIR}/os/nvim.manifest)
|
target_sources(main_lib INTERFACE ${CMAKE_CURRENT_LIST_DIR}/os/nvim.manifest)
|
||||||
else()
|
else()
|
||||||
target_compile_options(main_lib INTERFACE -Wall -Wextra -pedantic -Wno-unused-parameter
|
target_compile_options(main_lib INTERFACE -Wall -Wextra -pedantic -Wno-unused-parameter
|
||||||
-Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion
|
-Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wvla
|
||||||
-Wdouble-promotion
|
-Wdouble-promotion
|
||||||
-Wmissing-noreturn
|
-Wmissing-noreturn
|
||||||
-Wmissing-format-attribute
|
-Wmissing-format-attribute
|
||||||
-Wmissing-prototypes)
|
-Wmissing-prototypes)
|
||||||
|
|
||||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||||
target_compile_options(main_lib INTERFACE
|
target_compile_options(main_lib INTERFACE -fno-common
|
||||||
$<$<CONFIG:Release>:-Wno-unused-result>
|
$<$<CONFIG:Release>:-Wno-unused-result>
|
||||||
$<$<CONFIG:RelWithDebInfo>:-Wno-unused-result>
|
$<$<CONFIG:RelWithDebInfo>:-Wno-unused-result>
|
||||||
$<$<CONFIG:MinSizeRel>:-Wno-unused-result>)
|
$<$<CONFIG:MinSizeRel>:-Wno-unused-result>)
|
||||||
@ -144,17 +144,6 @@ if(WIN32)
|
|||||||
target_compile_definitions(main_lib INTERFACE _WIN32_WINNT=0x0602 MSWIN)
|
target_compile_definitions(main_lib INTERFACE _WIN32_WINNT=0x0602 MSWIN)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# OpenBSD's GCC (4.2.1) doesn't have -Wvla
|
|
||||||
check_c_compiler_flag(-Wvla HAS_WVLA_FLAG)
|
|
||||||
if(HAS_WVLA_FLAG)
|
|
||||||
target_compile_options(main_lib INTERFACE -Wvla)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
check_c_compiler_flag(-fno-common HAVE_FNO_COMMON)
|
|
||||||
if (HAVE_FNO_COMMON)
|
|
||||||
target_compile_options(main_lib INTERFACE -fno-common)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
check_c_compiler_flag(-fdiagnostics-color=auto HAS_DIAG_COLOR_FLAG)
|
check_c_compiler_flag(-fdiagnostics-color=auto HAS_DIAG_COLOR_FLAG)
|
||||||
if(HAS_DIAG_COLOR_FLAG)
|
if(HAS_DIAG_COLOR_FLAG)
|
||||||
if(CMAKE_GENERATOR MATCHES "Ninja")
|
if(CMAKE_GENERATOR MATCHES "Ninja")
|
||||||
|
Loading…
Reference in New Issue
Block a user