ee = {{ ee }} report_dir = {{ project.report_dir }} {%- if sch is defined %} sch = {{ sch | ninja_path }} sch_files = {{ sch_files | ninja_path }} {%- endif %} {%- if pcb is defined %} pcb = {{ pcb | ninja_path }} {%- endif %} rule kicad-gerber description = kicad-gerber command = $ee kicad-gerber $ --output-dir $gerber_dir $ --pcb $pcb # mkdir -p $( # (cd $(GERBER_DIR); zip tmp.zip $(foreach GBR,$(GERBERS),$(notdir $(GBR)))) # mv $(GERBER_DIR)/tmp.zip $@ rule kicad-make-bom description = kicad-make-bom $out command = $ee kicad-make-bom --sch $sch --out $out $strategy rule pn-part-search-list description = pn-part-search-list supplier: $supplier command = $ee pn-part-search-list --in $in --out $out --supplier $supplier rule digikey-search-parts description = digikey-search-parts command = $ee digikey-search-parts --in $in --out $out rule digikey-normalize-facts description = digikey-normalize-facts command = $ee digikey-normalize-facts --in $in --out $out rule element14-search-parts description = element14-search-parts command = $ee element14-search-parts --in $in --out $out rule element14-normalize-facts description = element14-normalize-facts command = $ee element14-normalize-facts --in $in --out $out rule create-bom description = create-bom command = $ee create-bom --schematic $schematic --part-db $part_dbs --out $out $strategy rule split-parts-by-supplier description = split-parts-by-supplier command = $ee split-parts-by-supplier --parts $order $part_dbs --out-dir $out_dir rule import-parts-yaml description = import-parts-yaml $in command = $ee import-parts-yaml --in $in --out $out {% if gerber_zip is defined %} build gerbers: phony {{ gerber_zip }} build {{ gerber_zip }}: kicad-gerber $pcb gerber_dir = {{ gerber_zip | parent_dir }} {%- endif %} {% if sch is defined -%} build ee/sch.xml: kicad-make-bom $sch {%- if project.cfg["kicad-project"]["strategy"] %} strategy = --strategy {{ project.cfg["kicad-project"]["strategy"] }} {%- endif %} {%- endif %} {% for s in distributors %} # Supplier {{ s }} build ee/{{ s }}/search-list.xml: pn-part-search-list ee/sch.xml supplier = {{ s }} build ee/{{ s }}/downloaded.xml: {{ s }}-search-parts ee/{{ s }}/search-list.xml build ee/{{ s }}/parts.xml: {{ s }}-normalize-facts ee/{{ s }}/downloaded.xml default ee/{{ s }}/parts.xml {%- endfor %} {%- for f in parts_yaml_files %} {% set out=(f | parent_dir) / ((f | noext) + ".xml") %} build {{ out }}: import-parts-yaml {{ f }} # default {{ out }} {% endfor %} build ee/bom.xml | $report_dir/bom.rst: create-bom ee/sch.xml {%- for p in part_dbs %} {{ p }}.xml{% endfor %} schematic = ee/sch.xml part_dbs ={%- for p in part_dbs %} {{ p }}.xml{% endfor %} {%- if project.cfg["create-bom"] and project.cfg["create-bom"]["strategy"] %} strategy = --strategy {{ project.cfg["create-bom"]["strategy"] }} {%- endif %} build ee/orders/index.xml: split-parts-by-supplier ee/bom.xml {%- for p in part_dbs %} {{ p }}.xml{% endfor %} order = ee/bom.xml part_dbs ={%- for p in part_dbs %} --part-db {{ p }}.xml{% endfor %} out_dir = ee/orders default ee/orders/index.xml rule seeed-download-opl description = seeed-download-opl $opl command = $ee seeed-download-opl --out $out --opl $opl {% if project.cfg.has_section("seeed-opl") %} {%- set opls=project.cfg["seeed-opl"]["opls"].split(",") -%} build seeed-download-opls: phony{%- for opl in opls %} ee/seeed/opl/{{ opl.strip() }}.xml{% endfor %} {%- for opl in opls %} {% set opl=opl.strip() -%} build ee/seeed/opl/{{ opl }}.xml: seeed-download-opl opl = {{ opl }} {% endfor -%} {% endif -%}