examples/ is based on KasperskyLab/knp at 55470ed6 with local changes to the mnist-learn altai/blifat models, cuda-backend CMake and model_loader. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
53 lines
1.3 KiB
Bash
53 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
SCRIPT_PATH="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
if [ $# -lt 2 ]; then
|
|
echo "Snn-library bindings Python generator" >&2
|
|
echo -e "Usage:\n $(basename $0) <snn-library-path> <output-path>" >&2
|
|
echo >&2
|
|
exit 1 >&2
|
|
fi
|
|
|
|
IN_PATH="$1"
|
|
OUT_PATH="$2"
|
|
|
|
shift 2
|
|
|
|
PYBIND11_GEN_BIN="${SCRIPT_PATH}/py-gen/boost_python_gen.py"
|
|
|
|
mkdir -p "${OUT_PATH}" || exit 1
|
|
|
|
if [ ! -z "$(ls -A ${OUT_PATH})" ]; then
|
|
echo "\"${OUT_PATH}\" directory is not empty!" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Generating..."
|
|
|
|
for in_dir in $(find "${IN_PATH}" -type d); do
|
|
echo "Processing ${in_dir}..."
|
|
files=$(find "${in_dir}" -maxdepth 1 -type f -iname \*.h)
|
|
|
|
if [ -z "${files}" ]; then
|
|
echo "No files."
|
|
continue
|
|
fi
|
|
|
|
in_dir="${in_dir##${IN_PATH}}"
|
|
in_dir="${in_dir##/}"
|
|
in_dir="${in_dir%/*}"
|
|
mkdir -p "${OUT_PATH}/${in_dir}"
|
|
|
|
for f in ${files}; do
|
|
target_file_name="${f%.h}"
|
|
target_file_name="${in_dir}/${target_file_name##*/}"
|
|
module_name="$(echo "${target_file_name##*/}"|sed -e "s/[\/_-]/ /g;s/\b\(.\)/\u\1/g;s/ //g")"
|
|
|
|
target_file_name="${target_file_name//[-]/_}.cpp"
|
|
# target_file_name="${target_file_name//[\/-]/_}.cpp"
|
|
|
|
echo "${module_name} -> ${target_file_name}"
|
|
python3 "${PYBIND11_GEN_BIN}" "${module_name}" $* ${f} > "${OUT_PATH}/${target_file_name}"
|
|
done
|
|
done
|