7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-21 23:13:43 +00:00

Cmake: avoid policy warning in newstorke upgrade target

This commit is contained in:
John Beard 2024-11-27 19:21:24 +08:00
parent 8470229767
commit 8de99b8077
2 changed files with 26 additions and 17 deletions

View File

@ -23,19 +23,19 @@ endif()
# KICAD_CLI_UPGRADE_SYMS(FILE TARGET [FORCE])
#
# Arguments:
# FILE - The symbol library file to upgrade
# FILES - The symbol library file to upgrade
# TARGET - The CMake target to add the upgrade command to
# FORCE - Optional argument to force the upgrade
#
function(KICAD_CLI_UPGRADE_SYMS FILE TARGET)
function(KICAD_CLI_UPGRADE_SYMS)
if (NOT KICAD_CLI)
message(FATAL_ERROR "Cannot run upgrade target (kicad-cli not found)")
endif()
# Parse the optional FORCE argument
set(options FORCE)
set(oneValueArgs)
set(multiValueArgs)
set(oneValueArgs TARGET)
set(multiValueArgs FILES)
cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
# Check if FORCE was provided
@ -45,11 +45,19 @@ function(KICAD_CLI_UPGRADE_SYMS FILE TARGET)
set(FORCE_ARG "")
endif()
add_custom_command(
TARGET ${TARGET}
COMMAND ${KICAD_CLI} sym upgrade ${FORCE_ARG} ${FILE}
DEPENDS ${FILE}
COMMENT
"Upgrading symbol lib format: ${FILE}"
)
# Validate required arguments
if(NOT ARGS_TARGET)
message(FATAL_ERROR "KICAD_CLI_UPGRADE_SYMS requires a TARGET argument")
endif()
foreach(FILE ${ARGS_FILES})
add_custom_command(
TARGET ${ARGS_TARGET}
PRE_BUILD
COMMAND ${KICAD_CLI} sym upgrade ${FORCE_ARG} ${FILE}
COMMENT
"Upgrading symbol lib format: ${FILE}"
)
endforeach()
endfunction()

View File

@ -23,6 +23,9 @@ set(NEWSTROKE_SOURCE_FILES
katakana.kicad_sym
)
# Make the files absolute (in-place)
list(TRANSFORM NEWSTROKE_SOURCE_FILES PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)
add_custom_command(
OUTPUT
@ -53,11 +56,9 @@ else()
COMMENT "Running format update on all newstroke .kicad_sym files"
)
foreach(NEWSTROKE_SOURCE_FILE ${NEWSTROKE_SOURCE_FILES})
KICAD_CLI_UPGRADE_SYMS(
${CMAKE_CURRENT_SOURCE_DIR}/${NEWSTROKE_SOURCE_FILE}
newstroke_upgrade_syms
)
endforeach()
KICAD_CLI_UPGRADE_SYMS(
TARGET newstroke_upgrade_syms
FILES ${NEWSTROKE_SOURCE_FILES}
)
endif()