Combine all PDPD model generation scripts into one python command (#7349)

This commit is contained in:
Mikhail Nosov 2021-09-03 11:27:14 +03:00 committed by GitHub
parent bf8113c056
commit 1eca8a6e49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 24 deletions

View File

@ -30,23 +30,16 @@ target_compile_definitions(${TARGET_NAME} PRIVATE -D TEST_PADDLE_MODELS_DIRNAME=
if (paddlepaddle_FOUND) if (paddlepaddle_FOUND)
set(TEST_PADDLE_MODELS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TEST_PADDLE_MODELS_DIRNAME}/) set(TEST_PADDLE_MODELS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TEST_PADDLE_MODELS_DIRNAME}/)
file(GLOB_RECURSE PADDLE_GEN_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/test_models/gen_scripts/generate_*.py)
file(GLOB_RECURSE PADDLE_ALL_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/*.py) file(GLOB_RECURSE PADDLE_ALL_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/*.py)
set(OUT_FILES "") set(OUT_FILE ${TEST_PADDLE_MODELS}/generate_done.txt)
foreach(GEN_SCRIPT ${PADDLE_GEN_SCRIPTS}) add_custom_command(OUTPUT ${OUT_FILE}
get_filename_component(FILE_WE ${GEN_SCRIPT} NAME_WE) COMMAND ${PYTHON_EXECUTABLE}
set(OUT_DONE_FILE ${TEST_PADDLE_MODELS}/${FILE_WE}_done.txt) ${CMAKE_CURRENT_SOURCE_DIR}/test_models/gen_wrapper.py
set(OUT_FILES ${OUT_DONE_FILE} ${OUT_FILES}) ${CMAKE_CURRENT_SOURCE_DIR}/test_models/gen_scripts
add_custom_command(OUTPUT ${OUT_DONE_FILE} ${TEST_PADDLE_MODELS}
COMMAND ${PYTHON_EXECUTABLE} DEPENDS ${PADDLE_ALL_SCRIPTS}
${CMAKE_CURRENT_SOURCE_DIR}/test_models/gen_wrapper.py )
${GEN_SCRIPT} add_custom_target(paddlepaddle_test_models DEPENDS ${OUT_FILE})
${TEST_PADDLE_MODELS}
${OUT_DONE_FILE}
DEPENDS ${PADDLE_ALL_SCRIPTS}
)
endforeach()
add_custom_target(paddlepaddle_test_models DEPENDS ${OUT_FILES})
install(DIRECTORY ${TEST_PADDLE_MODELS} install(DIRECTORY ${TEST_PADDLE_MODELS}
DESTINATION tests/${TEST_PADDLE_MODELS_DIRNAME} DESTINATION tests/${TEST_PADDLE_MODELS_DIRNAME}

View File

@ -1,19 +1,25 @@
import glob
import os import os
import subprocess import subprocess
import sys import sys
print(sys.argv) print(sys.argv)
if len(sys.argv) < 4: if len(sys.argv) < 3:
print("Script, output folder and mark file must be specified as arguments") print("Gen folder and output folder must be specified as arguments")
exit(1) sys.exit(1)
gen_script = sys.argv[1] gen_folder = sys.argv[1]
out_folder = sys.argv[2] out_folder = sys.argv[2]
mark_file = sys.argv[3] mark_file = os.path.join(out_folder, "generate_done.txt")
print("Processing: {} ".format(gen_script)) gen_files = glob.glob(os.path.join(gen_folder, '**/generate_*.py'), recursive=True)
subprocess.run([sys.executable, gen_script, out_folder], env=os.environ)
for gen_script in gen_files:
print("Processing: {} ".format(gen_script))
status = subprocess.run([sys.executable, gen_script, out_folder], env=os.environ)
if status.returncode != 0:
print("ERROR: PaddlePaddle model gen script FAILED: {}".format(gen_script))
sys.exit(1)
# Create mark file indicating that script was executed # Create mark file indicating that script was executed
with open(mark_file, "w") as fp: with open(mark_file, "w") as fp: