
    -Ph                        d dl mZ d dlZd dlZddlmZmZmZ ddlm	Z	 ddlm
Z
 ddlmZ dd	lmZmZmZ ej        r&d d
lmZ ddlmZ ddlmZ ddlmZ  G d de          Z G d de          ZddZdS )    )annotationsN   )ExtensionModuleModuleReturnValue
ModuleInfo   )build)mesonlib)CT_INPUT_KW)	KwargInfotyped_kwargstyped_pos_args)	TypedDict)ModuleState)Interpreter)ExternalProgramc                  $    e Zd ZU ded<   ded<   dS )ProjectKwargsz<T.List[T.Union[mesonlib.FileOrString, build.GeneratedTypes]]sourcesz4T.Union[mesonlib.FileOrString, build.GeneratedTypes]constraint_fileN)__name__
__module____qualname____annotations__     [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/modules/icestorm.pyr   r      s*         MMMMMMMMMMr   r   c                  4    e Zd Z eddd          Zd fd	ZddZ edeee	j
        ej        ej        ej        f           ed ej        d           edee	j
        ej        ej        ej        fd                    dd                        Z xZS )IceStormModulezFPGA/Icestormz0.45.0T)unstableinterpreterr   returnNonec                    t                                          |           i | _        | j                            d| j        i           d S )Nproject)super__init__toolsmethodsupdater%   )selfr!   	__class__s     r   r'   zIceStormModule.__init__   sR    %%%NP
t|
 	 	 	 	 	r   stater   c                (   |                     d          | j        d<   |                     d          | j        d<   |                     d          | j        d<   |                     d          | j        d<   |                     d          | j        d<   d S )Nyosyszarachne-pnrarachneicepackiceprogicetime)find_programr(   )r+   r-   s     r   detect_toolszIceStormModule.detect_tools%   s    #0099
7 % 2 2= A A
9 % 2 29 = =
9 % 2 29 = =
9 % 2 29 = =
9r   zicestorm.project)varargsr   )namer   )requiredargsJT.Tuple[str, T.List[T.Union[mesonlib.FileOrString, build.GeneratedTypes]]]kwargsr   r   c                f   | j         s|                     |           |\  }}| j                            t	          t          j        ||d                                       }t          j        | d|j	        |j
        |j        | j         d         ddddg|| dg          }t          j        | d	|j	        |j
        |j        | j         d
         dddddddg|d         |g| dg          }t          j        | d|j	        |j
        |j        | j         d         ddg|g| dgd          }	t          j        | d| j         d         |	gg |j	        |j
        |j                  }
t          j        | d| j         d         |	gg |j	        |j
        |j                  }t          d |||	|
|g          S )Nr   _blifr/   z-qz-pzsynth_ice40 -blif @OUTPUT@z@INPUT@z.blif_ascr0   z-d1kz-oz@OUTPUT@r   z.asc_binr1   z.binT)build_by_defaultz-uploadr2   z-timer3   )r(   r5   r!   source_strings_to_fileslist	itertoolschainr	   CustomTargetsubdir
subprojectenvironment	RunTargetr   )r+   r-   r9   r;   	proj_namearg_sourcesall_sourcesblif_target
asc_target
bin_targetupload_targettime_targets               r   r%   zIceStormModule.project,   s.    z 	%e$$$!%	;&>>fY.?@@AAC C (LZ $.JIV   !
 
 'LZ	"D$dItZX%&4 
 

 'LZ	"Iz:L !	
 	
 	

 !!!Z	"J/L
 
 oZ	"J/L
 
 !*j-MO O 	Or   )r!   r   r"   r#   )r-   r   r"   r#   )r-   r   r9   r:   r;   r   r"   r   )r   r   r   r   INFOr'   r5   r   strr
   Filer	   rF   CustomTargetIndexGeneratedListr   r   evolver   r%   __classcell__)r,   s   @r   r   r      s(       :ox$???D     > > > > ^& (-1CUE\"023 3 3 \	***	(-!3U5LeNab	
 	
 	
 <O <O <O 3 3<O <O <O <O <Or   r   interpr   r"   c                     t          |           S )N)r   )rZ   s    r   
initializer\   w   s    &!!!r   )rZ   r   r"   r   )
__future__r   rD   typingT r   r   r   r	   r
   interpreter.type_checkingr   interpreterbase.decoratorsr   r   r   TYPE_CHECKINGtyping_extensionsr   r   r!   r   programsr   r   r   r\   r   r   r   <module>rf      s   # " " " " "         < < < < < < < < < <             3 3 3 3 3 3 P P P P P P P P P P? 
N++++++))))))******N N N N N	 N N N
ZO ZO ZO ZO ZO_ ZO ZO ZOz" " " " " "r   