1function(hdf_add_signing_command target)
2    set(options)
3    set(oneValArgs FILE)
4    set(multiValArgs)
5    cmake_parse_arguments(ARG "${options}" "${oneValArgs}" "${multiValArgs}" ${ARGN})
6
7    if (ARG_UNPARSED_ARGUMENTS)
8        message(FATAL_ERROR "Unexpected arguments to hdf_add_signing_command: ${ARG_UNPARSED_ARGUMENTS}")
9    endif()
10
11    if (NOT APPLE AND NOT WIN32)
12        message(FATAL_ERROR "hdf_add_signing_command called on unsupported platform - platform=${CMAKE_SYSTEM_NAME}, target=${target}")
13    endif()
14
15    if (NOT ARG_FILE)
16        set(ARG_FILE $<TARGET_FILE:${target}>)
17    endif()
18
19    add_custom_command(
20        TARGET ${target}
21        POST_BUILD
22            COMMAND ${CMAKE_COMMAND} -P ${HDF_PLUGIN_SOURCE_DIR}/cmake/SignFile.cmake ${ARG_FILE}
23            COMMENT "Signing ${target}"
24    )
25endfunction()
26