I can't seem to find where cmake's python checker magically decides the name of
the shared object, but I did find an override, so you can drop the patch. I
had even gone so far as to simply make a zero length file instead of the
symlink, and everything still built and run. It is just some cmake detection
which is broken. The ubuntu/debian systems where this code is heavily tested
all provide a link for the libboost_python.so which explains why this never
turned up previously. They don't get the option to pick python2 or python3 for
boost, they always get both for now.
The override to build with python boost for cmake and caffe is as follows:
cmake -DBoost_PYTHON_LIBRARY_DEBUG=/usr/lib64/libboost_python3.so \
-DBoost_PYTHON_LIBRARY_RELEASE=/usr/lib64/libboost_python3.so \
-DBLAS=Open \
..
Cheers,
Jason.
On 03/14/2018 09:55 AM, Jason Wessel wrote:
Perhaps a bug in the cmake detect which is part of boost, because I am not
using python2 for caffe.
I used the path of least resistance because as far as I could tell boost only
let you build one or the other and in my case it was the python3 boost api. In
the end caffe was working and all the python3 tests with the Movidius SDK pass
(which use python3).
Jason.
On 03/14/2018 09:50 AM, Burton, Ross wrote:
I thought that boost_python was the py2 binary, and boost_python3 was the py3
one? Is this not a bug in caffe?
On 13 March 2018 at 03:08, Jason Wessel <[email protected]
<mailto:[email protected]>> wrote:
When using an image built with the Yocto Project which has a compiler
and all the required libraries, projects such as caffe for the
Movidius SDK which use python3 and boost fail to build because they
look for libboost_python.so. The error that cmake returns doesn't
even point to the fact that this is why the configuration fails.
Example showing the problem with the missing symlink:
================
git clone https://github.com/weiliu89/caffe.git
<https://github.com/weiliu89/caffe.git>
cd caffe
mkdir build
cd build
cmake -DBLAS=Open ..
-- Configuring done
CMake Error at CMakeLists.txt:85 (add_dependencies):
The dependency target "pycaffe" of target "pytest" does not exist.
================
Conditionally creating the link when building python3 support into
boost is all that is needed.
Signed-off-by: Jason Wessel <[email protected]
<mailto:[email protected]>>
---
meta/recipes-support/boost/boost.inc | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta/recipes-support/boost/boost.inc
b/meta/recipes-support/boost/boost.inc
index 0461ec6..c53edf7 100644
--- a/meta/recipes-support/boost/boost.inc
+++ b/meta/recipes-support/boost/boost.inc
@@ -195,6 +195,9 @@ do_install() {
fi
done
+ if [ -e ${D}${libdir}/libboost_python3.so ]; then
+ ln -s libboost_python3.so ${D}${libdir}/libboost_python.so
+ fi
}
BBCLASSEXTEND = "native nativesdk"
--
2.7.4
--
_______________________________________________
Openembedded-core mailing list
[email protected]
<mailto:[email protected]>
http://lists.openembedded.org/mailman/listinfo/openembedded-core
<http://lists.openembedded.org/mailman/listinfo/openembedded-core>
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core