diff options
| -rw-r--r-- | cmake/kicad.cmake | 40 | ||||
| -rw-r--r-- | 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}" +)  | 
