Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change 'helix/rev2:default' setting to use split_common #16432

Merged
merged 14 commits into from
Mar 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions keyboards/helix/rev2/config.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2018 MakotoKurauchi

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -28,6 +29,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100

#define SPLIT_LAYER_STATE_ENABLE
#define SPLIT_LED_STATE_ENABLE

/* Use I2C or Serial */
#define USE_SERIAL
//#define USE_MATRIX_I2C
Expand Down
8 changes: 0 additions & 8 deletions keyboards/helix/rev2/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,6 @@
*/

#include QMK_KEYBOARD_H
#include "bootloader.h"
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#include "split_util.h"
#endif
#ifdef AUDIO_ENABLE
#include "audio.h"
#endif

// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
Expand Down
2 changes: 2 additions & 0 deletions keyboards/helix/rev2/keymaps/default/rules.mk
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
SPLIT_KEYBOARD = yes

LTO_ENABLE = yes # if firmware size over limit, try this option

# Helix Spacific Build Options
Expand Down
10 changes: 1 addition & 9 deletions keyboards/helix/rev2/keymaps/five_rows/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,7 @@
*/

#include QMK_KEYBOARD_H
#include "util.h"
#include "bootloader.h"
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#include "split_util.h"
#endif
#ifdef CONSOLE_ENABLE
#include <print.h>
#endif

#include "layer_number.h"

extern keymap_config_t keymap_config;
Expand Down
2 changes: 2 additions & 0 deletions keyboards/helix/rev2/keymaps/five_rows/rules.mk
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
SPLIT_KEYBOARD = yes

CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# CONSOLE_ENABLE and COMMAND_ENABLE
Expand Down
2 changes: 2 additions & 0 deletions keyboards/helix/rev2/keymaps/led_test/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
SPLIT_KEYBOARD = yes

LTO_ENABLE = no # if firmware size over limit, try this option

# Helix Spacific Build Options
Expand Down
134 changes: 37 additions & 97 deletions keyboards/helix/rev2/local_features.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,109 +6,42 @@
#

KEYBOARD_LOCAL_FEATURES_MK :=

define HELIX_CUSTOMISE_MSG
$(info Helix Spacific Build Options)
$(info - OLED_ENABLE = $(OLED_ENABLE))
$(info - OLED_SELECT = $(OLED_SELECT))
$(info - LED_BACK_ENABLE = $(LED_BACK_ENABLE))
$(info - LED_UNDERGLOW_ENABLE = $(LED_UNDERGLOW_ENABLE))
$(info - LED_ANIMATIONS = $(LED_ANIMATIONS))
$(info - IOS_DEVICE_ENABLE = $(IOS_DEVICE_ENABLE))
$(info )
endef

define HELIX_HELP_MSG
$(info Helix keyboard convenient command line option)
$(info - make HELIX=<options> helix:<keymap>)
$(info - option= oled | core-oled | local-oled | no-oled )
$(info - back | no-back | under | na | no-ani )
$(info - ios | sc | split-common | scan | verbose)
$(info - eg.)
$(info - make HELIX=no-oled helix:<keymap>)
$(info - make HELIX=oled,no-back helix:<keymap>)
$(info - make HELIX=oled,under helix:<keymap>)
$(info - make HELIX=oled,back,na helix:<keymap>)
$(info - make HELIX=oled,back,ios helix:<keymap>)
$(info )
endef

ifneq ($(strip $(HELIX)),)
-include $(strip $(HELIX_TOP_DIR)/pico/override_helix_options.mk) ## File dedicated to maintenance

# Parse 'HELIX=xx,yy,zz' option
ifneq ($(strip $(HELIX)),)
# make HELIX=ios helix/pico:AKEYMAP
# make HELIX=no-ani helix/pico:AKEYMAP
# make HELIX=no-oled helix/pico:AKEYMAP
# make HELIX=ios,no-ani,no-oled helix/pico:AKEYMAP
define HELIX_OPTION_PARSE
# parce 'oled' 'back' 'under' 'ios' etc.
$(if $(SHOW_PARCE),$(info parse .$1.)) #debug
# parce 'no-ani' 'ios' 'no-oled'
$(if $(SHOW_PARCE),$(info parse .$1.)) #debug
$(if $(HELIX_OVERRIDE_PARSE),$(call HELIX_OVERRIDE_PARSE,$1))

ifeq ($(strip $1),help)
HELP=on
ifeq ($(strip $1),ios)
IOS_DEVICE_ENABLE = yes
endif
ifneq ($(filter na no_ani no-ani,$(strip $1)),)
LED_ANIMATIONS = no
endif
ifneq ($(filter nooled no-oled,$(strip $1)),)
OLED_ENABLE = no
endif
ifeq ($(strip $1),oled)
OLED_ENABLE = yes
endif
ifneq ($(filter core-oled core_oled newoled new-oled olednew oled-new,$(strip $1)),)
OLED_ENABLE = yes
OLED_SELECT = core
endif
ifneq ($(filter local-oled local_oled oldoled old-oled oledold oled-old,$(strip $1)),)
OLED_ENABLE = yes
OLED_SELECT = local
endif
ifneq ($(filter noback no-back nounder no-under,$(strip $1)),)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = no
endif
ifeq ($(strip $1),back)
LED_BACK_ENABLE = yes
LED_UNDERGLOW_ENABLE = no
endif
ifeq ($(strip $1),under)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = yes
endif
ifneq ($(filter na no_ani no-ani,$(strip $1)),)
LED_ANIMATIONS = no
endif
ifeq ($(strip $1),ios)
IOS_DEVICE_ENABLE = yes
endif
ifneq ($(filter sc split-common split_common,$(strip $1)),)
SPLIT_KEYBOARD = yes
endif
ifneq ($(filter nosc no-sc no-split-common no-split_common,$(strip $1)),)
SPLIT_KEYBOARD = no
endif
ifeq ($(strip $1),scan)
# use DEBUG_MATRIX_SCAN_RATE
# see docs/newbs_testing_debugging.md
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
CONSOLE_ENABLE = yes
SHOW_VERBOSE_INFO = yes
endif
ifeq ($(strip $1),verbose)
SHOW_VERBOSE_INFO = yes
endif
ifeq ($(strip $1),lto)
LTO_ENABLE = yes
endif
ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
LTO_ENABLE = no
endif
endef # end of HELIX_OPTION_PARSE

COMMA=,
$(eval $(foreach A_OPTION_NAME,$(subst $(COMMA), ,$(HELIX)), \
$(call HELIX_OPTION_PARSE,$(A_OPTION_NAME))))

ifeq ($(strip $(HELP)),on)
$(eval $(call HELIX_HELP_MSG))
$(error )
endif
SHOW_HELIX_OPTIONS = yes
endif
endif

ifneq ($(strip $(SPLIT_KEYBOARD)), yes)
# In the very near future, all keymaps will be compatible with split_common and this block will be removed.
SRC += local_drivers/serial.c
KEYBOARD_PATHS += $(HELIX_TOP_DIR)/local_drivers

Expand Down Expand Up @@ -139,7 +72,6 @@ ifeq ($(strip $(LED_BACK_ENABLE)), yes)
RGBLIGHT_ENABLE = yes
OPT_DEFS += -DRGBLED_BACK
ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
$(eval $(call HELIX_CUSTOMISE_MSG))
$(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes')
endif
else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
Expand All @@ -164,6 +96,8 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
endif
else

# In the very near future, all keymaps will be compatible with QMK standard oled_driver and this block will be removed.
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
$(info Helix/rev2: The following combinations are not supported.)
$(info - SPLIT_KEYBOARD = $(SPLIT_KEYBOARD)) # yes
Expand All @@ -188,15 +122,21 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
endif

ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
$(eval $(call HELIX_CUSTOMISE_MSG))
ifneq ($(strip $(SHOW_VERBOSE_INFO)),)
$(info -- RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE))
$(info -- OLED_DRIVER = $(OLED_DRIVER))
$(info -- OLED_LOCAL_ENABLE = $(OLED_LOCAL_ENABLE))
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
$(info -- OPT_DEFS = $(OPT_DEFS))
$(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
$(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info )
endif
$(info Helix Spacific Build Options)
$(info - OLED_ENABLE = $(OLED_ENABLE))
$(info - OLED_SELECT = $(OLED_SELECT))
$(info - LED_BACK_ENABLE = $(LED_BACK_ENABLE))
$(info - LED_UNDERGLOW_ENABLE = $(LED_UNDERGLOW_ENABLE))
$(info - LED_ANIMATIONS = $(LED_ANIMATIONS))
$(info - IOS_DEVICE_ENABLE = $(IOS_DEVICE_ENABLE))
$(info )
$(info QMK Build Options)
$(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
$(info -- RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE))
$(info -- OLED_DRIVER = $(OLED_DRIVER))
$(info -- OLED_LOCAL_ENABLE = $(OLED_LOCAL_ENABLE))
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
$(info -- OPT_DEFS = $(OPT_DEFS))
$(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info )
endif
44 changes: 44 additions & 0 deletions keyboards/helix/rev2/override_helix_options.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
$(info -------------------------)
$(info override_helix_options.mk)
$(info -------------------------)

define HELIX_OVERRIDE_PARSE
ifeq ($(strip $1),back)
LED_BACK_ENABLE = yes
LED_UNDERGLOW_ENABLE = no
endif
ifeq ($(strip $1),under)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = yes
endif
ifneq ($(filter led-off led_off noback no-back nounder no-under,$(strip $1)),)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = no
endif
ifneq ($(filter core-oled core_oled newoled new-oled olednew oled-new,$(strip $1)),)
OLED_ENABLE = yes
OLED_SELECT = core
endif
ifneq ($(filter local-oled local_oled oldoled old-oled oledold oled-old,$(strip $1)),)
OLED_ENABLE = yes
OLED_SELECT = local
endif
ifneq ($(filter sc split-common split_common,$(strip $1)),)
SPLIT_KEYBOARD = yes
endif
ifneq ($(filter nosc no-sc no-split-common no-split_common,$(strip $1)),)
SPLIT_KEYBOARD = no
endif
ifeq ($(strip $1),scan)
DEBUG_MATRIX_SCAN_RATE_ENABLE = yes
endif
ifeq ($(strip $1),scan-api)
DEBUG_MATRIX_SCAN_RATE_ENABLE = api
endif
ifeq ($(strip $1),lto)
LTO_ENABLE = yes
endif
ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
LTO_ENABLE = no
endif
endef # end of HELIX_OVERRIDE_PARSE
15 changes: 15 additions & 0 deletions keyboards/helix/rev2/rev2.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
/* Copyright 2018 MakotoKurauchi
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "helix.h"

// Each keymap.c should use is_keyboard_master() instead of 'is_master'.
Expand Down
15 changes: 15 additions & 0 deletions keyboards/helix/rev2/rev2.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
/* Copyright 2018 MakotoKurauchi
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once

#include "helix.h"
Expand Down
2 changes: 2 additions & 0 deletions keyboards/helix/rev2/rules.mk
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk

# SPLIT_KEYBOARD = yes

# Helix Spacific Build Options default values
HELIX_ROWS = 5 # Helix Rows is 4 or 5
OLED_ENABLE = yes # OLED_ENABLE
Expand Down