aboutsummaryrefslogtreecommitdiff
path: root/cmake/kicad_generate_header.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/kicad_generate_header.cmake')
-rw-r--r--cmake/kicad_generate_header.cmake24
1 files changed, 18 insertions, 6 deletions
diff --git a/cmake/kicad_generate_header.cmake b/cmake/kicad_generate_header.cmake
index 930c5ed..85b1f9b 100644
--- a/cmake/kicad_generate_header.cmake
+++ b/cmake/kicad_generate_header.cmake
@@ -1,6 +1,6 @@
function(kicad_generate_header)
- set(options IN_SOURCE)
- set(oneValueArgs OUTPUT NET REF OUTPUT_DIR TEMPLATE TEMPLATE_LIB_LIST)
+ set(options IN_SOURCE ALL)
+ set(oneValueArgs OUTPUT NET REF OUTPUT_DIR TEMPLATE TEMPLATE_LIB_LIST TARGET)
cmake_parse_arguments(kicad_gen "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
@@ -42,16 +42,28 @@ function(kicad_generate_header)
endif ()
set(lib "-l;${CMAKE_CURRENT_SOURCE_DIR}")
- foreach(l IN LISTS kicad_gen_TEMPLATE_LIB_LIST)
- list(APPEND lib -l)
- list(APPEND lib "${l}")
+ foreach (l IN LISTS kicad_gen_TEMPLATE_LIB_LIST)
+ list(APPEND lib -l "${l}")
endforeach ()
- set(output_file "${output_dir}/${output}")
+ set(output_file "${output_dir}/${output}")
file(RELATIVE_PATH output_file_rel "${output_rel_dir}" ${output_file})
+ message("kicad_generate_header: output_file=${output_file}")
+ message("kicad_generate_header: output_file_rel=${output_file_rel}")
+
add_custom_command(OUTPUT "${output_file}"
COMMAND KicadUtils::generate-header -n ${NET} -r ${REF} -o ${output_file} ${t} ${template} ${lib}
MAIN_DEPENDENCY ${NET}
COMMENT "Generating ${output_file_rel}")
+
+ if (kicad_gen_TARGET)
+ set(target "${kicad_gen_TARGET}")
+ if (kicad_gen_ALL)
+ set(all ALL)
+ endif ()
+
+ add_custom_target("${target}" ${all} DEPENDS ${output_file})
+ endif ()
+
endfunction()