# Common code used across the different tests if(NOT DEFINED CBINDGEN_PATH) message(FATAL_ERROR "Path to cbindgen not specified") endif() # Promote to cache set(CBINDGEN_PATH "${CBINDGEN_PATH}" CACHE INTERNAL "") function(add_cbindgen_command custom_target_name header_destination) # Place the depfile always at the same location, so the outer test framework can locate the file easily set(depfile_destination "${CMAKE_BINARY_DIR}/depfile.d") add_custom_command( OUTPUT "${header_destination}" "${depfile_destination}" COMMAND "${CBINDGEN_PATH}" --output "${header_destination}" --depfile "${depfile_destination}" ${ARGN} DEPFILE "${depfile_destination}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" COMMENT "Running cbindgen" COMMAND_EXPAND_LISTS ) add_custom_target("${custom_target_name}" ALL DEPENDS "${header_destination}") endfunction()