Not yet working:
Sync with autofoo: Check for accepted compiler flags. Use identical flags. svn path=/trunk/; revision=29891
This commit is contained in:
parent
56f0de4b66
commit
7d2d32a974
|
@ -73,7 +73,8 @@ option(BUILD_capinfos "Build capinfos" ON)
|
||||||
option(BUILD_randpkt "Build randpkt" ON)
|
option(BUILD_randpkt "Build randpkt" ON)
|
||||||
option(BUILD_dftest "Build dftest" ON)
|
option(BUILD_dftest "Build dftest" ON)
|
||||||
|
|
||||||
option(ENABLE_EXTRA_GCC_CHECKS "Do additional -W checks in GCC" OFF)
|
option(DISABLE_WERROR "Do not treat Warnings as errors" OFF)
|
||||||
|
option(ENABLE_EXTRA_GCC_CHECKS "Do additional -W checks in GCC (disables -Werror)" ON)
|
||||||
option(ENABLE_AIRPCAP "Enable Airpcap support" ON)
|
option(ENABLE_AIRPCAP "Enable Airpcap support" ON)
|
||||||
# todo
|
# todo
|
||||||
option(ENABLE_STATIC "Build a static version of Wireshark" OFF)
|
option(ENABLE_STATIC "Build a static version of Wireshark" OFF)
|
||||||
|
@ -95,9 +96,55 @@ option(ENABLE_CARES "Build with c_ares support" ON)
|
||||||
option(ENABLE_KERBEROS "Build with Kerberos support" ON)
|
option(ENABLE_KERBEROS "Build with Kerberos support" ON)
|
||||||
|
|
||||||
|
|
||||||
|
set(WIRESHARK_CC_FLAGS
|
||||||
|
# todo Workaround for problem described below
|
||||||
|
-doesntexist
|
||||||
|
-O2
|
||||||
|
-Werror
|
||||||
|
-Wall
|
||||||
|
-W
|
||||||
|
-Wextra
|
||||||
|
-Wdeclaration-after-statement
|
||||||
|
-Wendif-labels
|
||||||
|
-Wpointer-arith
|
||||||
|
-Wno-pointer-sign
|
||||||
|
-Warray-bounds
|
||||||
|
-Wcast-align
|
||||||
|
-Wformat-security
|
||||||
|
)
|
||||||
|
|
||||||
|
set(WIRESHARK_EXTRA_CC_FLAGS
|
||||||
|
-pedantic
|
||||||
|
-Woverflow
|
||||||
|
-Wlogical-op
|
||||||
|
-Wno-overlength-strings
|
||||||
|
-fstrict-overflow -Wstrict-overflow=4
|
||||||
|
-Wunreachable-code
|
||||||
|
-Wunsafe-loop-optimizations
|
||||||
|
-Wno-long-long
|
||||||
|
-Wbad-function-cast
|
||||||
|
-Wcast-qual
|
||||||
|
-Waddress
|
||||||
|
-Warray-bounds
|
||||||
|
-Wattributes
|
||||||
|
-Wdiv-by-zero
|
||||||
|
-Wformat-security
|
||||||
|
-Wignored-qualifiers
|
||||||
|
-Wpragmas
|
||||||
|
-Wredundant-decls
|
||||||
|
-Wvla
|
||||||
|
# packet-ncp2222.inc prevents this from going into all warnings
|
||||||
|
-Wwrite-strings
|
||||||
|
-Wstrict-prototypes
|
||||||
|
-Wmissing-declarations
|
||||||
|
# Problem with packet-afs.c
|
||||||
|
-Wshadow
|
||||||
|
# More cleanup needed for this on LP64
|
||||||
|
-Wshorten-64-to-32
|
||||||
|
)
|
||||||
|
|
||||||
if(ENABLE_EXTRA_GCC_CHECKS)
|
if(ENABLE_EXTRA_GCC_CHECKS)
|
||||||
set(WIRESHARK_EXTRA_GCC_FLAGS -Wcast-qual -Wcast-align -Wbad-function-cast
|
set(WIRESHARK_CC_FLAGS ${WIRESHARK_CC_FLAGS} ${WIRESHARK_EXTRA_CC_FLAGS})
|
||||||
-pedantic -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_definitions(
|
add_definitions(
|
||||||
|
@ -106,16 +153,34 @@ add_definitions(
|
||||||
-DNEW_PACKET_LIST
|
-DNEW_PACKET_LIST
|
||||||
)
|
)
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
# todo
|
||||||
add_definitions(
|
# This doesn't actually work because of some cache magic in
|
||||||
-D_U_=__attribute__\(\(unused\)\)
|
# CHECK_C_SOURCE_COMPILES
|
||||||
-Wall -Wpointer-arith -W
|
include(CheckCCompilerFlag)
|
||||||
${WIRESHARK_EXTRA_GCC_FLAGS}
|
foreach(WS_C_FLAG ${WIRESHARK_CC_FLAGS})
|
||||||
)
|
message(STATUS "Flag pre: ${WS_C_FLAG}")
|
||||||
else()
|
check_c_compiler_flag(${WS_C_FLAG} WS_C_FLAG_VALID)
|
||||||
add_definitions(-D_U_=\"\")
|
if (${WS_C_FLAG_VALID})
|
||||||
|
add_definitions(${WS_C_FLAG})
|
||||||
|
endif()
|
||||||
|
message(STATUS "Flag post ${WS_C_FLAG}: ${WS_C_FLAG_VALID}")
|
||||||
|
#set(WS_C_FLAG_VALID "" CACHE INTERNAL "Dummy" )
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(DISABLE_WERROR OR ENABLE_EXTRA_GCC_CHECKS)
|
||||||
|
remove_definitions( -Werror )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCC)
|
||||||
|
add_definitions( -D_U_=__attribute__\(\(unused\)\) )
|
||||||
|
else()
|
||||||
|
add_definitions( -D_U_=\"\" )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# todo
|
||||||
|
# Same for linker flags, but it looks like it's do-it-yourself here
|
||||||
|
# AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
|
||||||
|
|
||||||
#The minimum package list
|
#The minimum package list
|
||||||
set(PACKAGELIST GLIB2 PCAP M LEX YACC Perl SH PythonInterp HtmlViewer ${PACKAGELIST})
|
set(PACKAGELIST GLIB2 PCAP M LEX YACC Perl SH PythonInterp HtmlViewer ${PACKAGELIST})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue