Skip to content

Commit

Permalink
Implements subprojects and updates projects for this (qmk#459)
Browse files Browse the repository at this point in the history
* non-working commit

* working

* subprojects implemented for planck

* pass a subproject variable through to c

* consolidates clueboard revisions

* thanks for letting me know about conflicts..

* turn off audio for yang's

* corrects starting paths for subprojects

* messing around with travis

* semicolon

* travis script

* travis script

* script for travis

* correct directory (probably), amend files to commit

* remove origin before adding

* git pull, correct syntax

* git checkout

* git pull origin branch

* where are we?

* where are we?

* merging

* force things to happen

* adds commit message, adds add

* rebase, no commit message

* rebase branch

* idk!

* try just pull

* fetch - merge

* specify repo branch

* checkout

* goddammit

* merge? idk

* pls

* after all

* don't split up keyboards

* syntax

* adds quick for all-keyboards

* trying out new script

* script update

* lowercase

* all keyboards

* stop replacing compiled.hex automatically

* adds if statement

* skip automated build branches

* forces push to automated build branch

* throw an add in there

* upstream?

* adds AUTOGEN

* ignore all .hex files again

* testing out new repo

* global ident

* generate script, keyboard_keymap.hex

* skip generation for now, print pandoc info, submodule update

* try trusty

* and sudo

* try generate

* updates subprojects to keyboards

* no idea

* updates to keyboards

* cleans up clueboard stuff

* setup to use local readme

* updates cluepad, planck experimental

* remove extra led.c [ci skip]

* disable power up for now

* config files updates

* makefile updates

* .h file updates, config tuning

* disable audio for yang
  • Loading branch information
jackhumbert authored Jun 29, 2016
1 parent 825a211 commit 5f021b0
Show file tree
Hide file tree
Showing 44 changed files with 480 additions and 475 deletions.
50 changes: 16 additions & 34 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,21 @@
os:
- linux

language:
- c

compiler:
- avr-gcc

os: linux
dist: trusty
sudo: required
language: c
compiler: avr-gcc
branches:
except:
- /^.*-automated-build$/
env:
- KEYBOARD=alps64
- KEYBOARD=arrow_pad
- KEYBOARD=atomic
- KEYBOARD=atreus
- KEYBOARD=bantam44
- KEYBOARD=clueboard1
- KEYBOARD=clueboard2
- KEYBOARD=cluepad
- KEYBOARD=ergodox_ez
- KEYBOARD=gh60
- KEYBOARD=hhkb
- KEYBOARD=jd45
- KEYBOARD=kc60
- KEYBOARD=phantom
- KEYBOARD=planck
- KEYBOARD=preonic
- KEYBOARD=retro_refit
- KEYBOARD=satan
- KEYBOARD=sixkeyboard

global:
- secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM=
script:
- cd keyboards/$KEYBOARD && make all-keymaps

- make all-keyboards quick AUTOGEN=true
addons:
apt:
packages:
- avr-libc
- gcc-avr
- dfu-programmer
- avr-libc
- gcc-avr
- dfu-programmer
- pandoc
after_success: bash util/travis_compiled_push.sh
68 changes: 63 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,32 @@ abs_tmk_root := $(patsubst %/,%,$(dir $(mkfile_path)))
ifneq (,$(findstring /keyboards/,$(starting_makefile)))
possible_keyboard:=$(patsubst %/,%,$(dir $(patsubst $(abs_tmk_root)/keyboards/%,%,$(starting_makefile))))
ifneq (,$(findstring /keymaps/,$(possible_keyboard)))
KEYBOARD_DIR:=$(firstword $(subst /keymaps/, ,$(possible_keyboard)))
KEYMAP_DIR:=$(lastword $(subst /keymaps/, ,$(possible_keyboard)))
tmk_root = ../../../..
KEYBOARD_DIR:=$(firstword $(subst /keymaps/, ,$(possible_keyboard)))
ifneq (,$(findstring /,$(KEYBOARD_DIR)))
# SUBPROJECT_DIR:=$(lastword $(subst /, ,$(KEYBOARD_DIR)))
# KEYBOARD_DIR:=$(firstword $(subst /, ,$(KEYBOARD_DIR)))
tmk_root = ../../..
else
tmk_root = ../../../..
endif
else
KEYBOARD_DIR:=$(possible_keyboard)
KEYMAP_DIR:=default
tmk_root = ../..
KEYBOARD_DIR:=$(possible_keyboard)
ifneq (,$(findstring /,$(KEYBOARD_DIR)))
# SUBPROJECT_DIR:=$(lastword $(subst /, ,$(KEYBOARD_DIR)))
# KEYBOARD_DIR:=$(firstword $(subst /, ,$(KEYBOARD_DIR)))
tmk_root = ../../..
else
tmk_root = ../..
endif
endif
else
tmk_root = .
endif
# $(info $(KEYBOARD_DIR))
# $(info $(KEYMAP_DIR))
# $(info $(SUBPROJECT_DIR))

# Directory common source filess exist
TOP_DIR = $(tmk_root)
Expand All @@ -32,6 +45,7 @@ TMK_PATH = $(TOP_DIR)/$(TMK_DIR)
QUANTUM_DIR = quantum
QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR)


ifdef keyboard
KEYBOARD ?= $(keyboard)
endif
Expand All @@ -41,7 +55,16 @@ endif
ifndef KEYBOARD
KEYBOARD=planck
endif

# converts things to keyboards/subproject
ifneq (,$(findstring /,$(KEYBOARD)))
TEMP:=$(KEYBOARD)
KEYBOARD:=$(firstword $(subst /, ,$(TEMP)))
SUBPROJECT:=$(lastword $(subst /, ,$(TEMP)))
endif

KEYBOARD_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD)

ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","")
KEYBOARD_FILE = keyboards/$(KEYBOARD)/$(KEYBOARD).c
ifndef ARCH
Expand All @@ -51,6 +74,28 @@ else
$(error "$(KEYBOARD_PATH)/$(KEYBOARD).c" does not exist)
endif

ifdef sub
SUBPROJECT=$(sub)
endif
ifdef subproject
SUBPROJECT=$(subproject)
endif

ifdef SUBPROJECT_DEFAULT
SUBPROJECT?=$(SUBPROJECT_DEFAULT)
endif

ifdef SUBPROJECT
SUBPROJECT_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD)/$(SUBPROJECT)
ifneq ("$(wildcard $(SUBPROJECT_PATH)/$(SUBPROJECT).c)","")
OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT)
SUBPROJECT_FILE = keyboards/$(KEYBOARD)/$(SUBPROJECT)/$(SUBPROJECT).c
-include $(SUBPROJECT_PATH)/Makefile
else
$(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist)
endif
endif

ifdef keymap
KEYMAP ?= $(keymap)
endif
Expand All @@ -68,7 +113,13 @@ else
$(error "$(KEYMAP_PATH)/keymap.c" does not exist)
endif

TARGET ?= $(KEYBOARD)_$(KEYMAP)
ifdef SUBPROJECT
TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP)
else
TARGET ?= $(KEYBOARD)_$(KEYMAP)
endif



ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
CONFIG_H = $(KEYMAP_PATH)/config.h
Expand All @@ -83,6 +134,10 @@ SRC += $(KEYBOARD_FILE) \
$(QUANTUM_DIR)/keymap.c \
$(QUANTUM_DIR)/keycode_config.c

ifdef SUBPROJECT
SRC += $(SUBPROJECT_FILE)
endif

ifndef CUSTOM_MATRIX
SRC += $(QUANTUM_DIR)/matrix.c
endif
Expand All @@ -104,6 +159,9 @@ endif

# Search Path
VPATH += $(KEYMAP_PATH)
ifdef SUBPROJECT
VPATH += $(SUBPROJECT_PATH)
endif
VPATH += $(KEYBOARD_PATH)
VPATH += $(TOP_DIR)
VPATH += $(TMK_PATH)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

SUBPROJECT_DEFAULT = rev2

# MCU name
MCU = atmega32u4
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
#include "clueboard1.h"
#include "clueboard.h"

void led_init_ports() {
// * Set our LED pins as output
DDRB |= (1<<4);
}

void led_set_kb(uint8_t usb_led) {
DDRF |= (1<<0);
Expand Down
13 changes: 13 additions & 0 deletions keyboards/clueboard/clueboard.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#ifndef CLUEBOARD_H
#define CLUEBOARD_H

#ifdef SUBPROJECT_rev1
#include "rev1.h"
#endif
#ifdef SUBPROJECT_rev2
#include "rev2.h"
#endif

#include "quantum.h"

#endif
37 changes: 8 additions & 29 deletions keyboards/clueboard1/config.h → keyboards/clueboard/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,29 +22,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.

/* USB Device descriptor parameter */
#define VENDOR_ID 0xC1ED
#define PRODUCT_ID 0x2301
#define DEVICE_VER 0x0003
#define MANUFACTURER Clueboard
#define PRODUCT Clueboard
#define DESCRIPTION QMK keyboard firmware for Clueboard

/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 16

// ROWS: Top to bottom, COLS: Left to right
/* Column pin configuration
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
* pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1
*/
#define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 }
/* Row pin configuration
* row: 0 1 2 3 4
* pin: D1 D0 D2 D5 D3
*/
#define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 }
#define UNUSED_PINS

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

Expand All @@ -64,16 +45,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)

/* Underlight configuration
*/
#define ws2812_PORTREG PORTB
#define ws2812_DDRREG DDRB
#define ws2812_pin 2
#define RGBLED_NUM 14 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17

/*
* Feature disable options
* These options are also useful to firmware size reduction.
Expand All @@ -92,4 +63,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION


#ifdef SUBPROJECT_rev1
#include "rev1/config.h"
#endif
#ifdef SUBPROJECT_rev2
#include "rev2/config.h"
#endif

#endif
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "clueboard2.h"
#include "clueboard.h"

// Used for SHIFT_ESC
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
Expand Down Expand Up @@ -138,6 +138,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
if (record->event.pressed) {
rgblight_toggle();
}

break;
case RGBLED_INCREASE_HUE:
if (record->event.pressed) {
Expand Down
49 changes: 49 additions & 0 deletions keyboards/clueboard/keymaps/max/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#----------------------------------------------------------------------------
# On command line:
#
# make all = Make software.
#
# make clean = Clean out built project files.
#
# make coff = Convert ELF to AVR COFF.
#
# make extcoff = Convert ELF to AVR Extended COFF.
#
# make program = Download the hex file to the device.
# Please customize your programmer settings(PROGRAM_CMD)
#
# make teensy = Download the hex file to the device, using teensy_loader_cli.
# (must have teensy_loader_cli installed).
#
# make dfu = Download the hex file to the device, using dfu-programmer (must
# have dfu-programmer installed).
#
# make flip = Download the hex file to the device, using Atmel FLIP (must
# have Atmel FLIP installed).
#
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
# (must have dfu-programmer installed).
#
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
# (must have Atmel FLIP installed).
#
# make debug = Start either simulavr or avarice as specified for debugging,
# with avr-gdb or avr-insight as the front end for debugging.
#
# make filename.s = Just compile filename.c into the assembler code only.
#
# make filename.i = Create a preprocessed source file for use in submitting
# bug reports to the GCC project.
#
# To rebuild project do "make clean" then "make all".
#----------------------------------------------------------------------------

# Build Options
# change to "no" to disable the options, or define them in the makefile.mk in
# the appropriate keymap folder that will get included automatically
#
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.

ifndef QUANTUM_DIR
include ../../../../Makefile
endif
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "clueboard2.h"
#include "clueboard.h"

// Used for SHIFT_ESC
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "clueboard2.h"
#include "clueboard.h"

// Used for SHIFT_ESC
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
Expand Down
5 changes: 5 additions & 0 deletions keyboards/clueboard/rev1/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
BACKLIGHT_ENABLE = no

ifndef QUANTUM_DIR
include ../../../Makefile
endif
37 changes: 37 additions & 0 deletions keyboards/clueboard/rev1/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#ifndef REV2_CONFIG_H
#define REV2_CONFIG_H

#include "../config.h"

#define PRODUCT_ID 0x2301
#define DEVICE_VER 0x0003

/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 16

// ROWS: Top to bottom, COLS: Left to right
/* Column pin configuration
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
* pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1
*/
#define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 }
/* Row pin configuration
* row: 0 1 2 3 4
* pin: D1 D0 D2 D5 D3
*/
#define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 }
#define UNUSED_PINS

/* Underlight configuration
*/
#define ws2812_PORTREG PORTB
#define ws2812_DDRREG DDRB
#define ws2812_pin 2
#define RGBLED_NUM 14 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17


#endif
1 change: 1 addition & 0 deletions keyboards/clueboard/rev1/rev1.c
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "rev1.h"
Loading

0 comments on commit 5f021b0

Please sign in to comment.