[yocto] native recipe question
Damien LEFEVRE
lefevre.da at gmail.com
Tue May 22 03:56:43 PDT 2018
Thanks that did the trick.
I actually needed to add the tool compilation in do_configure_prepend
because the cmake configuration requires the output folder for bin2cpp.
Just out of completeness. I had created that arrayfire-native recipe and it
looked like this:
BBCLASSEXTEND = "native"
SRC_URI = "gitsm://
github.com/arrayfire/arrayfire.git;protocol=https;branch=v3.6"
SRCREV = "ee21c791d5af4fa56bca168804ba1597cf9d6503"
PR="r0"
S = "${WORKDIR}/git"
inherit cmake cuda
do_configure(){
cd ${B}
cmake ${S} \
-DAF_BUILD_CPU=OFF \
-DAF_BUILD_CUDA=OFF \
-DAF_BUILD_OPENCL=OFF \
-DAF_BUILD_EXAMPLES=OFF \
-DAF_BUILD_TEST=OFF \
-DAF_WITH_GRAPHICS=OFF \
-DCMAKE_BUILD_TYPE=Release
}
do_compile(){
make bin2cpp
}
do_install() {
install -d ${D}/${bindir}
install -m 755 ${WORKDIR}/build/bin2cpp ${D}${bindir}
}
# Defining packages
FILES_${PN} = "${bindir}/*"
The recipe builds. When I try using with DEPENDS += "arrayfire-native" in
the arrayfire recipe I get this warning:
WARNING: arrayfire-3.6.0-r0 do_prepare_recipe_sysroot: Manifest
/home/damien/pyro/build-jetson-tx2/tmp/sstate-control/manifest-x86_64-arrayfire-native.populate_sysroot
not found?
and /home/damien/pyro/build-jetson-tx2/tmp/work/aarch64_tegra186-poky-linux/arrayfire/3.6.0-r0/recipe-sysroot-native
did not contain the bin2cpp binary.
What did I miss?
Thanks
On Tue, May 22, 2018 at 12:19 PM, Burton, Ross <ross.burton at intel.com>
wrote:
> On 22 May 2018 at 08:43, Damien LEFEVRE <lefevre.da at gmail.com> wrote:
> > I'm having to build a package (arrayfire) for Tegra. This package
> requires
> > to first build a x86_64 utility (bin2cpp) which is then used for building
> > the tegra arrayfire.
> >
> > Do I understand correctly that I should create:
> >
> > arrayfire-native.bb: for compiling the x86_64 utility. If so how do I
> > instruct the platform?
> > arrayfire.bb: for compiling the tegra platform. This recipe requires
> > arrayfire-native.bb and I should get a copy in the recipe-sysroot-native
> > folder?
>
> That's one solution, but if it's jus a single tool that you need built
> then you can build that yourself using the host compiler. The best
> practise here is for the upstream build to respect CC_FOR_BUILD ("use
> this compiler to build binaries that I need to run at build time")
> which we already export. As presumably arrayfire doesn't do this,
> then you can just build it yourself first. For example, the Pango
> recipe in oe-core basically does this:
>
> do_compile_prepend_class-target () {
> make CC="${BUILD_CC}" LDFLAGS="${BUILD_LDFLAGS}" -C
> ${B}/tests gen-all-unicode
> }
>
> Which makes it build tests/gen-all-unicode using BUILD_CC (host
> compiler, not cross compiler) for target builds before it goes and
> builds the rest of the project.
>
> Ross
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20180522/de0929f5/attachment-0001.html>
More information about the yocto
mailing list