# Encode Testcase.pbtxt to Testcase.pb
#
set(TEST_PBTXT_FILE "test.pbtxt")
+set(TEST_REPO "${CMAKE_CURRENT_SOURCE_DIR}") # Where to find tests
+set(TEST_SPACE "${CMAKE_CURRENT_BINARY_DIR}") # Where to run tests
file(GLOB PBTXTFILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/${TEST_PBTXT_FILE}")
+unset(TEST_DEPS)
+
foreach(PBTXTFILE IN ITEMS ${PBTXTFILES})
get_filename_component(DIR_NAME ${PBTXTFILE} DIRECTORY)
set(PBTXT_SOURCE_FILE "${DIR_NAME}.pbtxt")
- set(PBTXT_SOURCE_TARGET moco_onnx_${DIR_NAME}_pbtxt)
+ set(PBTXT_SOURCE_PATH "${TEST_SPACE}/${PBTXT_SOURCE_FILE}")
set(PB_OUTPUT_FILE "${DIR_NAME}.pb")
- set(PB_OUTPUT_TARGET moco_onnx_${DIR_NAME}_pb)
+ set(PB_OUTPUT_PATH "${TEST_SPACE}/${PB_OUTPUT_FILE}")
# Copy files
- add_custom_target(${PBTXT_SOURCE_TARGET}
- ALL ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/${PBTXTFILE}"
- "${CMAKE_CURRENT_BINARY_DIR}/${PBTXT_SOURCE_FILE}"
- COMMENT "Copy ${PBTXT_SOURCE_FILE}")
+ add_custom_command(
+ OUTPUT ${PBTXT_SOURCE_PATH}
+ COMMAND ${CMAKE_COMMAND} -E copy "${TEST_REPO}/${PBTXTFILE}" "${PBTXT_SOURCE_PATH}"
+ COMMENT "Copy ${PBTXT_SOURCE_FILE}"
+ DEPENDS "${TEST_REPO}/${PBTXTFILE}"
+ )
# Use onnxkit to encode
- add_custom_target(${PB_OUTPUT_TARGET}
- ALL $<TARGET_FILE:onnxkit> encode ${PBTXT_SOURCE_FILE} ${PB_OUTPUT_FILE}
- DEPENDS ${PBTXT_SOURCE_TARGET}
- COMMENT "Generate ${PB_OUTPUT_FILE}")
+ add_custom_command(
+ OUTPUT ${PB_OUTPUT_PATH}
+ COMMAND $<TARGET_FILE:onnxkit> encode ${PBTXT_SOURCE_PATH} ${PB_OUTPUT_PATH}
+ DEPENDS ${PBTXT_SOURCE_PATH}
+ COMMENT "Generate ${PB_OUTPUT_FILE}"
+ )
+
+ list(APPEND TEST_DEPS "${PB_OUTPUT_PATH}")
endforeach(PBTXTFILE)
+
+# This target enforces CMake to generate all the dependencies during "build" phase
+add_custom_target(mocotest_onnx_deps ALL DEPENDS ${TEST_DEPS})