I've only recently started with 1.5 so can't recall exactly but I think you can add your own overrides and "recipe" patterns directly to the boards.txt. You will find the default settings and recipe patterns in the platform.txt. Example:-
recipe.cpp.o.pattern=
So this would mean you could copy a board def in the boards.txt, change the name to whatever you want and add your own recipe specifically for your new board definition. This would allow you to optionally invoke your additional compiler defines just by switching board. (I hope this info is correct)
If you have vs installed then it is certainly easier to achieve this with the vs plugin, which also allows us to set a -D list on a per configuration basis. This means, for example, that we can have a -D list for "My Normal Compile" and a list for "My Special Compile" etc.
EDIT: How to copy a board def - Example
Below is the def for the Uno
##############################################################
uno.name=Arduino Uno
uno.upload.tool=avrdude
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.tool=avrdude
uno.bootloader.low_fuses=0xFF
uno.bootloader.high_fuses=0xDE
uno.bootloader.extended_fuses=0x05
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.bootloader.file=optiboot/optiboot_atmega328.hex
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
Below is a duplicate called Arduino Uno 2. Notice that each property for the board starts with a unique id, in this case "uno2". So to copy a def you only need to set the .name property and ensure that each entry starts with a unique id of your choice.
##############################################################
uno2.name=Arduino Uno 2
uno2.upload.tool=avrdude
uno2.upload.protocol=arduino
uno2.upload.maximum_size=32256
uno2.upload.speed=115200
uno2.bootloader.tool=avrdude
uno2.bootloader.low_fuses=0xFF
uno2.bootloader.high_fuses=0xDE
uno2.bootloader.extended_fuses=0x05
uno2.bootloader.unlock_bits=0x3F
uno2.bootloader.lock_bits=0x0F
uno2.bootloader.file=optiboot/optiboot_atmega328.hex
uno2.build.mcu=atmega328p
uno2.build.f_cpu=16000000L
uno2.build.core=arduino
uno2.build.variant=standard