diff options
author | xengineering <me@xengineering.eu> | 2025-02-14 14:34:51 +0100 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2025-02-14 14:54:50 +0100 |
commit | 7b68bbb92296a2f3740bd6b22fec157197bf06fd (patch) | |
tree | 993bae4f676a1fcdd974ae5d6be11837abf59f5c /cmake | |
parent | 4e31ee88f737d593277c10530e980ab8ab2715c5 (diff) | |
download | iot-contact-7b68bbb92296a2f3740bd6b22fec157197bf06fd.tar iot-contact-7b68bbb92296a2f3740bd6b22fec157197bf06fd.tar.zst iot-contact-7b68bbb92296a2f3740bd6b22fec157197bf06fd.zip |
pcb: Export BOM as CSV with CMake
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/kicad.cmake | 28 |
1 files changed, 28 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() |