aboutsummaryrefslogtreecommitdiff
path: root/src/ee/tools/templates/build.ninja.j2
diff options
context:
space:
mode:
Diffstat (limited to 'src/ee/tools/templates/build.ninja.j2')
-rw-r--r--src/ee/tools/templates/build.ninja.j290
1 files changed, 44 insertions, 46 deletions
diff --git a/src/ee/tools/templates/build.ninja.j2 b/src/ee/tools/templates/build.ninja.j2
index d742791..9fff519 100644
--- a/src/ee/tools/templates/build.ninja.j2
+++ b/src/ee/tools/templates/build.ninja.j2
@@ -1,6 +1,7 @@
{% set reports=[] -%}
ee = {{ ee }}
uuid = {{ project.uuid }}
+public_dir = {{ project.public_dir }}
report_dir = {{ project.report_dir }}
{%- if sch is defined %}
sch = {{ sch | ninja_path }}
@@ -56,7 +57,7 @@ rule create-bom
command = $ee create-bom {{ log }} --schematic $schematic --part-db $part_dbs --out $out $strategy
rule split-parts-by-supplier
- command = $ee split-parts-by-supplier {{ log }} --parts $order $part_dbs --out-dir $out_dir
+ command = $ee split-parts-by-supplier {{ log }} --parts $in --out $out $part_dbs
rule import-parts-yaml
description = import-parts-yaml $in
@@ -84,9 +85,9 @@ default gerbers
{% if sch is defined -%}
{%- set cfg = project.cfg["kicad-project"] %}
-build ee/kicad/sch.xml: kicad-make-bom $sch
+build $public_dir/kicad/sch.xml: kicad-make-bom $sch
{#
-build ee/sch.xml: part-apply-function ee/kicad/sch.xml
+build $public_dir/sch.xml: part-apply-function $public_dir/kicad/sch.xml
execution = kicad
{%- if cfg and "functions" in cfg and cfg["functions"] %}
functions = --function {{ cfg["functions"] }}
@@ -96,42 +97,42 @@ build ee/sch.xml: part-apply-function ee/kicad/sch.xml
{%- endif %}
#}
-build ee/kicad/souffle/facts.dl: part-apply-souffle-pre ee/kicad/sch.xml
- work = ee/kicad/souffle
+build $public_dir/kicad/souffle/facts.dl: part-apply-souffle-pre $public_dir/kicad/sch.xml
+ work = $public_dir/kicad/souffle
-build ee/kicad/souffle/out/fact.csv: souffle {{ kicad_souffle_dl if kicad_souffle_dl else souffle_ee_src + "/kicad.dl" }} | ee/kicad/souffle/facts.dl
- work = ee/kicad/souffle
+build $public_dir/kicad/souffle/out/fact.csv: souffle {{ kicad_souffle_dl if kicad_souffle_dl else souffle_ee_src + "/kicad.dl" }} | $public_dir/kicad/souffle/facts.dl
+ work = $public_dir/kicad/souffle
{#- includes = {{ (souffle_ee_src + "/kicad.dl") if kicad_souffle_dl else "" }}#}
-build ee/sch.xml: part-apply-souffle-post ee/kicad/souffle/out/fact.csv
- in_sch = ee/kicad/sch.xml
- work = ee/kicad/souffle
+build $public_dir/sch.xml: part-apply-souffle-post $public_dir/kicad/souffle/out/fact.csv
+ in_sch = $public_dir/kicad/sch.xml
+ work = $public_dir/kicad/souffle
{%- endif %}
-build $report_dir/part-validate-parts.rst: part-validate-parts ee/bom.xml ee/sch.xml
- sch = ee/sch.xml
- bom = ee/bom.xml
- part_dbs ={%- for p in part_dbs %} {{ p }}.xml{% endfor %}
+build $report_dir/part-validate-parts.rst: part-validate-parts $public_dir/bom.xml $public_dir/sch.xml
+ sch = $public_dir/sch.xml
+ bom = $public_dir/bom.xml
+ part_dbs ={%- for s in suppliers %} {{ s.part_db }}{% endfor %}
{%- set reports=reports+["$report_dir/part-validate-parts.rst"] %}
{#- TODO: complete
-build ee/requirements.xml | $report_dir/requirements.rst: part-find-requirements ee/sch.xml
+build $public_dir/requirements.xml | $report_dir/requirements.rst: part-find-requirements $public_dir/sch.xml
report = --report $report_dir/requirements.rst
{%- set reports=reports+["$report_dir/requirements.rst"] %}
#}
-{% for s in distributors %}
-{%- set cfg = project.cfg["supplier:" + s] if "supplier:" + s in project.cfg else None %}
-# Supplier {{ s }}
-build ee/{{ s }}/pn-part-search-list.xml: pn-part-search-list ee/sch.xml
- supplier = {{ s }}
+{% for s in suppliers %}
+{%- set cfg = project.cfg["supplier:" + s.key] if "supplier:" + s.key in project.cfg else None %}
+# Supplier {{ s.key }}
+build $public_dir/{{ s.key }}/pn-part-search-list.xml: pn-part-search-list $public_dir/sch.xml
+ supplier = {{ s.key }}
-build ee/{{ s }}/downloaded.xml | ee/{{ s }}/downloaded.rst: {{ s }}-search-parts ee/{{ s }}/pn-part-search-list.xml
-{%- set reports=reports+["$report_dir/" + s + "/downloaded.rst"] %}
+build $public_dir/{{ s.key }}/downloaded.xml | $public_dir/{{ s.key }}/downloaded.rst: {{ s.key }}-search-parts $public_dir/{{ s.key }}/pn-part-search-list.xml
+{%- set reports=reports+["$report_dir/" + s.key + "/downloaded.rst"] %}
{#
-build ee/{{ s }}/parts.xml: part-apply-function ee/{{ s }}/downloaded.xml
- execution = {{ s }}
+build $public_dir/{{ s.key }}/parts.xml: part-apply-function $public_dir/{{ s.key }}/downloaded.xml
+ execution = {{ s.key }}
{%- if cfg and "functions" in cfg and cfg["functions"] %}
functions = --function {{ cfg["functions"] }}
{%- endif %}
@@ -139,17 +140,17 @@ build ee/{{ s }}/parts.xml: part-apply-function ee/{{ s }}/downloaded.xml
arguments = --argument {{ cfg["function-arguments"] }}
{%- endif %}
#}
-build ee/{{ s }}/souffle/facts.dl: part-apply-souffle-pre ee/{{ s }}/downloaded.xml
- work = ee/{{ s }}/souffle
+build $public_dir/{{ s.key }}/souffle/facts.dl: part-apply-souffle-pre $public_dir/{{ s.key }}/downloaded.xml
+ work = $public_dir/{{ s.key }}/souffle
-{%- set main=souffle_ee_src + "/" + s + ".dl" %}
-{%- set alt="ee/custom/" + s + "-souffle.dl" %}
-build ee/{{ s }}/souffle/out/fact.csv: souffle {{ alt if is_file(alt) else main }} | {{ main }} ee/{{ s }}/souffle/facts.dl
- work = ee/{{ s }}/souffle
+{%- set main=souffle_ee_src + "/" + s.key + ".dl" %}
+{%- set alt="$public_dir/custom/" + s.key + "-souffle.dl" %}
+build $public_dir/{{ s.key }}/souffle/out/fact.csv: souffle {{ alt if is_file(alt) else main }} | {{ main }} $public_dir/{{ s.key }}/souffle/facts.dl
+ work = $public_dir/{{ s.key }}/souffle
-build ee/{{ s }}/parts.xml: part-apply-souffle-post ee/{{ s }}/souffle/out/fact.csv
- in_sch = ee/{{ s }}/downloaded.xml
- work = ee/{{ s }}/souffle
+build {{ s.part_db }}: part-apply-souffle-post $public_dir/{{ s.key }}/souffle/out/fact.csv
+ in_sch = $public_dir/{{ s.key }}/downloaded.xml
+ work = $public_dir/{{ s.key }}/souffle
{%- endfor %}
{%- for f in parts_yaml_files %}
@@ -158,21 +159,18 @@ 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 %}
+build $public_dir/bom.xml | $report_dir/bom.rst: create-bom $public_dir/sch.xml {%- for s in suppliers %} {{ s.part_db }}{% endfor %}
+ schematic = $public_dir/sch.xml
+ part_dbs = {%- for s in suppliers %} {{ s.part_db }}{% endfor %}
{%- if project.cfg["create-bom"] and project.cfg["create-bom"]["strategy"] %}
strategy = --strategy {{ project.cfg["create-bom"]["strategy"] }}
{%- endif %}
{%- set reports=reports+["$report_dir/bom.rst"] %}
-{#- TODO: complete
-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
+{#
+build $public_dir/orders/index.xml: split-parts-by-supplier $public_dir/bom.xml | {%- for s in suppliers %} {{ s.part_db }}{% endfor %}
+ part_dbs ={%- for s in suppliers %} {{ s.part_db }}{% endfor %}
+ suppliers = {% s for s in suppliers %}
#}
rule seeed-download-opl
@@ -181,16 +179,16 @@ rule seeed-download-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 %}
+build seeed-download-opls: phony {%- for opl in opls %} $public_dir/seeed/opl/{{ opl.strip() }}.xml{% endfor %}
{%- for opl in opls %}
{%- set opl=opl.strip() %}
-build ee/seeed/opl/{{ opl }}.xml: seeed-download-opl
+build $public_dir/seeed/opl/{{ opl }}.xml: seeed-download-opl
opl = {{ opl }}
{%- endfor %}
{%- endif %}
# Reports
build ee-reports: phony {{ " ".join(reports) }}
-build part-dbs: phony {%- for p in part_dbs %} {{ p }}.xml{% endfor %}
+build part-dbs: phony {%- for s in suppliers %} {{ s.part_db }}{% endfor %}
build ee-all: phony ee-reports part-dbs