summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/kicad.cmake28
-rw-r--r--pcb/CMakeLists.txt3
2 files changed, 31 insertions, 0 deletions
diff --git a/cmake/kicad.cmake b/cmake/kicad.cmake
index 126d2e4..6c2f612 100644
--- a/cmake/kicad.cmake
+++ b/cmake/kicad.cmake
@@ -12,6 +12,8 @@ function(kicad_schematic_to_pdf source target)
kicad-cli sch export pdf --output ${pdf} ${source}
DEPENDS
${source}
+ JOB_POOL
+ kicad
)
add_custom_target(
@@ -21,3 +23,29 @@ function(kicad_schematic_to_pdf source target)
${pdf}
)
endfunction()
+
+function(kicad_bom_to_csv source target)
+ get_filename_component(name ${source} NAME)
+ get_filename_component(dir ${source} DIRECTORY)
+ file(RELATIVE_PATH rel "${CMAKE_SOURCE_DIR}" "${dir}")
+ set(name_csv "${name}.csv")
+ set(csv ${CMAKE_BINARY_DIR}/${rel}/${name_csv})
+
+ add_custom_command(
+ OUTPUT
+ ${csv}
+ COMMAND
+ kicad-cli sch export bom --output ${csv} ${source}
+ DEPENDS
+ ${source}
+ JOB_POOL
+ kicad
+ )
+
+ add_custom_target(
+ "${target}"
+ ALL
+ DEPENDS
+ ${csv}
+ )
+endfunction()
diff --git a/pcb/CMakeLists.txt b/pcb/CMakeLists.txt
index 1881157..abe84dc 100644
--- a/pcb/CMakeLists.txt
+++ b/pcb/CMakeLists.txt
@@ -4,5 +4,8 @@ project(iot-contact-pcb LANGUAGES NONE)
include(kicad)
+set_property(GLOBAL PROPERTY JOB_POOLS kicad=1)
+
set(schematic "${CMAKE_CURRENT_SOURCE_DIR}/iot-contact.kicad_sch")
kicad_schematic_to_pdf("${schematic}" "pcb-schematic-pdf")
+kicad_bom_to_csv("${schematic}" "pcb-bom-csv")