diff options
| -rw-r--r-- | cmake/kicad.cmake | 28 | ||||
| -rw-r--r-- | pcb/CMakeLists.txt | 3 | 
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")  | 
