Fix: Conditional use of override directives

-Wsuggest-override and -Winconsistent-missing-override support
depends on compiler version

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-12-29 14:37:42 +00:00
commit 989200f584

View file

@ -273,10 +273,16 @@ SUBDIRS_TO_ITERATE = $(filter-out $(IGNORE_SUBDIRS),$(SUBDIRS))
# compiler and linker
# gcc
GCC_VERSION = $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ print $$3;}')
GCC_MAJOR = $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[1];}')
GCC_MINOR = $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[2];}')
GCC_REV = $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[3];}')
GCC_VERSION := $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ print $$3;}')
GCC_MAJOR := $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[1];}')
GCC_MINOR := $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[2];}')
GCC_REV := $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[3];}')
LD_VERSION := $(shell ld -V | $(SED) '/GNU ld/ !d; s/(.*)//; s/[^0-9.-]*//')
LD_MAJOR := $(shell echo $(LD_VERSION) | cut -d. -f1)
LD_MINOR := $(shell echo $(LD_VERSION) | cut -d. -f2)
LD_REV := $(shell echo $(LD_VERSION) | cut -d. -f3)
UPDATE_REPO_SH := /opt/packager-server/bin/packager-server schedule-rebuild
# clang
CLANG_CPPFLAGS += -Wno-unused-private-field -Wno-self-assign-field -Wno-overloaded-virtual
@ -289,11 +295,15 @@ BUILD_CPPFLAGS += -std=c++11
endif
endif
LD_VERSION = $(shell ld -V | $(SED) '/GNU ld/ !d; s/(.*)//; s/[^0-9.-]*//')
LD_MAJOR = $(shell echo $(LD_VERSION) | cut -d. -f1)
LD_MINOR = $(shell echo $(LD_VERSION) | cut -d. -f2)
LD_REV = $(shell echo $(LD_VERSION) | cut -d. -f3)
UPDATE_REPO_SH = /opt/packager-server/bin/packager-server schedule-rebuild
ifeq ($(shell test $(GCC_MAJOR) -ge 5; echo $$?),0)
ifeq ($(USE_CPP_FORCE_OVERRIDE),true)
GCC_CPPFLAGS += -Werror=suggest-override
endif
endif
ifeq ($(USE_CPP_WARN_INCONSISTENT_OVERRIDE),true)
CLANG_CPPFLAGS += -Winconsistent-missing-override
endif
# -- target files and dirs