
    ve	                     f    d dl Z d dlmZ d dlmZ  e            ZddZd Zd Zd Z	d	 Z
d
 Zd ZdS )    N)Path)DefaultEnvironmentFc                     |                                  D ]S}|                                r t          j        |||j        z  ||           6t          j        |||j        z             Td S )N)iterdiris_dirshutilcopytreenamecopy2)srcdstsymlinksignoreitems        >D:\Marlin-2.1.1.1\buildroot\share\PlatformIO\scripts\marlin.pyr	   r	      sm    [[]] ' 'T	[[]] '	?4ty(F;;;;	<cDIo&&&&	' '    c                     t           d                                         }|D ].}|d         | k    r t           d                             |           /t           d                             | |f           d S )N
CPPDEFINESr   )envcopyremoveappend)fieldvalueenvdefsdefines       r   replace_definer      ss    |!!## $ $VAY%|F###\5%.)))))r   c                 &    t          d|            d S )NVECT_TAB_ADDRr   addresss    r   relocate_firmwarer#      s    )))))r   c                 &    t          d|            d S )NVECT_TAB_OFFSETr    r!   s    r   relocate_vtabr&      s    !7+++++r   c                    t          t          d|                                                     }t          t          d                   D ]6\  }}d|v rd|z   t          d         |<   |dk    r|t          d         |dz   <   7d S )Nz$buildroot/share/PlatformIO/ldscripts	LINKFLAGSz-Wl,-Tz-T   )strr   resolve	enumerater   )ldnameapathiflags       r   custom_ld_scriptr1   "   s    	T8&AAIIKK	L	L#k*++ # #WQ!E)3{At||"3{AE	# #r   c                 \   dd l }g d}|d         }d|v r|d         }t          |d         j                  }|                    d          }t          |d         j        j        |                              d          }	|                                j        }
d}	 ||
k     r|                    d          }d|cxk    rd	k     rLn nIt          t          |          ||d
z           z            }|j
        d         dk    rt          |d          }|	                    |           |dz  }||
k     |                                 |	                                 |                                 d S # |                                 |	                                 |                                 w xY w)Nr   )             A                  -                  &         3   J         
         <      r9         >   MARLIN_FEATURESFIRMWARE_BINrbwbr)   i@  i@y        latin1)sysr   pathopendirstatst_sizereadchrordversion_infobyteswritecloseunlink)sourcetargetr   new_namerY   keymffwpathfwfileenfilelengthpositionbytes                r   encrypt_mksrr   ,   s    H  H  H 

bR%7(
vay~


++d


vay}!8
,
,
1
1$
7
7
++--
6
++a..4	Xs4yy3x"}--..D
Q$!!T	<<q=8 	6 	,,...,,...--///// 	,,...,,...--////s   BE- ->F+c                 r    t                               t          t          dd                    |            d S )Nz
$BUILD_DIRz${PROGNAME}.bin)r   AddPostActionr*   r   )actions    r   add_post_actionrv   H   s1    3tL*;<<==vFFFFFr   )FN)r   pathlibr   SCons.Scriptr   r   r	   r   r#   r&   r1   rr   rv    r   r   <module>rz      s   
        + + + + + +' ' ' '* * ** * *, , ,# # #  8H H H H Hr   