summaryrefslogtreecommitdiff
path: root/compiler/oneco-value-pbtxt-test/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/oneco-value-pbtxt-test/CMakeLists.txt')
-rw-r--r--compiler/oneco-value-pbtxt-test/CMakeLists.txt53
1 files changed, 53 insertions, 0 deletions
diff --git a/compiler/oneco-value-pbtxt-test/CMakeLists.txt b/compiler/oneco-value-pbtxt-test/CMakeLists.txt
new file mode 100644
index 000000000..6d9563f40
--- /dev/null
+++ b/compiler/oneco-value-pbtxt-test/CMakeLists.txt
@@ -0,0 +1,53 @@
+option(ONECO_VALUE_PBTXT_TEST "Enable oneco value test for pbtxt input model" ON)
+
+if(NOT ONECO_VALUE_PBTXT_TEST)
+ return()
+endif(NOT ONECO_VALUE_PBTXT_TEST)
+
+if(NOT TARGET onnxkit)
+ message(STATUS "oneco: Skip test material preparation as onnxkit is not defined")
+ return()
+endif(NOT TARGET onnxkit)
+
+#
+# Copy [Testcase]/test.pbtxt to Testcase.pbtxt in binary folder
+# 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_PATH "${TEST_SPACE}/${PBTXT_SOURCE_FILE}")
+
+ set(PB_OUTPUT_FILE "${DIR_NAME}.pb")
+ set(PB_OUTPUT_PATH "${TEST_SPACE}/${PB_OUTPUT_FILE}")
+
+ # Copy files
+ 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_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(oneco_value_pbtxt_test_deps ALL DEPENDS ${TEST_DEPS})