-
-
Notifications
You must be signed in to change notification settings - Fork 39.9k
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
Implements subprojects and updates projects for this #459
Conversation
I'm currently converting the Ergodox to use sub-projects, following the above instructions. Almost all keymaps already compiles for both the Infinity and the EZ, so this far everything is going well. I think it would be good to add the following to the documentation(once it's properly documented) though
and
Should be at the bottom of the respective keyboard.h or config.h file, as we want to have the following order of parsing. If they are added to the top, then the order will be wrong.
And the include paths should be set as
A couple of examples, let's say a keymap has a config file
If there's no keymap config file the following will happen
|
* 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
* Move GH60 keymaps A couple of keyboard moves from qmk/qmk_firmware: - gh60 -> gh60/revc - satan -> gh60/satan * Rename Maartenwut keymaps Maartenwut now has a vendor-level directory in qmk/qmk_firmware. Rename keymap files as appropriate. - atom47 (revs. 2 and 3) - plain60 - wasdat * Update metadata for Maartenwut keymaps * Pretty-format Maartenwut keymaps * Add Maartenwut TA65 default keymap * Update exclusion list ... because the atom47 is on it.
Subprojects
Subproject folders are located at
/keyboards/<keyboard>/<subproject>
, and they can be compiled in a couple different ways:/keyboards/<keyboard>/ $ make sub=<subproject>
(preferred)/ $ make keyboard=<keyboard>/<subproject>
/keyboards/<keyboard>/<subproject>/ $ make
Keyboard files
Some modifications to the keyboard files are available:
/keyboards/<keyboard>/Makefile
can be added to specify a subproject by default. This is not required, but your
config.h
files should compensation for this./keyboards/<keyboard>/config.h
This is required if your keymaps or subprojects have
config.h
s in them./keyboards/<keyboard>/<keyboard>.h
can be added as a conditional to include the relevant subproject files when necessary.
Subproject files
The basic template for constructing subprojects looks like this:
/keyboards/<keyboard>/<subproject>/config.h
You can use
#undef <variable>
to override directives here./keyboards/<keyboard>/<subproject>/Makefile
/keyboards/<keyboard>/<subproject>/<subproject>.h
/keyboards/<keyboard>/<subproject>/<subproject>.c
The
planck
and theclueboard
use these by default for revisions.Travis build script
This script automatically pushes to the qmk.fm repo, and updates all information there. All .hex files are located in that repo, and are generated from these tests.