
    7jU	                        d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d
 Z ej(                  ddddd       ej(                  ddedd       ej(                  ddddd       ej(                  ddddd       ej(                  ddddd       ej(                  dd dd!g d"#       ej,                  d$      d%                                                  Zy&)'    )Path)cli)QMK_USERSPACEHAS_QMK_USERSPACE)build_environment)UserspaceDefs)JsonKeymapBuildTarget)search_keymap_targets)mass_compile_targets)maybe_exit_configc                     || _         y )N)
extra_args)targetr   s     R/home/hanthebot/chat/keyboard/qmk_firmware/lib/python/qmk/cli/userspace/compile.py_extra_arg_setterr      s
    "F    z-tz	--no-tempT
store_truez$Remove temporary files during build.)arg_onlyactionhelpz-jz
--parallel   z8Set the number of parallel make jobs; 0 means unlimited.)typedefaultr   z-cz--cleanz%Remove object files before compiling.z-nz	--dry-runz7Don't actually build, just show the commands to be run.z-pz--print-failureszPrint failed builds.z-ez--envappendzBSet a variable to be passed to make. May be passed multiple times.)r   r   r   r   z=Compiles the build targets specified in userspace `qmk.json`.c                 0   t         s| j                  j                  d       yt        dd       t	        t
        dz        }g }g }|j                  D ]c  }t        |t              r|j                  t        |             .t        |t              s?d|v r|d   nd }|j                  |d   |d   |f       e t        |      d	kD  r|j                  t        |             t        t!        t#        |            | j$                  j&                  | j$                  j(                  | j*                  j,                  j.                  | j*                  j,                  j0                  | j$                  j2                  fi t5        | j$                  j6                        S )
NzjCould not determine QMK userspace location. Please run `qmk doctor` or `qmk userspace-doctor` to diagnose.FT)should_exitshould_reraisezqmk.jsonenvkeyboardkeymapr   )r   logerrorr   r   r   build_targets
isinstancer   r   r	   dictlenextendr
   r   listsetargscleandry_runconfiguserspace_compileno_tempparallelprint_failuresr   r   )r   	userspacer#   keyboard_keymap_targetsefs         r   r.   r.      s      C  	D%=mj89IM $$ La  !6q!9:4 !QJ%DA#**AjM1X;+JKL "#a'23JKLS%7 8#((..#((JZJZ\_\f\f\x\x  ]A  ]A  CF  CM  CM  C_  C_  Ch  Ch  jm  jr  jr  jA  jA  e  EV  WZ  W_  W_  Wc  Wc  Ed  e  er   N)pathlibr   milcr   qmk.constantsr   r   qmk.commandsr   qmk.userspacer   qmk.build_targetsr	   
qmk.searchr
   qmk.cli.mass_compiler   qmk.utilr   r   argumentint
subcommandr.    r   r   <module>rC      s	     : * ' 3 , 5 &# dK$|JpqdLsA<vwdI\HopdK$|  KD  Ed&lQghdGd8R  OS  TOPe Q T i E q x rer   