Compare commits
1 Commits
0.12.39
...
make_cli_p
Author | SHA1 | Date | |
---|---|---|---|
a380937f1f |
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -92,4 +92,3 @@ GRAPHICS
|
|||||||
# hex files
|
# hex files
|
||||||
*.hex binary
|
*.hex binary
|
||||||
*.eep binary
|
*.eep binary
|
||||||
nix/sources.nix linguist-generated=true
|
|
||||||
|
3
.github/PULL_REQUEST_TEMPLATE.md
vendored
3
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -26,8 +26,7 @@
|
|||||||
|
|
||||||
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
||||||
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
||||||
- [ ] My code follows the code style of this project: [**C**](https://docs.qmk.fm/#/coding_conventions_c), [**Python**](https://docs.qmk.fm/#/coding_conventions_python)
|
- [ ] My code follows the code style of this project.
|
||||||
- [ ] I have read the [**PR Checklist** document](https://docs.qmk.fm/#/pr_checklist) and have made the appropriate changes.
|
|
||||||
- [ ] My change requires a change to the documentation.
|
- [ ] My change requires a change to the documentation.
|
||||||
- [ ] I have updated the documentation accordingly.
|
- [ ] I have updated the documentation accordingly.
|
||||||
- [ ] I have read the [**CONTRIBUTING** document](https://docs.qmk.fm/#/contributing).
|
- [ ] I have read the [**CONTRIBUTING** document](https://docs.qmk.fm/#/contributing).
|
||||||
|
42
.github/labeler.yml
vendored
42
.github/labeler.yml
vendored
@ -1,42 +0,0 @@
|
|||||||
core:
|
|
||||||
- quantum/**/*
|
|
||||||
- tmk_core/**/*
|
|
||||||
- drivers/**/*
|
|
||||||
- tests/**/*
|
|
||||||
- util/**/*
|
|
||||||
- platforms/**/*
|
|
||||||
- Makefile
|
|
||||||
- '*.mk'
|
|
||||||
dependencies:
|
|
||||||
- any:
|
|
||||||
- 'lib/**/*'
|
|
||||||
- '!lib/python/**/*'
|
|
||||||
keyboard:
|
|
||||||
- any:
|
|
||||||
- 'keyboards/**/*'
|
|
||||||
- '!keyboards/**/keymaps/**/*'
|
|
||||||
keymap:
|
|
||||||
- users/**/*
|
|
||||||
- layouts/**/*
|
|
||||||
- keyboards/**/keymaps/**/*
|
|
||||||
via:
|
|
||||||
- keyboards/**/keymaps/via/*
|
|
||||||
cli:
|
|
||||||
- bin/qmk
|
|
||||||
- requirements.txt
|
|
||||||
- lib/python/**/*
|
|
||||||
python:
|
|
||||||
- '**/*.py'
|
|
||||||
documentation:
|
|
||||||
- docs/**/*
|
|
||||||
translation:
|
|
||||||
- docs/fr-fr/**/*
|
|
||||||
- docs/es/**/*
|
|
||||||
- docs/ja/**/*
|
|
||||||
- docs/he-il/**/*
|
|
||||||
- docs/pt-br/**/*
|
|
||||||
- docs/zh-cn/**/*
|
|
||||||
- docs/de/**/*
|
|
||||||
- docs/ru-ru/**/*
|
|
||||||
CI:
|
|
||||||
- .github/**/*
|
|
37
.github/workflows/api.yml
vendored
37
.github/workflows/api.yml
vendored
@ -1,37 +0,0 @@
|
|||||||
name: Update API Data
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
paths:
|
|
||||||
- 'keyboards/**'
|
|
||||||
- 'layouts/community/**'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
api_data:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: qmkfm/base_container
|
|
||||||
|
|
||||||
# protect against those who develop with their fork on master
|
|
||||||
if: github.repository == 'qmk/qmk_firmware'
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 1
|
|
||||||
persist-credentials: false
|
|
||||||
|
|
||||||
- name: Generate API Data
|
|
||||||
run: qmk generate-api
|
|
||||||
|
|
||||||
- name: Upload API Data
|
|
||||||
uses: jakejarvis/s3-sync-action@master
|
|
||||||
with:
|
|
||||||
args: --acl public-read --follow-symlinks --delete
|
|
||||||
env:
|
|
||||||
AWS_S3_BUCKET: ${{ secrets.API_SPACE_MASTER }}
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }}
|
|
||||||
AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
|
|
||||||
SOURCE_DIR: 'api_data'
|
|
33
.github/workflows/auto_tag.yaml
vendored
33
.github/workflows/auto_tag.yaml
vendored
@ -1,33 +0,0 @@
|
|||||||
name: Essential files modified
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
paths:
|
|
||||||
- quantum/**/*
|
|
||||||
- tmk_core/**/*
|
|
||||||
- drivers/**/*
|
|
||||||
- tests/**/*
|
|
||||||
- util/**/*
|
|
||||||
- platforms/**/*
|
|
||||||
- Makefile
|
|
||||||
- '*.mk'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
tag:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
# protect against those who develop with their fork on master
|
|
||||||
if: github.repository == 'qmk/qmk_firmware'
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Bump version and push tag
|
|
||||||
uses: anothrNick/github-tag-action@1.26.0
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
DEFAULT_BUMP: 'patch'
|
|
37
.github/workflows/develop_api.yml
vendored
37
.github/workflows/develop_api.yml
vendored
@ -1,37 +0,0 @@
|
|||||||
name: Update Develop API Data
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- develop
|
|
||||||
paths:
|
|
||||||
- 'keyboards/**'
|
|
||||||
- 'layouts/community/**'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
api_data:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: qmkfm/base_container
|
|
||||||
|
|
||||||
# protect against those who work in their fork on develop
|
|
||||||
if: github.repository == 'qmk/qmk_firmware'
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 1
|
|
||||||
persist-credentials: false
|
|
||||||
|
|
||||||
- name: Generate API Data
|
|
||||||
run: qmk generate-api
|
|
||||||
|
|
||||||
- name: Upload API Data
|
|
||||||
uses: jakejarvis/s3-sync-action@master
|
|
||||||
with:
|
|
||||||
args: --acl public-read --follow-symlinks --delete
|
|
||||||
env:
|
|
||||||
AWS_S3_BUCKET: ${{ secrets.API_SPACE_DEVELOP }}
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }}
|
|
||||||
AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
|
|
||||||
SOURCE_DIR: 'api_data'
|
|
37
.github/workflows/develop_update.yml
vendored
37
.github/workflows/develop_update.yml
vendored
@ -1,37 +0,0 @@
|
|||||||
name: Update develop after master merge
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
develop_update:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
if: github.repository == 'qmk/qmk_firmware'
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Checkout develop
|
|
||||||
run: |
|
|
||||||
git fetch origin master develop
|
|
||||||
git checkout develop
|
|
||||||
|
|
||||||
- name: Check if branch locked
|
|
||||||
id: check_locked
|
|
||||||
uses: andstor/file-existence-action@v1
|
|
||||||
with:
|
|
||||||
files: ".locked"
|
|
||||||
|
|
||||||
- name: Update develop from master
|
|
||||||
if: steps.check_locked.outputs.files_exists == 'false'
|
|
||||||
run: |
|
|
||||||
git config --global user.name "QMK Bot"
|
|
||||||
git config --global user.email "hello@qmk.fm"
|
|
||||||
git merge origin/master
|
|
||||||
git push origin develop
|
|
43
.github/workflows/docs.yml
vendored
43
.github/workflows/docs.yml
vendored
@ -1,43 +0,0 @@
|
|||||||
name: Generate Docs
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
paths:
|
|
||||||
- 'tmk_core/**'
|
|
||||||
- 'quantum/**'
|
|
||||||
- 'platforms/**'
|
|
||||||
- 'docs/**'
|
|
||||||
- '.github/workflows/docs.yml'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
generate:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: qmkfm/base_container
|
|
||||||
|
|
||||||
# protect against those who develop with their fork on master
|
|
||||||
if: github.repository == 'qmk/qmk_firmware'
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 1
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
apt-get update && apt-get install -y rsync nodejs npm doxygen
|
|
||||||
npm install -g moxygen
|
|
||||||
|
|
||||||
- name: Build docs
|
|
||||||
run: |
|
|
||||||
qmk --verbose generate-docs
|
|
||||||
|
|
||||||
- name: Deploy
|
|
||||||
uses: JamesIves/github-pages-deploy-action@3.7.1
|
|
||||||
with:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
BASE_BRANCH: master
|
|
||||||
BRANCH: gh-pages
|
|
||||||
FOLDER: .build/docs
|
|
||||||
GIT_CONFIG_EMAIL: hello@qmk.fm
|
|
47
.github/workflows/format.yaml
vendored
47
.github/workflows/format.yaml
vendored
@ -1,47 +0,0 @@
|
|||||||
name: Format Codebase
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
format:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: qmkfm/base_container
|
|
||||||
|
|
||||||
# protect against those who develop with their fork on master
|
|
||||||
if: github.repository == 'qmk/qmk_firmware'
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: rlespinasse/github-slug-action@v3.x
|
|
||||||
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.API_TOKEN_GITHUB }}
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
apt-get update && apt-get install -y dos2unix
|
|
||||||
|
|
||||||
- name: Format files
|
|
||||||
run: |
|
|
||||||
bin/qmk cformat -a
|
|
||||||
bin/qmk pyformat
|
|
||||||
bin/qmk fileformat
|
|
||||||
|
|
||||||
- name: Become QMK Bot
|
|
||||||
run: |
|
|
||||||
git config user.name 'QMK Bot'
|
|
||||||
git config user.email 'hello@qmk.fm'
|
|
||||||
|
|
||||||
- name: Create Pull Request
|
|
||||||
uses: peter-evans/create-pull-request@v3
|
|
||||||
with:
|
|
||||||
delete-branch: true
|
|
||||||
branch: bugfix/format_${{ env.GITHUB_REF_SLUG }}
|
|
||||||
author: QMK Bot <hello@qmk.fm>
|
|
||||||
committer: QMK Bot <hello@qmk.fm>
|
|
||||||
commit-message: Format code according to conventions
|
|
||||||
title: '[CI] Format code according to conventions'
|
|
14
.github/workflows/labeler.yml
vendored
14
.github/workflows/labeler.yml
vendored
@ -1,14 +0,0 @@
|
|||||||
name: "Pull Request Labeler"
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
types: [opened, synchronize, reopened, ready_for_review, locked]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
triage:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/labeler@main
|
|
||||||
with:
|
|
||||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
||||||
configuration-path: '.github/labeler.yml'
|
|
55
.github/workflows/lint.yml
vendored
55
.github/workflows/lint.yml
vendored
@ -1,55 +0,0 @@
|
|||||||
name: PR Lint keyboards
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- 'keyboards/**'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
lint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
container: qmkfm/base_container
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- uses: trilom/file-changes-action@v1.2.4
|
|
||||||
id: file_changes
|
|
||||||
with:
|
|
||||||
output: '\n'
|
|
||||||
|
|
||||||
- name: Print info
|
|
||||||
run: |
|
|
||||||
git rev-parse --short HEAD
|
|
||||||
echo ${{ github.event.pull_request.base.sha }}
|
|
||||||
echo '${{ steps.file_changes.outputs.files}}'
|
|
||||||
|
|
||||||
- name: Run qmk lint
|
|
||||||
shell: 'bash {0}'
|
|
||||||
run: |
|
|
||||||
QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}')
|
|
||||||
QMK_KEYBOARDS=$(qmk list-keyboards)
|
|
||||||
|
|
||||||
exit_code=0
|
|
||||||
for KB in $QMK_KEYBOARDS; do
|
|
||||||
KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)')
|
|
||||||
if [[ -z "$KEYBOARD_CHANGES" ]]; then
|
|
||||||
# skip as no changes for this keyboard
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/)
|
|
||||||
if [[ $KEYMAP_ONLY -gt 0 ]]; then
|
|
||||||
echo "linting ${KB}"
|
|
||||||
|
|
||||||
qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB}
|
|
||||||
exit_code=$(($exit_code + $?))
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [[ $exit_code -gt 255 ]]; then
|
|
||||||
exit 255
|
|
||||||
fi
|
|
||||||
exit $exit_code
|
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -16,7 +16,6 @@
|
|||||||
*.swp
|
*.swp
|
||||||
tags
|
tags
|
||||||
*~
|
*~
|
||||||
api_data/v1
|
|
||||||
build/
|
build/
|
||||||
.build/
|
.build/
|
||||||
*.bak
|
*.bak
|
||||||
@ -74,6 +73,3 @@ __pycache__
|
|||||||
|
|
||||||
# prerequisites for updating ChibiOS
|
# prerequisites for updating ChibiOS
|
||||||
/util/fmpp*
|
/util/fmpp*
|
||||||
|
|
||||||
# Allow to exist but don't include it in the repo
|
|
||||||
user_song_list.h
|
|
||||||
|
8
.gitmodules
vendored
8
.gitmodules
vendored
@ -12,13 +12,7 @@
|
|||||||
branch = master
|
branch = master
|
||||||
[submodule "lib/googletest"]
|
[submodule "lib/googletest"]
|
||||||
path = lib/googletest
|
path = lib/googletest
|
||||||
url = https://github.com/qmk/googletest
|
url = https://github.com/google/googletest
|
||||||
[submodule "lib/lufa"]
|
[submodule "lib/lufa"]
|
||||||
path = lib/lufa
|
path = lib/lufa
|
||||||
url = https://github.com/qmk/lufa
|
url = https://github.com/qmk/lufa
|
||||||
[submodule "lib/vusb"]
|
|
||||||
path = lib/vusb
|
|
||||||
url = https://github.com/qmk/v-usb
|
|
||||||
[submodule "lib/printf"]
|
|
||||||
path = lib/printf
|
|
||||||
url = https://github.com/qmk/printf
|
|
||||||
|
@ -18,15 +18,20 @@ addons:
|
|||||||
- ubuntu-toolchain-r-test
|
- ubuntu-toolchain-r-test
|
||||||
- llvm-toolchain-trusty-7
|
- llvm-toolchain-trusty-7
|
||||||
packages:
|
packages:
|
||||||
|
- pandoc
|
||||||
- diffutils
|
- diffutils
|
||||||
|
- dos2unix
|
||||||
|
- doxygen
|
||||||
- clang-format-7
|
- clang-format-7
|
||||||
- libstdc++-7-dev
|
- libstdc++-7-dev
|
||||||
|
install:
|
||||||
|
- npm install -g moxygen
|
||||||
script:
|
script:
|
||||||
- git fetch --depth=50 origin $TRAVIS_BRANCH:$TRAVIS_BRANCH
|
|
||||||
- git rev-parse --short HEAD
|
- git rev-parse --short HEAD
|
||||||
- git diff --name-only HEAD $TRAVIS_BRANCH
|
- git diff --name-only HEAD $TRAVIS_BRANCH
|
||||||
- bash util/travis_test.sh
|
- bash util/travis_test.sh
|
||||||
- bash util/travis_build.sh
|
- bash util/travis_build.sh
|
||||||
|
- bash util/travis_docs.sh
|
||||||
after_script:
|
after_script:
|
||||||
bash util/travis_compiled_push.sh
|
bash util/travis_compiled_push.sh
|
||||||
notifications:
|
notifications:
|
||||||
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -16,8 +16,7 @@
|
|||||||
"*.hpp": "cpp",
|
"*.hpp": "cpp",
|
||||||
"xstddef": "c",
|
"xstddef": "c",
|
||||||
"type_traits": "c",
|
"type_traits": "c",
|
||||||
"utility": "c",
|
"utility": "c"
|
||||||
"ranges": "c"
|
|
||||||
},
|
},
|
||||||
"[markdown]": {
|
"[markdown]": {
|
||||||
"editor.trimAutoWhitespace": false,
|
"editor.trimAutoWhitespace": false,
|
||||||
|
183
Makefile
183
Makefile
@ -29,9 +29,6 @@ $(info QMK Firmware $(QMK_VERSION))
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# avoid 'Entering|Leaving directory' messages
|
|
||||||
MAKEFLAGS += --no-print-directory
|
|
||||||
|
|
||||||
ON_ERROR := error_occurred=1
|
ON_ERROR := error_occurred=1
|
||||||
|
|
||||||
BREAK_ON_ERRORS = no
|
BREAK_ON_ERRORS = no
|
||||||
@ -68,15 +65,71 @@ PATH_ELEMENTS := $(subst /, ,$(STARTING_DIR))
|
|||||||
# Initialize the path elements list for further processing
|
# Initialize the path elements list for further processing
|
||||||
$(eval $(call NEXT_PATH_ELEMENT))
|
$(eval $(call NEXT_PATH_ELEMENT))
|
||||||
|
|
||||||
|
# This function sets the KEYBOARD; KEYMAP and SUBPROJECT to the correct
|
||||||
|
# variables depending on which directory you stand in.
|
||||||
|
# It's really a very simple if else chain, if you squint enough,
|
||||||
|
# but the makefile syntax makes it very verbose.
|
||||||
|
# If we are in a subfolder of keyboards
|
||||||
|
#
|
||||||
|
# *** No longer needed **
|
||||||
|
#
|
||||||
|
# ifeq ($(CURRENT_PATH_ELEMENT),keyboards)
|
||||||
|
# $(eval $(call NEXT_PATH_ELEMENT))
|
||||||
|
# KEYBOARD := $(CURRENT_PATH_ELEMENT)
|
||||||
|
# $(eval $(call NEXT_PATH_ELEMENT))
|
||||||
|
# # If we are in a subfolder of keymaps, or in other words in a keymap
|
||||||
|
# # folder
|
||||||
|
# ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
|
||||||
|
# $(eval $(call NEXT_PATH_ELEMENT))
|
||||||
|
# KEYMAP := $(CURRENT_PATH_ELEMENT)
|
||||||
|
# # else if we are not in the keyboard folder itself
|
||||||
|
# else ifneq ($(CURRENT_PATH_ELEMENT),)
|
||||||
|
# # the we can assume it's a subproject, as no other folders
|
||||||
|
# # should have make files in them
|
||||||
|
# SUBPROJECT := $(CURRENT_PATH_ELEMENT)
|
||||||
|
# $(eval $(call NEXT_PATH_ELEMENT))
|
||||||
|
# # if we are inside a keymap folder of a subproject
|
||||||
|
# ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
|
||||||
|
# $(eval $(call NEXT_PATH_ELEMENT))
|
||||||
|
# KEYMAP := $(CURRENT_PATH_ELEMENT)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
define GET_KEYBOARDS
|
||||||
|
ifndef ALT_GET_KEYBOARDS
|
||||||
|
All_RULES_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/rules.mk))
|
||||||
|
All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
|
||||||
|
All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/rules.mk))
|
||||||
|
All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/rules.mk))
|
||||||
|
|
||||||
|
KEYMAPS_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/keymaps/*/rules.mk))
|
||||||
|
KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/keymaps/*/rules.mk))
|
||||||
|
KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/keymaps/*/rules.mk))
|
||||||
|
KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/keymaps/*/rules.mk))
|
||||||
|
|
||||||
|
KEYBOARDS := $$(sort $$(filter-out $$(KEYMAPS_MK), $$(All_RULES_MK)))
|
||||||
|
else
|
||||||
|
KEYBOARDS := $(shell find keyboards/ -type f -iname "rules.mk" | grep -v keymaps | sed 's!keyboards/\(.*\)/rules.mk!\1!' | sort | uniq)
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call GET_KEYBOARDS))
|
||||||
|
|
||||||
|
# Only consider folders with makefiles, to prevent errors in case there are extra folders
|
||||||
|
#KEYBOARDS += $(patsubst $(ROOD_DIR)/keyboards/%/rules.mk,%,$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
|
||||||
|
|
||||||
# Phony targets to enable a few simple make commands outside the main processing below.
|
|
||||||
.PHONY: list-keyboards
|
.PHONY: list-keyboards
|
||||||
list-keyboards:
|
list-keyboards:
|
||||||
util/list_keyboards.sh | sort -u | tr '\n' ' '
|
echo $(KEYBOARDS)
|
||||||
|
|
||||||
|
define PRINT_KEYBOARD
|
||||||
|
$(info $(PRINTING_KEYBOARD))
|
||||||
|
endef
|
||||||
|
|
||||||
.PHONY: generate-keyboards-file
|
.PHONY: generate-keyboards-file
|
||||||
generate-keyboards-file:
|
generate-keyboards-file:
|
||||||
util/list_keyboards.sh | sort -u
|
$(foreach PRINTING_KEYBOARD,$(KEYBOARDS),$(eval $(call PRINT_KEYBOARD)))
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
@ -102,6 +155,8 @@ endif
|
|||||||
# Uncomment these for debugging
|
# Uncomment these for debugging
|
||||||
# $(info Keyboard: $(KEYBOARD))
|
# $(info Keyboard: $(KEYBOARD))
|
||||||
# $(info Keymap: $(KEYMAP))
|
# $(info Keymap: $(KEYMAP))
|
||||||
|
# $(info Subproject: $(SUBPROJECT))
|
||||||
|
# $(info Keyboards: $(KEYBOARDS))
|
||||||
|
|
||||||
|
|
||||||
# Set the default goal depending on where we are running make from
|
# Set the default goal depending on where we are running make from
|
||||||
@ -159,6 +214,7 @@ endef
|
|||||||
# A recursive helper function for finding the longest match
|
# A recursive helper function for finding the longest match
|
||||||
# $1 The list to be checked
|
# $1 The list to be checked
|
||||||
# It works by always removing the currently matched item from the list
|
# It works by always removing the currently matched item from the list
|
||||||
|
# and call itself recursively, until a match is found
|
||||||
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2
|
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2
|
||||||
# Stop the recursion when the list is empty
|
# Stop the recursion when the list is empty
|
||||||
ifneq ($1,)
|
ifneq ($1,)
|
||||||
@ -213,29 +269,16 @@ endef
|
|||||||
define PARSE_RULE
|
define PARSE_RULE
|
||||||
RULE := $1
|
RULE := $1
|
||||||
COMMANDS :=
|
COMMANDS :=
|
||||||
REQUIRE_PLATFORM_KEY :=
|
|
||||||
# If the rule starts with all, then continue the parsing from
|
# If the rule starts with all, then continue the parsing from
|
||||||
# PARSE_ALL_KEYBOARDS
|
# PARSE_ALL_KEYBOARDS
|
||||||
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
|
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
|
||||||
KEYBOARD_RULE=all
|
KEYBOARD_RULE=all
|
||||||
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
||||||
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-avr),true)
|
|
||||||
KEYBOARD_RULE=all
|
|
||||||
REQUIRE_PLATFORM_KEY := avr
|
|
||||||
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
|
||||||
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-chibios),true)
|
|
||||||
KEYBOARD_RULE=all
|
|
||||||
REQUIRE_PLATFORM_KEY := chibios
|
|
||||||
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
|
||||||
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-arm_atsam),true)
|
|
||||||
KEYBOARD_RULE=all
|
|
||||||
REQUIRE_PLATFORM_KEY := arm_atsam
|
|
||||||
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
|
||||||
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
|
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
|
||||||
$$(eval $$(call PARSE_TEST))
|
$$(eval $$(call PARSE_TEST))
|
||||||
# If the rule starts with the name of a known keyboard, then continue
|
# If the rule starts with the name of a known keyboard, then continue
|
||||||
# the parsing from PARSE_KEYBOARD
|
# the parsing from PARSE_KEYBOARD
|
||||||
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell util/list_keyboards.sh | sort -u)),true)
|
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true)
|
||||||
KEYBOARD_RULE=$$(MATCHED_ITEM)
|
KEYBOARD_RULE=$$(MATCHED_ITEM)
|
||||||
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
|
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
|
||||||
# Otherwise use the KEYBOARD variable, which is determined either by
|
# Otherwise use the KEYBOARD variable, which is determined either by
|
||||||
@ -248,8 +291,8 @@ define PARSE_RULE
|
|||||||
$$(info | QMK's make format recently changed to use folder locations and colons:)
|
$$(info | QMK's make format recently changed to use folder locations and colons:)
|
||||||
$$(info | make project_folder:keymap[:target])
|
$$(info | make project_folder:keymap[:target])
|
||||||
$$(info | Examples:)
|
$$(info | Examples:)
|
||||||
$$(info | make dz60:default)
|
$$(info | make planck/rev4:default:dfu)
|
||||||
$$(info | make planck/rev6:default:flash)
|
$$(info | make planck:default)
|
||||||
$$(info |)
|
$$(info |)
|
||||||
endif
|
endif
|
||||||
endef
|
endef
|
||||||
@ -352,9 +395,26 @@ endef
|
|||||||
# if we are going to compile all keyboards, match the rest of the rule
|
# if we are going to compile all keyboards, match the rest of the rule
|
||||||
# for each of them
|
# for each of them
|
||||||
define PARSE_ALL_KEYBOARDS
|
define PARSE_ALL_KEYBOARDS
|
||||||
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell util/list_keyboards.sh noci | sort -u)))
|
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(KEYBOARDS)))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
# $1 Subproject
|
||||||
|
# When entering this, the keyboard and subproject are known, so now we need
|
||||||
|
# to determine which keymaps are going to get compiled
|
||||||
|
# define PARSE_SUBPROJECT
|
||||||
|
|
||||||
|
# endef
|
||||||
|
|
||||||
|
# If we want to parse all subprojects, but the keyboard doesn't have any,
|
||||||
|
# then use defaultsp instead
|
||||||
|
# define PARSE_ALL_SUBPROJECTS
|
||||||
|
# ifeq ($$(SUBPROJECTS),)
|
||||||
|
# $$(eval $$(call PARSE_SUBPROJECT,defaultsp))
|
||||||
|
# else
|
||||||
|
# $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS)))
|
||||||
|
# endif
|
||||||
|
# endef
|
||||||
|
|
||||||
# Prints a list of all known keymaps for the given keyboard
|
# Prints a list of all known keymaps for the given keyboard
|
||||||
define LIST_ALL_KEYMAPS
|
define LIST_ALL_KEYMAPS
|
||||||
COMMAND_true_LIST_KEYMAPS := \
|
COMMAND_true_LIST_KEYMAPS := \
|
||||||
@ -384,7 +444,7 @@ define PARSE_KEYMAP
|
|||||||
# Format it in bold
|
# Format it in bold
|
||||||
KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
|
KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
|
||||||
# Specify the variables that we are passing forward to submake
|
# Specify the variables that we are passing forward to submake
|
||||||
MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) REQUIRE_PLATFORM_KEY=$$(REQUIRE_PLATFORM_KEY)
|
MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM)
|
||||||
# And the first part of the make command
|
# And the first part of the make command
|
||||||
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET)
|
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET)
|
||||||
# The message to display
|
# The message to display
|
||||||
@ -403,8 +463,6 @@ define BUILD
|
|||||||
LOG=$$$$($$(MAKE_CMD) $$(MAKE_VARS) SILENT=true 2>&1) ; \
|
LOG=$$$$($$(MAKE_CMD) $$(MAKE_VARS) SILENT=true 2>&1) ; \
|
||||||
if [ $$$$? -gt 0 ]; \
|
if [ $$$$? -gt 0 ]; \
|
||||||
then $$(PRINT_ERROR_PLAIN); \
|
then $$(PRINT_ERROR_PLAIN); \
|
||||||
elif [ "$$$$LOG" = "skipped" ] ; \
|
|
||||||
then $$(PRINT_SKIPPED_PLAIN); \
|
|
||||||
elif [ "$$$$LOG" != "" ] ; \
|
elif [ "$$$$LOG" != "" ] ; \
|
||||||
then $$(PRINT_WARNING_PLAIN); \
|
then $$(PRINT_WARNING_PLAIN); \
|
||||||
else \
|
else \
|
||||||
@ -496,41 +554,41 @@ if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
|
|||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Catch everything and parse the command line ourselves.
|
# Let's match everything, we handle all the rule parsing ourselves
|
||||||
.PHONY: %
|
.PHONY: %
|
||||||
%:
|
%:
|
||||||
# Check if we have the CMP tool installed
|
# # Check if we have the CMP tool installed
|
||||||
cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
|
# cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
|
||||||
# Ensure that bin/qmk works.
|
# # Ensure that python3 is installed. This check can be removed after python is used in more places.
|
||||||
if ! bin/qmk hello 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; exit 1; fi
|
# if ! python3 --version 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; fi
|
||||||
# Check if the submodules are dirty, and display a warning if they are
|
# # Check if the submodules are dirty, and display a warning if they are
|
||||||
ifndef SKIP_GIT
|
#ifndef SKIP_GIT
|
||||||
if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --depth 50 --init lib/chibios; fi
|
# if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --depth 50 --init lib/chibios; fi
|
||||||
if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --depth 50 --init lib/chibios-contrib; fi
|
# if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --depth 50 --init lib/chibios-contrib; fi
|
||||||
if [ ! -e lib/ugfx ]; then git submodule sync lib/ugfx && git submodule update --depth 50 --init lib/ugfx; fi
|
# if [ ! -e lib/ugfx ]; then git submodule sync lib/ugfx && git submodule update --depth 50 --init lib/ugfx; fi
|
||||||
if [ ! -e lib/lufa ]; then git submodule sync lib/lufa && git submodule update --depth 50 --init lib/lufa; fi
|
# if [ ! -e lib/lufa ]; then git submodule sync lib/lufa && git submodule update --depth 50 --init lib/lufa; fi
|
||||||
if [ ! -e lib/vusb ]; then git submodule sync lib/vusb && git submodule update --depth 50 --init lib/vusb; fi
|
# git submodule status --recursive 2>/dev/null | \
|
||||||
if [ ! -e lib/printf ]; then git submodule sync lib/printf && git submodule update --depth 50 --init lib/printf; fi
|
# while IFS= read -r x; do \
|
||||||
git submodule status --recursive 2>/dev/null | \
|
# case "$$x" in \
|
||||||
while IFS= read -r x; do \
|
# \ *) ;; \
|
||||||
case "$$x" in \
|
# *) printf "$(MSG_SUBMODULE_DIRTY)";break;; \
|
||||||
\ *) ;; \
|
# esac \
|
||||||
*) printf "$(MSG_SUBMODULE_DIRTY)";break;; \
|
# done
|
||||||
esac \
|
#endif
|
||||||
done
|
# rm -f $(ERROR_FILE) > /dev/null 2>&1
|
||||||
endif
|
# $(eval $(call PARSE_RULE,$@))
|
||||||
rm -f $(ERROR_FILE) > /dev/null 2>&1
|
# $(eval $(call SET_SILENT_MODE))
|
||||||
$(eval $(call PARSE_RULE,$@))
|
# # Run all the commands in the same shell, notice the + at the first line
|
||||||
$(eval $(call SET_SILENT_MODE))
|
# # it has to be there to allow parallel execution of the submake
|
||||||
# Run all the commands in the same shell, notice the + at the first line
|
# # This always tries to compile everything, even if error occurs in the middle
|
||||||
# it has to be there to allow parallel execution of the submake
|
# # But we return the error code at the end, to trigger travis failures
|
||||||
# This always tries to compile everything, even if error occurs in the middle
|
# # The sort at this point is to remove duplicates
|
||||||
# But we return the error code at the end, to trigger travis failures
|
# $(foreach COMMAND,$(sort $(COMMANDS)),$(RUN_COMMAND))
|
||||||
# The sort at this point is to remove duplicates
|
# if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
|
||||||
$(foreach COMMAND,$(sort $(COMMANDS)),$(RUN_COMMAND))
|
# $(foreach TEST,$(sort $(TESTS)),$(RUN_TEST))
|
||||||
if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
|
# if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
|
||||||
$(foreach TEST,$(sort $(TESTS)),$(RUN_TEST))
|
|
||||||
if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
|
bin/qmk makehandler $@
|
||||||
|
|
||||||
lib/%:
|
lib/%:
|
||||||
git submodule sync $?
|
git submodule sync $?
|
||||||
@ -557,13 +615,12 @@ else
|
|||||||
endif
|
endif
|
||||||
ifndef SKIP_VERSION
|
ifndef SKIP_VERSION
|
||||||
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
|
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
|
||||||
else
|
|
||||||
BUILD_DATE := 2020-01-01-00:00:00
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
|
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
|
||||||
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
|
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
|
||||||
$(shell echo '#define CHIBIOS_VERSION "$(CHIBIOS_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
|
$(shell echo '#define CHIBIOS_VERSION "$(CHIBIOS_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
|
||||||
$(shell echo '#define CHIBIOS_CONTRIB_VERSION "$(CHIBIOS_CONTRIB_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
|
$(shell echo '#define CHIBIOS_CONTRIB_VERSION "$(CHIBIOS_CONTRIB_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
|
||||||
|
else
|
||||||
|
BUILD_DATE := NA
|
||||||
|
endif
|
||||||
|
|
||||||
include $(ROOT_DIR)/testlist.mk
|
include $(ROOT_DIR)/testlist.mk
|
||||||
|
2
Vagrantfile
vendored
2
Vagrantfile
vendored
@ -89,7 +89,7 @@ Vagrant.configure(2) do |config|
|
|||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
make planck/rev4:default:dfu
|
make planck/rev4:default:dfu
|
||||||
make planck/rev4:default
|
make planck:default
|
||||||
|
|
||||||
EOT
|
EOT
|
||||||
end
|
end
|
||||||
|
@ -1 +0,0 @@
|
|||||||
theme: jekyll-theme-cayman
|
|
@ -1,5 +0,0 @@
|
|||||||
# QMK Keyboard Metadata
|
|
||||||
|
|
||||||
This directory contains machine parsable data about keyboards supported by QMK. The latest version is always available online at <https://keyboards.qmk.fm>.
|
|
||||||
|
|
||||||
Do not edit anything here by hand. It is generated with the `qmk generate-api` command.
|
|
3
bin/qmk
3
bin/qmk
@ -27,8 +27,7 @@ def _check_modules(requirements):
|
|||||||
line = line.split('#')[0]
|
line = line.split('#')[0]
|
||||||
|
|
||||||
module = dict()
|
module = dict()
|
||||||
module['name'] = line.split('=')[0] if '=' in line else line
|
module['name'] = module['import'] = line.split('=')[0] if '=' in line else line
|
||||||
module['import'] = module['name'].replace('-', '_')
|
|
||||||
|
|
||||||
# Not every module is importable by its own name.
|
# Not every module is importable by its own name.
|
||||||
if module['name'] == "pep8-naming":
|
if module['name'] == "pep8-naming":
|
||||||
|
@ -20,19 +20,13 @@
|
|||||||
# Sets the bootloader defined in the keyboard's/keymap's rules.mk
|
# Sets the bootloader defined in the keyboard's/keymap's rules.mk
|
||||||
# Current options:
|
# Current options:
|
||||||
#
|
#
|
||||||
# AVR:
|
# halfkay PJRC Teensy
|
||||||
# halfkay PJRC Teensy
|
# caterina Pro Micro (Sparkfun/generic)
|
||||||
# caterina Pro Micro (Sparkfun/generic)
|
# atmel-dfu Atmel factory DFU
|
||||||
# atmel-dfu Atmel factory DFU
|
# lufa-dfu LUFA DFU
|
||||||
# lufa-dfu LUFA DFU
|
# qmk-dfu QMK DFU (LUFA + blinkenlight)
|
||||||
# qmk-dfu QMK DFU (LUFA + blinkenlight)
|
# bootloadHID HIDBootFlash compatible (ATmega32A)
|
||||||
# bootloadHID HIDBootFlash compatible (ATmega32A)
|
# USBasp USBaspLoader (ATmega328P)
|
||||||
# USBasp USBaspLoader (ATmega328P)
|
|
||||||
# ARM:
|
|
||||||
# kiibohd Input:Club Kiibohd bootloader (only used on their boards)
|
|
||||||
# stm32duino STM32Duino (STM32F103x8)
|
|
||||||
# stm32-dfu STM32 USB DFU in ROM
|
|
||||||
# apm32-dfu APM32 USB DFU in ROM
|
|
||||||
#
|
#
|
||||||
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
|
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
|
||||||
# you add any possible configuration to this list
|
# you add any possible configuration to this list
|
||||||
@ -40,30 +34,30 @@
|
|||||||
ifeq ($(strip $(BOOTLOADER)), atmel-dfu)
|
ifeq ($(strip $(BOOTLOADER)), atmel-dfu)
|
||||||
OPT_DEFS += -DBOOTLOADER_ATMEL_DFU
|
OPT_DEFS += -DBOOTLOADER_ATMEL_DFU
|
||||||
OPT_DEFS += -DBOOTLOADER_DFU
|
OPT_DEFS += -DBOOTLOADER_DFU
|
||||||
ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
|
ifneq (,$(filter $(MCU), at90usb646 atmega16u2 atmega16u4 atmega32u2 atmega32u4))
|
||||||
BOOTLOADER_SIZE = 4096
|
BOOTLOADER_SIZE = 4096
|
||||||
endif
|
endif
|
||||||
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
|
ifeq ($(strip $(MCU)), at90usb1286)
|
||||||
BOOTLOADER_SIZE = 8192
|
BOOTLOADER_SIZE = 8192
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(strip $(BOOTLOADER)), lufa-dfu)
|
ifeq ($(strip $(BOOTLOADER)), lufa-dfu)
|
||||||
OPT_DEFS += -DBOOTLOADER_LUFA_DFU
|
OPT_DEFS += -DBOOTLOADER_LUFA_DFU
|
||||||
OPT_DEFS += -DBOOTLOADER_DFU
|
OPT_DEFS += -DBOOTLOADER_DFU
|
||||||
ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
|
ifneq (,$(filter $(MCU), at90usb646 atmega16u2 atmega16u4 atmega32u2 atmega32u4))
|
||||||
BOOTLOADER_SIZE = 4096
|
BOOTLOADER_SIZE = 4096
|
||||||
endif
|
endif
|
||||||
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
|
ifeq ($(strip $(MCU)), at90usb1286)
|
||||||
BOOTLOADER_SIZE = 8192
|
BOOTLOADER_SIZE = 8192
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(strip $(BOOTLOADER)), qmk-dfu)
|
ifeq ($(strip $(BOOTLOADER)), qmk-dfu)
|
||||||
OPT_DEFS += -DBOOTLOADER_QMK_DFU
|
OPT_DEFS += -DBOOTLOADER_QMK_DFU
|
||||||
OPT_DEFS += -DBOOTLOADER_DFU
|
OPT_DEFS += -DBOOTLOADER_DFU
|
||||||
ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
|
ifneq (,$(filter $(MCU), at90usb646 atmega16u2 atmega16u4 atmega32u2 atmega32u4))
|
||||||
BOOTLOADER_SIZE = 4096
|
BOOTLOADER_SIZE = 4096
|
||||||
endif
|
endif
|
||||||
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
|
ifeq ($(strip $(MCU)), at90usb1286)
|
||||||
BOOTLOADER_SIZE = 8192
|
BOOTLOADER_SIZE = 8192
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@ -95,45 +89,7 @@ ifeq ($(strip $(BOOTLOADER)), lufa-ms)
|
|||||||
BOOTLOADER_SIZE = 6144
|
BOOTLOADER_SIZE = 6144
|
||||||
FIRMWARE_FORMAT = bin
|
FIRMWARE_FORMAT = bin
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef BOOTLOADER_SIZE
|
ifdef BOOTLOADER_SIZE
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))
|
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(BOOTLOADER)), stm32-dfu)
|
|
||||||
OPT_DEFS += -DBOOTLOADER_STM32_DFU
|
|
||||||
|
|
||||||
# Options to pass to dfu-util when flashing
|
|
||||||
DFU_ARGS ?= -d 0483:DF11 -a 0 -s 0x08000000:leave
|
|
||||||
DFU_SUFFIX_ARGS ?= -v 0483 -p DF11
|
|
||||||
endif
|
|
||||||
ifeq ($(strip $(BOOTLOADER)), apm32-dfu)
|
|
||||||
OPT_DEFS += -DBOOTLOADER_APM32_DFU
|
|
||||||
|
|
||||||
# Options to pass to dfu-util when flashing
|
|
||||||
DFU_ARGS ?= -d 314B:0106 -a 0 -s 0x08000000:leave
|
|
||||||
DFU_SUFFIX_ARGS ?= -v 314B -p 0106
|
|
||||||
endif
|
|
||||||
ifeq ($(strip $(BOOTLOADER)), kiibohd)
|
|
||||||
OPT_DEFS += -DBOOTLOADER_KIIBOHD
|
|
||||||
ifeq ($(strip $(MCU_ORIG)), MK20DX128)
|
|
||||||
MCU_LDSCRIPT = MK20DX128BLDR4
|
|
||||||
endif
|
|
||||||
ifeq ($(strip $(MCU_ORIG)), MK20DX256)
|
|
||||||
MCU_LDSCRIPT = MK20DX256BLDR8
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Options to pass to dfu-util when flashing
|
|
||||||
DFU_ARGS = -d 1C11:B007
|
|
||||||
DFU_SUFFIX_ARGS = -v 1C11 -p B007
|
|
||||||
endif
|
|
||||||
ifeq ($(strip $(BOOTLOADER)), stm32duino)
|
|
||||||
OPT_DEFS += -DBOOTLOADER_STM32DUINO
|
|
||||||
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
|
|
||||||
BOARD = STM32_F103_STM32DUINO
|
|
||||||
# STM32F103 does NOT have an USB bootloader in ROM (only serial), so setting anything here does not make much sense
|
|
||||||
STM32_BOOTLOADER_ADDRESS = 0x80000000
|
|
||||||
|
|
||||||
# Options to pass to dfu-util when flashing
|
|
||||||
DFU_ARGS = -d 1EAF:0003 -a 2 -R
|
|
||||||
DFU_SUFFIX_ARGS = -v 1EAF -p 0003
|
|
||||||
endif
|
|
||||||
|
@ -30,4 +30,4 @@ $(TEST)_SRC += $(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp))
|
|||||||
|
|
||||||
$(TEST)_DEFS=$(TMK_COMMON_DEFS) $(OPT_DEFS)
|
$(TEST)_DEFS=$(TMK_COMMON_DEFS) $(OPT_DEFS)
|
||||||
$(TEST)_CONFIG=$(TEST_PATH)/config.h
|
$(TEST)_CONFIG=$(TEST_PATH)/config.h
|
||||||
VPATH+=$(TOP_DIR)/tests/test_common
|
VPATH+=$(TOP_DIR)/tests/test_common
|
@ -16,6 +16,7 @@ include common.mk
|
|||||||
KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD))
|
KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD))
|
||||||
TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP)
|
TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP)
|
||||||
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE)
|
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE)
|
||||||
|
STM32_PATH := quantum/stm32
|
||||||
|
|
||||||
# Force expansion
|
# Force expansion
|
||||||
TARGET := $(TARGET)
|
TARGET := $(TARGET)
|
||||||
@ -90,16 +91,13 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","")
|
|||||||
include $(KEYBOARD_PATH_1)/rules.mk
|
include $(KEYBOARD_PATH_1)/rules.mk
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
|
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
|
||||||
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
|
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
|
||||||
MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
|
MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
|
||||||
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
||||||
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
||||||
|
|
||||||
# Pull in rules from info.json
|
|
||||||
INFO_RULES_MK = $(shell bin/qmk generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk)
|
|
||||||
include $(INFO_RULES_MK)
|
|
||||||
|
|
||||||
# Check for keymap.json first, so we can regenerate keymap.c
|
# Check for keymap.json first, so we can regenerate keymap.c
|
||||||
include build_json.mk
|
include build_json.mk
|
||||||
|
|
||||||
@ -139,7 +137,9 @@ ifeq ($(strip $(CTPC)), yes)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
|
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
|
||||||
include platforms/chibios/QMK_PROTON_C/convert_to_proton_c.mk
|
TARGET := $(TARGET)_proton_c
|
||||||
|
include $(STM32_PATH)/proton_c.mk
|
||||||
|
OPT_DEFS += -DCONVERT_TO_PROTON_C
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(FORCE_LAYOUT),)
|
ifneq ($(FORCE_LAYOUT),)
|
||||||
@ -148,6 +148,12 @@ endif
|
|||||||
|
|
||||||
include quantum/mcu_selection.mk
|
include quantum/mcu_selection.mk
|
||||||
|
|
||||||
|
ifdef MCU_FAMILY
|
||||||
|
OPT_DEFS += -DQMK_STM32
|
||||||
|
KEYBOARD_PATHS += $(STM32_PATH)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Find all the C source files to be compiled in subfolders.
|
# Find all the C source files to be compiled in subfolders.
|
||||||
KEYBOARD_SRC :=
|
KEYBOARD_SRC :=
|
||||||
|
|
||||||
@ -273,36 +279,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","")
|
|||||||
POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h
|
POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Pull in stuff from info.json
|
|
||||||
INFO_JSON_FILES :=
|
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
|
|
||||||
INFO_JSON_FILES += $(KEYBOARD_PATH_1)/info.json
|
|
||||||
endif
|
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","")
|
|
||||||
INFO_JSON_FILES += $(KEYBOARD_PATH_2)/info.json
|
|
||||||
endif
|
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","")
|
|
||||||
INFO_JSON_FILES += $(KEYBOARD_PATH_3)/info.json
|
|
||||||
endif
|
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","")
|
|
||||||
INFO_JSON_FILES += $(KEYBOARD_PATH_4)/info.json
|
|
||||||
endif
|
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
|
|
||||||
INFO_JSON_FILES += $(KEYBOARD_PATH_5)/info.json
|
|
||||||
endif
|
|
||||||
|
|
||||||
CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h
|
|
||||||
|
|
||||||
$(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
|
|
||||||
bin/qmk generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h
|
|
||||||
|
|
||||||
$(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES)
|
|
||||||
bin/qmk generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h
|
|
||||||
|
|
||||||
generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h
|
|
||||||
|
|
||||||
.INTERMEDIATE : generated-files
|
|
||||||
|
|
||||||
# Userspace setup and definitions
|
# Userspace setup and definitions
|
||||||
ifeq ("$(USER_NAME)","")
|
ifeq ("$(USER_NAME)","")
|
||||||
USER_NAME := $(KEYMAP)
|
USER_NAME := $(KEYMAP)
|
||||||
@ -313,12 +289,6 @@ USER_PATH := users/$(USER_NAME)
|
|||||||
ifneq ("$(wildcard $(USER_PATH)/config.h)","")
|
ifneq ("$(wildcard $(USER_PATH)/config.h)","")
|
||||||
CONFIG_H += $(USER_PATH)/config.h
|
CONFIG_H += $(USER_PATH)/config.h
|
||||||
endif
|
endif
|
||||||
ifneq ("$(wildcard $(USER_PATH)/post_config.h)","")
|
|
||||||
POST_CONFIG_H += $(USER_PATH)/post_config.h
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Disable features that a keyboard doesn't support
|
|
||||||
-include disable_features.mk
|
|
||||||
|
|
||||||
# Object files directory
|
# Object files directory
|
||||||
# To put object files in current directory, use a dot (.), do NOT make
|
# To put object files in current directory, use a dot (.), do NOT make
|
||||||
@ -354,13 +324,6 @@ SRC += $(TMK_COMMON_SRC)
|
|||||||
OPT_DEFS += $(TMK_COMMON_DEFS)
|
OPT_DEFS += $(TMK_COMMON_DEFS)
|
||||||
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
|
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
|
||||||
|
|
||||||
SKIP_COMPILE := no
|
|
||||||
ifneq ($(REQUIRE_PLATFORM_KEY),)
|
|
||||||
ifneq ($(REQUIRE_PLATFORM_KEY),$(PLATFORM_KEY))
|
|
||||||
SKIP_COMPILE := yes
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(TMK_PATH)/$(PLATFORM_KEY).mk
|
include $(TMK_PATH)/$(PLATFORM_KEY).mk
|
||||||
ifneq ($(strip $(PROTOCOL)),)
|
ifneq ($(strip $(PROTOCOL)),)
|
||||||
include $(TMK_PATH)/protocol/$(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')).mk
|
include $(TMK_PATH)/protocol/$(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')).mk
|
||||||
@ -385,7 +348,7 @@ ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H)
|
|||||||
OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
|
OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
|
||||||
$(KEYMAP_OUTPUT)_SRC := $(SRC)
|
$(KEYMAP_OUTPUT)_SRC := $(SRC)
|
||||||
$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) \
|
$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) \
|
||||||
-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" \
|
-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH_1)/config.h\" \
|
||||||
-DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \
|
-DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \
|
||||||
-DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H
|
-DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H
|
||||||
$(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS)
|
$(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS)
|
||||||
@ -396,23 +359,10 @@ $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC)
|
|||||||
$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
|
$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
|
||||||
|
|
||||||
# Default target.
|
# Default target.
|
||||||
ifeq ($(SKIP_COMPILE),no)
|
|
||||||
all: build check-size
|
all: build check-size
|
||||||
else
|
|
||||||
all:
|
|
||||||
echo "skipped" >&2
|
|
||||||
endif
|
|
||||||
|
|
||||||
build: elf cpfirmware
|
build: elf cpfirmware
|
||||||
check-size: build
|
check-size: build
|
||||||
check-md5: build
|
|
||||||
objs-size: build
|
objs-size: build
|
||||||
|
|
||||||
include show_options.mk
|
include show_options.mk
|
||||||
include $(TMK_PATH)/rules.mk
|
include $(TMK_PATH)/rules.mk
|
||||||
|
|
||||||
# Ensure we have generated files available for each of the objects
|
|
||||||
define GEN_FILES
|
|
||||||
$1: generated-files
|
|
||||||
endef
|
|
||||||
$(foreach O,$(OBJ),$(eval $(call GEN_FILES,$(patsubst %.a,%.o,$(O)))))
|
|
||||||
|
@ -3,14 +3,8 @@ LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
|
|||||||
|
|
||||||
define SEARCH_LAYOUTS_REPO
|
define SEARCH_LAYOUTS_REPO
|
||||||
LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)
|
LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)
|
||||||
LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json
|
|
||||||
LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c
|
LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c
|
||||||
ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","")
|
ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
|
||||||
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
|
|
||||||
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
|
|
||||||
KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON)
|
|
||||||
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
|
|
||||||
else ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
|
|
||||||
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
|
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
|
||||||
KEYMAP_C := $$(LAYOUT_KEYMAP_C)
|
KEYMAP_C := $$(LAYOUT_KEYMAP_C)
|
||||||
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
|
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
|
||||||
@ -30,7 +24,4 @@ ifneq ($(FORCE_LAYOUT),)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
|
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
|
||||||
|
|
||||||
# Use rule from build_json.mk, but update prerequisite in case KEYMAP_JSON was updated
|
|
||||||
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
|
|
@ -17,7 +17,7 @@ OUTPUTS := $(TEST_OBJ)/$(TEST) $(GTEST_OUTPUT)
|
|||||||
GTEST_INC := \
|
GTEST_INC := \
|
||||||
$(LIB_PATH)/googletest/googletest/include\
|
$(LIB_PATH)/googletest/googletest/include\
|
||||||
$(LIB_PATH)/googletest/googlemock/include\
|
$(LIB_PATH)/googletest/googlemock/include\
|
||||||
|
|
||||||
GTEST_INTERNAL_INC :=\
|
GTEST_INTERNAL_INC :=\
|
||||||
$(LIB_PATH)/googletest/googletest\
|
$(LIB_PATH)/googletest/googletest\
|
||||||
$(LIB_PATH)/googletest/googlemock
|
$(LIB_PATH)/googletest/googlemock
|
||||||
@ -27,7 +27,7 @@ $(GTEST_OUTPUT)_SRC :=\
|
|||||||
googletest/src/gtest_main.cc\
|
googletest/src/gtest_main.cc\
|
||||||
googlemock/src/gmock-all.cc
|
googlemock/src/gmock-all.cc
|
||||||
|
|
||||||
$(GTEST_OUTPUT)_DEFS :=
|
$(GTEST_OUTPUT)_DEFS :=
|
||||||
$(GTEST_OUTPUT)_INC := $(GTEST_INC) $(GTEST_INTERNAL_INC)
|
$(GTEST_OUTPUT)_INC := $(GTEST_INC) $(GTEST_INTERNAL_INC)
|
||||||
|
|
||||||
LDFLAGS += -lstdc++ -lpthread -shared-libgcc
|
LDFLAGS += -lstdc++ -lpthread -shared-libgcc
|
||||||
@ -49,7 +49,6 @@ endif
|
|||||||
|
|
||||||
include common_features.mk
|
include common_features.mk
|
||||||
include $(TMK_PATH)/common.mk
|
include $(TMK_PATH)/common.mk
|
||||||
include $(QUANTUM_PATH)/sequencer/tests/rules.mk
|
|
||||||
include $(QUANTUM_PATH)/serial_link/tests/rules.mk
|
include $(QUANTUM_PATH)/serial_link/tests/rules.mk
|
||||||
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
|
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
|
||||||
include build_full_test.mk
|
include build_full_test.mk
|
||||||
@ -66,3 +65,4 @@ include $(TMK_PATH)/rules.mk
|
|||||||
|
|
||||||
$(shell mkdir -p $(BUILD_DIR)/test 2>/dev/null)
|
$(shell mkdir -p $(BUILD_DIR)/test 2>/dev/null)
|
||||||
$(shell mkdir -p $(TEST_OBJ) 2>/dev/null)
|
$(shell mkdir -p $(TEST_OBJ) 2>/dev/null)
|
||||||
|
|
||||||
|
@ -21,5 +21,4 @@ COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras
|
|||||||
COMMON_VPATH += $(QUANTUM_PATH)/audio
|
COMMON_VPATH += $(QUANTUM_PATH)/audio
|
||||||
COMMON_VPATH += $(QUANTUM_PATH)/process_keycode
|
COMMON_VPATH += $(QUANTUM_PATH)/process_keycode
|
||||||
COMMON_VPATH += $(QUANTUM_PATH)/api
|
COMMON_VPATH += $(QUANTUM_PATH)/api
|
||||||
COMMON_VPATH += $(QUANTUM_PATH)/sequencer
|
|
||||||
COMMON_VPATH += $(DRIVER_PATH)
|
COMMON_VPATH += $(DRIVER_PATH)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,46 +0,0 @@
|
|||||||
# This file maps keys between `config.h` and `info.json`. It is used by QMK
|
|
||||||
# to correctly and consistently map back and forth between the two systems.
|
|
||||||
{
|
|
||||||
# Format:
|
|
||||||
# <config.h key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
|
|
||||||
# value_type: one of "array", "array.int", "int", "hex", "list", "mapping"
|
|
||||||
# to_json: Default `true`. Set to `false` to exclude this mapping from info.json
|
|
||||||
# to_c: Default `true`. Set to `false` to exclude this mapping from config.h
|
|
||||||
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
|
|
||||||
"DEBOUNCE": {"info_key": "debounce", "value_type": "int"}
|
|
||||||
"DEVICE_VER": {"info_key": "usb.device_ver", "value_type": "hex"},
|
|
||||||
"DESCRIPTION": {"info_key": "keyboard_folder", "to_json": false},
|
|
||||||
"DIODE_DIRECTION": {"info_key": "diode_direction"},
|
|
||||||
"LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"},
|
|
||||||
"LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"},
|
|
||||||
"LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"},
|
|
||||||
"LED_SCROLL_LOCK_PIN": {"info_key": "indicators.scroll_lock"},
|
|
||||||
"MANUFACTURER": {"info_key": "manufacturer"},
|
|
||||||
"RGB_DI_PIN": {"info_key": "rgblight.pin"},
|
|
||||||
"RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"},
|
|
||||||
"RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"},
|
|
||||||
"RGBLIGHT_ANIMATIONS": {"info_key": "rgblight.animations.all", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_EFFECT_ALTERNATING": {"info_key": "rgblight.animations.alternating", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_EFFECT_BREATHING": {"info_key": "rgblight.animations.breathing", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_EFFECT_CHRISTMAS": {"info_key": "rgblight.animations.christmas", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_EFFECT_KNIGHT": {"info_key": "rgblight.animations.knight", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_EFFECT_RAINBOW_MOOD": {"info_key": "rgblight.animations.rainbow_mood", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_EFFECT_RAINBOW_SWIRL": {"info_key": "rgblight.animations.rainbow_swirl", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_EFFECT_RGB_TEST": {"info_key": "rgblight.animations.rgb_test", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_EFFECT_SNAKE": {"info_key": "rgblight.animations.snake", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_EFFECT_STATIC_GRADIENT": {"info_key": "rgblight.animations.static_gradient", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_EFFECT_TWINKLE": {"info_key": "rgblight.animations.twinkle"},
|
|
||||||
"RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"},
|
|
||||||
"RGBLIGHT_HUE_STEP": {"info_key": "rgblight.hue_steps", "value_type": "int"},
|
|
||||||
"RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"},
|
|
||||||
"RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"},
|
|
||||||
"RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"},
|
|
||||||
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"},
|
|
||||||
"PRODUCT": {"info_key": "keyboard_folder", "to_json": false},
|
|
||||||
"PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex"},
|
|
||||||
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"},
|
|
||||||
"QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"},
|
|
||||||
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
|
|
||||||
"QMK_LED": {"info_key": "qmk_lufa_bootloader.led"},
|
|
||||||
"QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
# This file maps keys between `rules.mk` and `info.json`. It is used by QMK
|
|
||||||
# to correctly and consistently map back and forth between the two systems.
|
|
||||||
{
|
|
||||||
# Format:
|
|
||||||
# <rules.mk key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
|
|
||||||
# value_type: one of "array", "array.int", "int", "list", "hex", "mapping"
|
|
||||||
# to_json: Default `true`. Set to `false` to exclude this mapping from info.json
|
|
||||||
# to_c: Default `true`. Set to `false` to exclude this mapping from rules.mk
|
|
||||||
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
|
|
||||||
"BOARD": {"info_key": "board"},
|
|
||||||
"BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
|
|
||||||
"LAYOUTS": {"info_key": "community_layouts", "value_type": "list"},
|
|
||||||
"LED_MATRIX_DRIVER": {"info_key": "led_matrix.driver"},
|
|
||||||
"MCU": {"info_key": "processor", "warn_duplicate": false},
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user