Enabled virtual build for OLKB/Planck

Signed-off-by: Florian Fleissner <florian.fleissner@inpartik.de>
pull/650/head
Florian Fleissner 5 years ago
parent b6fd6b02f5
commit 9d4641a218

@ -27,16 +27,44 @@
#include "kaleidoscope/driver/storage/ATmega32U4EEPROMProps.h" #include "kaleidoscope/driver/storage/ATmega32U4EEPROMProps.h"
#include "kaleidoscope/driver/storage/AVREEPROM.h" #include "kaleidoscope/driver/storage/AVREEPROM.h"
#define ATMEGA32U4_KEYBOARD(BOARD_, BOOTLOADER_, ROW_PINS_, COL_PINS_) \ #define ATMEGA32U4_DEVICE_PROPS(BOARD_, BOOTLOADER_, ROW_PINS_, COL_PINS_) \
struct BOARD_##Props : kaleidoscope::device::ATmega32U4KeyboardProps { \ struct BOARD_##Props : kaleidoscope::device::ATmega32U4KeyboardProps { \
struct KeyScannerProps : public kaleidoscope::driver::keyscanner::ATmegaProps { \ struct KeyScannerProps \
ATMEGA_KEYSCANNER_PROPS(ROW_PIN_LIST(ROW_PINS_), COL_PIN_LIST(COL_PINS_)); \ : public kaleidoscope::driver::keyscanner::ATmegaProps \
{ \
ATMEGA_KEYSCANNER_PROPS(ROW_PIN_LIST(ROW_PINS_), \
COL_PIN_LIST(COL_PINS_)); \
}; \ }; \
typedef kaleidoscope::driver::keyscanner::ATmega<KeyScannerProps> KeyScanner; \ typedef kaleidoscope::driver::keyscanner::ATmega<KeyScannerProps> KeyScanner;\
typedef kaleidoscope::driver::bootloader::avr::BOOTLOADER_ BootLoader; \ typedef kaleidoscope::driver::bootloader::avr::BOOTLOADER_ BootLoader; \
}; \ };
#define ATMEGA32U4_DEVICE(BOARD_) \
class BOARD_: public kaleidoscope::device::ATmega32U4Keyboard<BOARD_##Props> {}; class BOARD_: public kaleidoscope::device::ATmega32U4Keyboard<BOARD_##Props> {};
#define FORWARD(...) __VA_ARGS__
#ifndef KALEIDOSCOPE_VIRTUAL_BUILD
#define ATMEGA32U4_KEYBOARD(BOARD_, BOOTLOADER_, ROW_PINS_, COL_PINS_) \
ATMEGA32U4_DEVICE_PROPS(BOARD_, BOOTLOADER_, \
FORWARD(ROW_PINS_), FORWARD(COL_PINS_)) \
ATMEGA32U4_DEVICE(BOARD_)
#else // ifndef KALEIDOSCOPE_VIRTUAL_BUILD
#define ATMEGA32U4_KEYBOARD(BOARD_, BOOTLOADER_, ROW_PINS_, COL_PINS_) \
ATMEGA32U4_DEVICE_PROPS(BOARD_, BOOTLOADER_, \
FORWARD(ROW_PINS_), FORWARD(COL_PINS_)) \
/* Device definition omitted for virtual device builds. \
* We need to forward declare the device name, though, as there are \
* some legacy extern references to boards whose definition \
* depends on this. \
*/ \
class BOARD_;
#endif // ifndef KALEIDOSCOPE_VIRTUAL_BUILD
namespace kaleidoscope { namespace kaleidoscope {
namespace device { namespace device {

@ -15,6 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef KALEIDOSCOPE_VIRTUAL_BUILD
#ifdef ARDUINO_AVR_PLANCK #ifdef ARDUINO_AVR_PLANCK
#include <Kaleidoscope.h> #include <Kaleidoscope.h>
@ -32,3 +33,4 @@ ATMEGA_KEYSCANNER_BOILERPLATE
kaleidoscope::device::olkb::Planck &Planck = kaleidoscope_internal::device; kaleidoscope::device::olkb::Planck &Planck = kaleidoscope_internal::device;
#endif #endif
#endif // ifndef KALEIDOSCOPE_VIRTUAL_BUILD

@ -17,7 +17,7 @@
#pragma once #pragma once
#ifdef __AVR__ #if defined(__AVR__) || defined(KALEIDOSCOPE_VIRTUAL_BUILD)
#include "kaleidoscope/driver/storage/Base.h" #include "kaleidoscope/driver/storage/Base.h"
#include <EEPROM.h> #include <EEPROM.h>

Loading…
Cancel
Save