From 7a561e43809c9cfac13fba3e572844041ea6411b Mon Sep 17 00:00:00 2001 From: xengineering Date: Fri, 14 Feb 2025 15:04:59 +0100 Subject: pcb: Rename targets, functions and output files This simplifies the CMake code and the paths inside the build folder. --- cmake/kicad.cmake | 40 ++++++++++++++-------------------------- pcb/CMakeLists.txt | 14 ++++++++++++-- 2 files changed, 26 insertions(+), 28 deletions(-) diff --git a/cmake/kicad.cmake b/cmake/kicad.cmake index 6c2f612..469b3a5 100644 --- a/cmake/kicad.cmake +++ b/cmake/kicad.cmake @@ -1,51 +1,39 @@ -function(kicad_schematic_to_pdf source target) - get_filename_component(name ${source} NAME) - get_filename_component(dir ${source} DIRECTORY) - file(RELATIVE_PATH rel "${CMAKE_SOURCE_DIR}" "${dir}") - set(name_pdf "${name}.pdf") - set(pdf ${CMAKE_BINARY_DIR}/${rel}/${name_pdf}) +function(kicad_schematic_pdf target sink source) + add_custom_target( + "${target}" + ALL + DEPENDS + ${sink} + ) add_custom_command( OUTPUT - ${pdf} + ${sink} COMMAND - kicad-cli sch export pdf --output ${pdf} ${source} + kicad-cli sch export pdf --output ${sink} ${source} DEPENDS ${source} JOB_POOL kicad ) +endfunction() +function(kicad_bom_csv target sink source) add_custom_target( "${target}" ALL DEPENDS - ${pdf} + ${sink} ) -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} + ${sink} COMMAND - kicad-cli sch export bom --output ${csv} ${source} + kicad-cli sch export bom --output ${sink} ${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 abe84dc..8d2c49a 100644 --- a/pcb/CMakeLists.txt +++ b/pcb/CMakeLists.txt @@ -7,5 +7,15 @@ 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") + +kicad_schematic_pdf( + "schematic" + "${CMAKE_CURRENT_BINARY_DIR}/schematic.pdf" + "${schematic}" +) + +kicad_bom_csv( + "bom" + "${CMAKE_CURRENT_BINARY_DIR}/bom.csv" + "${schematic}" +) -- cgit v1.2.3-70-g09d2