It is possible to speed up compilation by adding the `-j`/`--parallel` flag.
```
qmk compile -j <num_jobs> -kb <keyboard_name>
```
The `num_jobs` argument determines the maximum number of jobs that can be used. Setting it to zero will enable parallel compilation without limiting the maximum number of jobs.
```
qmk compile -j 0 -kb <keyboard_name>
```
## `qmk flash`
This command is similar to `qmk compile`, but can also target a bootloader. The bootloader is optional, and is set to `:flash` by default. To specify a different bootloader, use `-bl <bootloader>`. Visit the [Flashing Firmware](flashing.md) guide for more details of the available bootloaders.
@ -82,13 +93,13 @@ This command is directory aware. It will automatically fill in KEYBOARD and/or K
@ -18,7 +18,7 @@ from qmk.keymap import keymap_completer
@cli.argument('-kb','--keyboard',type=keyboard_folder,completer=keyboard_completer,help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.')
@cli.argument('-km','--keymap',completer=keymap_completer,help='The keymap to build a firmware for. Ignored when a configurator export is supplied.')
@cli.argument('-n','--dry-run',arg_only=True,action='store_true',help="Don't actually build, just show the make command to be run.")
@cli.argument('-j','--parallel',type=int,default=1,help="Set the number of parallel make jobs to run.")
@cli.argument('-j','--parallel',type=int,default=1,help="Set the number of parallel make jobs; 0 means unlimited.")
@cli.argument('-e','--env',arg_only=True,action='append',default=[],help="Set a variable to be passed to make. May be passed multiple times.")
@cli.argument('-c','--clean',arg_only=True,action='store_true',help="Remove object files before compiling.")
@cli.argument('-km','--keymap',help='The keymap to build a firmware for. Use this if you dont have a configurator file. Ignored when a configurator file is supplied.')
@cli.argument('-kb','--keyboard',type=keyboard_folder,completer=keyboard_completer,help='The keyboard to build a firmware for. Use this if you dont have a configurator file. Ignored when a configurator file is supplied.')
@cli.argument('-n','--dry-run',arg_only=True,action='store_true',help="Don't actually build, just show the make command to be run.")
@cli.argument('-j','--parallel',type=int,default=1,help="Set the number of parallel make jobs to run.")
@cli.argument('-j','--parallel',type=int,default=1,help="Set the number of parallel make jobs; 0 means unlimited.")
@cli.argument('-e','--env',arg_only=True,action='append',default=[],help="Set a variable to be passed to make. May be passed multiple times.")
@cli.argument('-c','--clean',arg_only=True,action='store_true',help="Remove object files before compiling.")
@cli.argument('-j','--parallel',type=int,default=1,help="Set the number of parallel make jobs to run.")
@cli.argument('-j','--parallel',type=int,default=1,help="Set the number of parallel make jobs; 0 means unlimited.")
@cli.argument('-c','--clean',arg_only=True,action='store_true',help="Remove object files before compiling.")
@cli.argument('-f','--filter',arg_only=True,action='append',default=[],help="Filter the list of keyboards based on the supplied value in rules.mk. Supported format is 'SPLIT_KEYBOARD=yes'. May be passed multiple times.")
@cli.argument('-km','--keymap',type=str,default='default',help="The keymap name to build. Default is 'default'.")