Pavel Macenauer | 59e057f | 2020-04-15 14:17:26 +0000 | [diff] [blame] | 1 | # |
| 2 | # Copyright 2020 NXP |
Ryan OShea | 7d1b1ca | 2023-08-01 17:15:24 +0100 | [diff] [blame] | 3 | # Copyright © 2023 Arm Ltd. All rights reserved. |
Pavel Macenauer | 59e057f | 2020-04-15 14:17:26 +0000 | [diff] [blame] | 4 | # SPDX-License-Identifier: MIT |
| 5 | # |
| 6 | set(SETUP_PY_IN "${CMAKE_CURRENT_SOURCE_DIR}/setup.py") |
| 7 | set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py") |
| 8 | set(SWIG_GENERATE_IN "${CMAKE_CURRENT_SOURCE_DIR}/swig_generate.py") |
| 9 | set(SWIG_GENERATE "${CMAKE_CURRENT_BINARY_DIR}/swig_generate.py") |
| 10 | set(OUT_WRAP "${CMAKE_CURRENT_BINARY_DIR}/pyarmnn.wrap.timestamp") |
| 11 | |
Ryan OShea | 7d1b1ca | 2023-08-01 17:15:24 +0100 | [diff] [blame] | 12 | message(WARNING "PyArmNN is deprecated. To use ArmNN on python, please use the tflite delegate. Expected to be removed in release 24.05.") |
| 13 | |
Pavel Macenauer | 59e057f | 2020-04-15 14:17:26 +0000 | [diff] [blame] | 14 | configure_file(${SETUP_PY_IN} ${SETUP_PY} COPYONLY) |
| 15 | configure_file(${SWIG_GENERATE_IN} ${SWIG_GENERATE} COPYONLY) |
| 16 | |
| 17 | # local env variables passed down to the python scripts |
| 18 | # scripts can thus be used standalone |
Jim Flynn | 2776183 | 2022-03-20 21:52:17 +0000 | [diff] [blame] | 19 | set(ARMNN_ENV ARMNN_INCLUDE="${PROJECT_SOURCE_DIR}/profiling:${PROJECT_SOURCE_DIR}/profiling/common/include:${PROJECT_SOURCE_DIR}/profiling/client/include:${PROJECT_SOURCE_DIR}/include" |
Pavel Macenauer | 59e057f | 2020-04-15 14:17:26 +0000 | [diff] [blame] | 20 | ARMNN_LIB=${PROJECT_BINARY_DIR} |
| 21 | SWIG_EXECUTABLE=${SWIG_EXECUTABLE}) |
| 22 | |
| 23 | # common step - generates swig wrappers and builds the lib |
| 24 | add_custom_command(OUTPUT ${OUT_WRAP} |
| 25 | COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${CMAKE_CURRENT_BINARY_DIR} |
| 26 | COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_BINARY_DIR} |
| 27 | COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src |
| 28 | COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/test ${CMAKE_CURRENT_BINARY_DIR}/test |
| 29 | COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green "Clearing Python build ..." |
| 30 | COMMAND ${Python3_EXECUTABLE} ${SETUP_PY} --quiet clean --all |
| 31 | COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green "Generating SWIG wrappers ..." |
| 32 | COMMAND ${CMAKE_COMMAND} -E env ${ARMNN_ENV} ${Python3_EXECUTABLE} ${SWIG_GENERATE} |
| 33 | COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green "Building Python extensions ..." |
| 34 | COMMAND ${CMAKE_COMMAND} -E env ${ARMNN_ENV} ${Python3_EXECUTABLE} ${SETUP_PY} --quiet build_ext --inplace |
| 35 | COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/src/pyarmnn/_generated ${CMAKE_CURRENT_BINARY_DIR}/src/pyarmnn/_generated |
| 36 | COMMAND ${CMAKE_COMMAND} -E touch ${OUT_WRAP} |
Francis Murtagh | 1f0e2f9 | 2020-09-21 15:27:00 +0100 | [diff] [blame] | 37 | DEPENDS armnn) |
Pavel Macenauer | 59e057f | 2020-04-15 14:17:26 +0000 | [diff] [blame] | 38 | |
| 39 | # source package |
| 40 | if(BUILD_PYTHON_SRC) |
| 41 | set(OUT_SRC "${CMAKE_CURRENT_BINARY_DIR}/pyarmnn.src.timestamp") |
| 42 | add_custom_command(OUTPUT ${OUT_SRC} |
| 43 | COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green "Building Python source package ..." |
| 44 | COMMAND ${CMAKE_COMMAND} -E env ${ARMNN_ENV} ${Python3_EXECUTABLE} ${SETUP_PY} --quiet sdist |
| 45 | COMMAND ${CMAKE_COMMAND} -E touch ${OUT_SRC} |
| 46 | DEPENDS ${OUT_WRAP}) |
| 47 | endif() |
| 48 | # wheel package |
| 49 | if(BUILD_PYTHON_WHL) |
| 50 | set(OUT_WHL "${CMAKE_CURRENT_BINARY_DIR}/pyarmnn.whl.timestamp") |
| 51 | add_custom_command(OUTPUT ${OUT_WHL} |
| 52 | COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green "Building Python binary package ..." |
| 53 | COMMAND ${CMAKE_COMMAND} -E env ${ARMNN_ENV} ${Python3_EXECUTABLE} ${SETUP_PY} --quiet bdist_wheel |
| 54 | COMMAND ${CMAKE_COMMAND} -E touch ${OUT_WHL} |
| 55 | DEPENDS ${OUT_WRAP}) |
| 56 | endif() |
| 57 | add_custom_target(pyarmnn ALL DEPENDS ${OUT_WRAP} ${OUT_SRC} ${OUT_WHL}) |