[yocto] Cap'n Proto Recipe Help

Jussi Kukkonen jussi.kukkonen at intel.com
Wed Oct 14 01:12:37 PDT 2015


On 14 October 2015 at 03:57, Finn Carlsvi <finncarlsvi at gmail.com> wrote:

> Thanks Ross,
>
> That makes much more sense. I incorporated your edits, however, I used:
>
> EXTRA_OECONF_append = " --with-external-capnp"
> instead of EXTRA_OECMAKE, since it was used for the configuration
> originally. Am I thinking right about this?
>

configure is typically not used when building with cmake** so giving extra
options for it probably won't help. The reason there is a configure file at
all is that the project seems to support both autotools and cmake**. If you
want to continue with cmake, find out how it does the equivalent of
"--with-external-capnp": probably with something like "-DEXTERNALCAPNP" in
EXTRA_OECMAKE. The other alternative is to use autotools instead of cmake
(and add "--with-external-capnp" in EXTRA_OECONF).

I would suggest picking the build system the main developers actually use
or recommend, then figuring out how to build that with the options you need
_outside of yocto_, and then doing the same with a yocto recipe (keeping an
eye on $WORKDIR/temp/log.* so you know what the build/configure is actually
doing).


**) For reasons some people want multiple build systems in their projects.
As if one wasn't painful enough.


- Jussi



>
This edit brings me to the following error:
>
> | [ 70%] Built target capnp_tool
> | make -f src/capnp/CMakeFiles/capnp-heavy-tests.dir/build.make
> src/capnp/CMakeFiles/capnp-heavy-tests.dir/depend
> | make[2]: Entering directory
> `/home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/build'
> | /home/finn/yocto/poky/build/tmp/sysroots/x86_64-linux/usr/bin/cmake -E
> cmake_progress_report
> /home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/build/CMakeFiles
> 14
> | [ 71%] Compiling Cap'n Proto schema test-import2.capnp
> | cd
> /home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/build/src/capnp
> && ./capnp compile -o
> /home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/build/src/capnp/capnpc-c++:/home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/build/src/capnp/test_capnp/capnp
> --src-prefix
> /home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/capnproto-c++-0.5.3/src/capnp
> -I
> /home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/capnproto-c++-0.5.3/src/capnp
> -I
> /home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/capnproto-c++-0.5.3/src
> /home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/capnproto-c++-0.5.3/src/capnp/test-import2.capnp
> | ./capnp: 1: ./capnp: Syntax error: word unexpected (expecting ")")
> | make[2]: *** [src/capnp/test_capnp/capnp/test-import2.capnp.c++] Error 2
> | make[2]: Leaving directory
> `/home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/build'
> | make[1]: *** [src/capnp/CMakeFiles/capnp-heavy-tests.dir/all] Error 2
> | make[1]: Leaving directory
> `/home/finn/yocto/poky/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/capnproto/0.5.3-r0/build'
> | make: *** [all] Error 2
> | ERROR: oe_runmake failed
> | WARNING: exit code 1 from a shell command.
>
> From what I gather,  Syntax error: word unexpected (expecting ")") means
> that the ./capnp is compiled for arm, I need to be running the local
> version right?
>
> I tried adding
> CAPNP = "/usr/local/bin/capnp"
> to the recipe file, but of course that does not make a difference.
>
> This is my updated recipe file:
> INSANE_SKIP_${PN} += "install-host-path"
>
> SRC_URI = "https://capnproto.org/capnproto-c++-${PV}.tar.gz
> <https://capnproto.org/capnproto-c++-$%7BPV%7D.tar.gz>"
> SRC_URI[md5sum] = "d6c91a9129457fe5893302cd92e09324"
> SRC_URI[sha256sum] =
> "cdb17c792493bdcd4a24bcd196eb09f70ee64c83a3eccb0bc6534ff560536afb"
>
> PACKAGES = "${PN}"
>
> S = "${WORKDIR}/capnproto-c++-${PV}"
>
> inherit cmake
>
> EXTRA_OECONF_append = " --with-external-capnp"
>
>
> Thanks again :)
>
> On Tue, Oct 13, 2015 at 2:56 PM, Burton, Ross <ross.burton at intel.com>
> wrote:
>
>>
>> On 13 October 2015 at 20:55, Finn Carlsvi <finncarlsvi at gmail.com> wrote:
>>
>>> INSANE_SKIP_${PN} += "installed-vs-shipped"
>>>
>>
>> You're telling the system not to warn you that you have a do_install()
>> that installs files that are not getting packaged anywhere.
>>
>> do_configure() {
>>>     export CAPNP=/usr/local/bin/capnp
>>>     ${S}/configure --with-external-capnp -build=x86_64-linux
>>> --host=arm-poky-linux-gnueabi --target=arm-poky-linux-gnueabi
>>> }
>>
>>
>> Here you are overriding all of the magic in cmake.bbclass that makes
>> cmake actually work.  You probably just want to add --with-external-capnp
>> to EXTRA_OECMAKE and remove your do_configure().
>>
>> Ross
>>
>
>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20151014/555bca3d/attachment.html>


More information about the yocto mailing list