blob: 6d9563f40fc00b011104e921a7c6837f8d938bb9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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})
|