build: Fix trailing semicolon check for GCC pedantic warnings
This commit is contained in:
@@ -54,9 +54,25 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||
"GNU ${CMAKE_CXX_COMPILER_VERSION} ${below_minimum_msg} ${GNU_MinVersion}"
|
||||
)
|
||||
endif()
|
||||
if((CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10.0.0"))
|
||||
set(GCC_PEDANTIC_SEMICOLON TRUE)
|
||||
|
||||
# Check if pedantic throws warning in trailing semicolon after {} scope
|
||||
# (frequently used to make macros look like functions)
|
||||
include(CheckCXXSourceCompiles)
|
||||
set(CMAKE_REQUIRED_FLAGS "-Wall -Wpedantic -Werror")
|
||||
check_cxx_source_compiles(
|
||||
"
|
||||
int test(){ return 0; };
|
||||
int main(){
|
||||
return test();
|
||||
}
|
||||
"
|
||||
GCC_WORKING_PEDANTIC_SEMICOLON
|
||||
)
|
||||
unset(CMAKE_REQUIRED_FLAGS)
|
||||
if("${GCC_WORKING_PEDANTIC_SEMICOLON}" STREQUAL "")
|
||||
set(GCC_WORKING_PEDANTIC_SEMICOLON 0)
|
||||
endif()
|
||||
|
||||
if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12.2.0"))
|
||||
# PCH causes weird errors on certain versions of GCC when C++20 is enabled
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106799
|
||||
|
||||
@@ -221,9 +221,7 @@ macro(process_options)
|
||||
endif()
|
||||
else()
|
||||
add_compile_options(-Wall) # -Wextra
|
||||
# Pedantic checks in GCC < 10 include extra semicolon, which we use a lot
|
||||
# to make macros look like function calls
|
||||
if(NOT (DEFINED GCC_PEDANTIC_SEMICOLON))
|
||||
if(${GCC_WORKING_PEDANTIC_SEMICOLON})
|
||||
add_compile_options(-Wpedantic)
|
||||
endif()
|
||||
if(${NS3_WARNINGS_AS_ERRORS})
|
||||
|
||||
Reference in New Issue
Block a user