https://github.com/geometryprocessing/voroffset
Tip revision: ce7b61f6469975795455bd85fcf23e23ff1ba102 authored by Jérémie Dumas on 17 January 2024, 15:28:36 UTC
Update README.md
Update README.md
Tip revision: ce7b61f
SetWarnings.cmake
################################################################################
cmake_minimum_required(VERSION 2.6.3)
################################################################################
# See comments and discussions here:
# http://stackoverflow.com/questions/5088460/flags-to-enable-thorough-and-verbose-g-warnings
################################################################################
set(MY_FLAGS
-Wall
-Wextra
-pedantic
# -Wconversion
#-Wunsafe-loop-optimizations # broken with C++11 loops
-Wunused
-Wno-long-long
-Wpointer-arith
-Wformat=2
-Wuninitialized
-Wcast-qual
-Wmissing-noreturn
-Wmissing-format-attribute
-Wredundant-decls
-Werror=implicit
-Werror=nonnull
-Werror=init-self
-Werror=main
-Werror=missing-braces
-Werror=sequence-point
-Werror=return-type
-Werror=trigraphs
-Werror=array-bounds
-Werror=write-strings
-Werror=address
-Werror=int-to-pointer-cast
-Werror=pointer-to-int-cast
-Wno-unused-variable
-Wunused-but-set-variable
-Wno-unused-parameter
#-Weffc++
-Wno-old-style-cast
-Wno-sign-conversion
#-Wsign-conversion
-Wno-sign-compare
-Wshadow
-Wstrict-null-sentinel
-Woverloaded-virtual
-Wsign-promo
-Wstack-protector
-Wstrict-aliasing
-Wstrict-aliasing=2
-Wswitch-default
-Wswitch-enum
-Wswitch-unreachable
-Wcast-align
-Wdisabled-optimization
#-Winline # produces warning on default implicit destructor
-Winvalid-pch
-Wmissing-include-dirs
-Wpacked
-Wno-padded
# -Wstrict-overflow
# -Wstrict-overflow=2
-Wctor-dtor-privacy
-Wlogical-op
-Wnoexcept
-Woverloaded-virtual
-Wundef
-Wnon-virtual-dtor
-Wdelete-non-virtual-dtor
###########
# GCC 6.1 #
###########
-Wnull-dereference
-fdelete-null-pointer-checks
-Wduplicated-cond
-Wmisleading-indentation
#-Weverything
###########################
# Enabled by -Weverything #
###########################
#-Wdocumentation
#-Wdocumentation-unknown-command
#-Wfloat-equal
#-Wcovered-switch-default
#-Wglobal-constructors
#-Wexit-time-destructors
#-Wmissing-variable-declarations
#-Wextra-semi
#-Wweak-vtables
#-Wno-source-uses-openmp
#-Wdeprecated
#-Wnewline-eof
#-Wmissing-prototypes
#-Wno-c++98-compat
#-Wno-c++98-compat-pedantic
###########################
# Need to check if those are still valid today
###########################
#-Wimplicit-atomic-properties
#-Wmissing-declarations
#-Wmissing-prototypes
#-Wstrict-selector-match
#-Wundeclared-selector
#-Wunreachable-code
# Not a warning, but enable link-time-optimization
#-flto
# Gives meaningful stack traces
-fno-omit-frame-pointer
)
# Flags above don't make sense for MSVC
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC")
set(MY_FLAGS)
endif()
include(CheckCXXCompilerFlag)
set(ALL_WARNINGS)
foreach(FLAG ${MY_FLAGS})
check_cxx_compiler_flag("${FLAG}" IS_SUPPORTED_${FLAG})
if(IS_SUPPORTED_${FLAG})
set(ALL_WARNINGS ${ALL_WARNINGS} ${FLAG})
endif()
endforeach()