diff options
Diffstat (limited to 'infra/nnfw/cmake/packages/PeachpySourceConfig.cmake')
-rw-r--r-- | infra/nnfw/cmake/packages/PeachpySourceConfig.cmake | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/infra/nnfw/cmake/packages/PeachpySourceConfig.cmake b/infra/nnfw/cmake/packages/PeachpySourceConfig.cmake new file mode 100644 index 000000000..4cfd682c7 --- /dev/null +++ b/infra/nnfw/cmake/packages/PeachpySourceConfig.cmake @@ -0,0 +1,31 @@ +function(_PeachpySource_import) + nnfw_include(ExternalSourceTools) + nnfw_include(OptionTools) + + envoption(EXTERNAL_DOWNLOAD_SERVER "https://github.com") + set(PEACHPY_URL ${EXTERNAL_DOWNLOAD_SERVER}/Maratyszcza/PeachPy/archive/01d15157a973a4ae16b8046313ddab371ea582db.tar.gz) + + ExternalSource_Get("python_peachpy" ${DOWNLOAD_NNPACK} ${PEACHPY_URL}) + FIND_PACKAGE(PythonInterp) + + nnfw_find_package(SixSource REQUIRED) + nnfw_find_package(Enum34Source REQUIRED) + nnfw_find_package(OpcodesSource REQUIRED) + + # Generate opcodes: + SET(ENV{PYTHONPATH} ${python_peachpy_SOURCE_DIR}:${PYTHON_SIX_SOURCE_DIR}:${PYTHON_ENUM_SOURCE_DIR}:${PYTHON_OPCODES_SOURCE_DIR}) + EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ./codegen/x86_64.py + WORKING_DIRECTORY ${python_peachpy_SOURCE_DIR} + RESULT_VARIABLE BUILT_PP) + + if(NOT BUILT_PP EQUAL 0) + # Mark PYTHON_PEACHPY_SOURCE_FOUND as FALSE if source generation fails + set(PYTHON_PEACHPY_SOURCE_FOUND FALSE PARENT_SCOPE) + return() + endif(NOT BUILT_PP EQUAL 0) + + set(PYTHON_PEACHPY_SOURCE_DIR ${python_peachpy_SOURCE_DIR} PARENT_SCOPE) + set(PYTHON_PEACHPY_SOURCE_FOUND ${python_peachpy_SOURCE_GET} PARENT_SCOPE) +endfunction(_PeachpySource_import) + +_PeachpySource_import() |