microsoft / ELL

Embedded Learning Library
https://microsoft.github.io/ELL
Other
2.29k stars 294 forks source link

cmake configure failed with could not find TARGET _ELL_python #255

Closed rqbh closed 3 years ago

rqbh commented 4 years ago

Found LLVM 8.0.1 Using LLVMConfig.cmake in: /usr/lib/llvm-8/cmake -- Found SWIG_EXECUTABLE=/usr/local/bin/swig Skipping pitest because one of RPI_CLUSTER, RPI_PASSWORD, RPI_KEY, TEST_MODELS_REPO is missing Creating wrappers for python CMake Error at CMake/CommonInterfaces.cmake:177 (set_property): set_property could not find TARGET _ELL_python. Perhaps it has not yet been created. Call Stack (most recent call first): CMake/CommonInterfaces.cmake:194 (generate_interface_module) interfaces/python/CMakeLists.txt:21 (generate_interface)

lovettchris commented 3 years ago

If you have not setup a python environment and you do not want the python bindings for ELL then try running "cmake" with the additional flag: -D DISABLE_PYTHON=ON. There is a small bug in our CMakeLists.txt file that needs to set PYTHON_ENABLED to OFF in this case as shown in this git diff:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d01e464fd..4f164e8cf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,6 +62,7 @@ set(RPI_KEY "$ENV{RPI_APIKEY}")

 if(DISABLE_PYTHON)
   message(STATUS "Python has been explicitly disabled")
+  set(PYTHON_ENABLED OFF)
 else()
   foreach(PYTHON_VERSION 3.7 3.6)
     find_package(PythonInterp ${PYTHON_VERSION} QUIET)

If you do want the python bindings then you need to configure your python environment. This Dockerfile shows how to do that. And this image is published to docker as cjlovett/ell-dependencies, so you could just use this docker container to build ell.

lovettchris commented 3 years ago

This is fixed by this commt.