Allow compatibility with old pgmspace API to be disabled by the user
When this compatibility mode is enabled, code that is entirely compliant with the new pgmspace API can still raise deprecation warnings when symbols present in both the old and new APIs (for example, PGM_P) are used. Clearly, these warnings are false positives. They can be avoided by disabling the compatibility mode. This functionality is achieved by prepending the flag that enables the compatibility mode to CPPFLAGS instead of appending it, thus allowing the user to override the default behaviour and disable the compatibility mode by putting the negation of the flag in the CPPFLAGS variable in their top-level Makefile.
This commit is contained in:
parent
74e1ef00fd
commit
b3c5127be2
2 changed files with 8 additions and 1 deletions
|
@ -1032,11 +1032,17 @@ else
|
|||
endif
|
||||
|
||||
# Using += instead of =, so that CPPFLAGS can be set per sketch level
|
||||
CPPFLAGS += -$(MCU_FLAG_NAME)=$(MCU) -DF_CPU=$(F_CPU) -DARDUINO=$(ARDUINO_VERSION) $(ARDUINO_ARCH_FLAG) -D__PROG_TYPES_COMPAT__ \
|
||||
CPPFLAGS += -$(MCU_FLAG_NAME)=$(MCU) -DF_CPU=$(F_CPU) -DARDUINO=$(ARDUINO_VERSION) $(ARDUINO_ARCH_FLAG) \
|
||||
-I$(ARDUINO_CORE_PATH) -I$(ARDUINO_VAR_PATH)/$(VARIANT) \
|
||||
$(SYS_INCLUDES) $(PLATFORM_INCLUDES) $(USER_INCLUDES) -Wall -ffunction-sections \
|
||||
-fdata-sections
|
||||
|
||||
# PROG_TYPES_COMPAT is enabled by default for compatibility with the Arduino IDE.
|
||||
# By placing it before the user-provided CPPFLAGS rather than after, we allow the
|
||||
# the user to disable it if they like, by adding the negation of the flag
|
||||
# (-U__PROG_TYPES_COMPAT__) to the user-provided CPPFLAGS.
|
||||
CPPFLAGS := -D__PROG_TYPES_COMPAT__ $(CPPFLAGS)
|
||||
|
||||
ifdef DEBUG
|
||||
OPTIMIZATION_FLAGS= $(DEBUG_FLAGS)
|
||||
else
|
||||
|
|
|
@ -18,6 +18,7 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it
|
|||
- New: Add generation of tags file using ctags, which automatically includes project libs and Arduino core. (https://github.com/tuna-f1sh)
|
||||
- New: Add template Makefile and project boilerplate initialise script, `ardmk-init`. (https://github.com/tuna-f1sh)
|
||||
- New: Support atmelice_isp JTAG tool as ISP programmer. (https://github.com/tuna-f1sh)
|
||||
- New: Compatibility with deprecated pgmspace.h API can now be disabled since it sometimes causes bogus compiler warnings (issue #546)
|
||||
|
||||
### 1.6.0 (2017-07-11)
|
||||
- Fix: Allowed for SparkFun's weird usb pid/vid submenu shenanigans (issue #499). (https://github.com/sej7278)
|
||||
|
|
Loading…
Reference in a new issue