27 lines
No EOL
964 B
CMake
27 lines
No EOL
964 B
CMake
# 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() |