
    7j
                        d 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
mZ ddlmZmZ ddlmZmZmZ  ej&                  d	d
d ed       ed      d       ej&                  ddded       ej&                  ddddd       ej&                  ddee
dd       ej&                  dded        ej(                  d!d"      d#                                           Zy$)%zVUsed by the make system to generate dependency lists for each of the generated files.
    )Path)cli)FilesCompleter)
dump_lines)keyboard_completerkeyboard_folder)keymap_completerlocate_keymap)normpathFileTypeunix_style_pathfilename?Trz.jsonzA configurator export JSON.)nargsarg_onlytype	completerhelpz-oz--outputzFile to write to)r   r   r   z-qz--quiet
store_truez&Quiet mode, only output error messages)r   actionr   z-kbz
--keyboardz)Keyboard to generate dependency file for.)r   r   requiredr   z-kmz--keymapzSThe keymap to build a firmware for. Ignored when a configurator export is supplied.)r   r   z\Generates the list of dependencies associated with a keyboard build and its generated files.)hiddenc           
         g d}g }t        d      }t        d      | j                  j                  z  }||k7  r-|D ]  }|j                  ||z          |j                  }||k7  r-| j                  j
                  yt        | j                  j                  | j                  j
                        }|C|j                  |j                  dz         |D ]   }|j                  |j                  |z         " |D ]6  }|j                  t        d      | j                  j
                  z  |z         8 t        | j                  j                  |D cg c]  }dt        |       d c}       yc c}w )zAGenerates the list of dependent config files for a keyboard.
    )z	info.jsonzkeyboard.jsonzrules.mkzpost_rules.mkzconfig.hzpost_config.h	keyboardsNzkeymap.jsonuserszgenerated-files: $(wildcard z)
)
r   argskeyboardappendparentkeymapr
   r   outputr   )r   interesting_filescheck_fileskeyboards_rootparent_pathfilekmfounds           [/home/hanthebot/chat/keyboard/qmk_firmware/lib/python/qmk/cli/generate/make_dependencies.pygenerate_make_dependenciesr+      sR    K +&N{#chh&7&77K

'% 	3D{T12	3!(( 
' xx"388,,chhoo>>ryy=89) 5""299t#345 " C4=388??:TABC sxxit u`e#?PU@V?WWZ![ uv us   E,
N)__doc__pathlibr   milcr   argcomplete.completersr   qmk.commandsr   qmk.keyboardr   r   
qmk.keymapr	   r
   qmk.pathr   r   r   argument
subcommandr+        r*   <module>r8      s      1 # < 6 8 8 jd#R`ahRi  qN  OdJHCUVdI\Hpqe\CU`d  lW  XeZ+;  CX  Ynw{|$w } Y X r W O$wr7   