orogen - typegen for array types

Hey,

- The typegen tool does not handle array types well with the
boost::serialization functionality.
It uses the boost::serialization::make_array syntax, but this needs
the boost/serialization/array.hpp include, otherwise the compiler
says:

[ 6%] Building CXX object
CMakeFiles/kdl-typekit-gnulinux.dir/type_info/__KDL__Frame.o
In file included from
/home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_toolchain/kdl-typekit/type_info/__KDL__Frame.cpp:3:
/home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_toolchain/kdl-typekit/kdl/Types.hpp:
In function ‘void boost::serialization::serialize(Archive&,
KDL::Rotation&, unsigned int)’:
/home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_toolchain/kdl-typekit/kdl/Types.hpp:131:
error: there are no arguments to ‘make_array’ that depend on a
template parameter, so a declaration of ‘make_array’ must be available
/home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_toolchain/kdl-typekit/kdl/Types.hpp:131:
note: (if you use ‘-fpermissive’, G++ will accept your code, but
allowing the use of an undeclared name is deprecated)

The include fixes this (patch orogen_make_array in appendix), but now
however the process fails later when building the mqueue transports.
I've added the console output in appendix (log.txt)

Any ideas on how to solve this?

- The cmake code in the mqueue folder fails to find RTT here, but
after replacing it to use pkg_check_modules (like it happens in the
other CMakeLists.txt), all goes well (patch mqueue_cmake in appendix).

regards,

Steven

AttachmentSize
log.txt19.58 KB
orogen_make_array.patch1.19 KB
mqueue_cmake.patch841 bytes

orogen - typegen for array types

On Wednesday 08 September 2010 13:50:13 Steven Bellens wrote:
> Hey,
>
> - The typegen tool does not handle array types well with the
> boost::serialization functionality.
> It uses the boost::serialization::make_array syntax, but this needs
> the boost/serialization/array.hpp include, otherwise the compiler
> says:
>
> [ 6%] Building CXX object
> CMakeFiles/kdl-typekit-gnulinux.dir/type_info/__KDL__Frame.o
> In file included from
> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
> olchain/kdl-typekit/type_info/__KDL__Frame.cpp:3:
> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_t
> oolchain/kdl-typekit/kdl/Types.hpp: In function ‘void
> boost::serialization::serialize(Archive&,
> KDL::Rotation&, unsigned int)’:
> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
> olchain/kdl-typekit/kdl/Types.hpp:131: error: there are no arguments to
> ‘make_array’ that depend on a
> template parameter, so a declaration of ‘make_array’ must be available
> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
> olchain/kdl-typekit/kdl/Types.hpp:131: note: (if you use ‘-fpermissive’,
> G++ will accept your code, but
> allowing the use of an undeclared name is deprecated)
>
> The include fixes this (patch orogen_make_array in appendix),

Thank you, this first patch is ok.

> but now
> however the process fails later when building the mqueue transports.
> I've added the console output in appendix (log.txt)
>
> Any ideas on how to solve this?

Can I reproduce this with the latest KDL trunk ?

>
> - The cmake code in the mqueue folder fails to find RTT here, but
> after replacing it to use pkg_check_modules (like it happens in the
> other CMakeLists.txt), all goes well (patch mqueue_cmake in appendix).

That's not what we're aiming for. Which cmake version are you using ?

Can you find out if the <prefix>/lib/cmake/orocos-rtt/orocos-rtt-config.cmake file
is present in one of your CMAKE_PREFIX_PATH directories ?

That file will define everything needed, we don't rely on the .pc files anymore.
They are just there for backwards compatibility and 3rd party tools.

Peter
--
Orocos-Dev mailing list
Orocos-Dev [..] ...
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev

orogen - typegen for array types

2010/9/8 Peter Soetens <peter [..] ...>:
> On Wednesday 08 September 2010 13:50:13 Steven Bellens wrote:
>> Hey,
>>
>> - The typegen tool does not handle array types well with the
>> boost::serialization functionality.
>> It uses the boost::serialization::make_array syntax, but this needs
>> the boost/serialization/array.hpp include, otherwise the compiler
>> says:
>>
>> [  6%] Building CXX object
>> CMakeFiles/kdl-typekit-gnulinux.dir/type_info/__KDL__Frame.o
>> In file included from
>> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
>> olchain/kdl-typekit/type_info/__KDL__Frame.cpp:3:
>>  /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_t
>> oolchain/kdl-typekit/kdl/Types.hpp: In function ‘void
>>  boost::serialization::serialize(Archive&,
>> KDL::Rotation&, unsigned int)’:
>> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
>> olchain/kdl-typekit/kdl/Types.hpp:131: error: there are no arguments to
>>  ‘make_array’ that depend on a
>> template parameter, so a declaration of ‘make_array’ must be available
>> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
>> olchain/kdl-typekit/kdl/Types.hpp:131: note: (if you use ‘-fpermissive’,
>>  G++ will accept your code, but
>> allowing the use of an undeclared name is deprecated)
>>
>> The include fixes this (patch orogen_make_array in appendix),
>
> Thank you, this first patch is ok.
>
>> but now
>> however the process fails later when building the mqueue transports.
>> I've added the console output in appendix (log.txt)
>>
>> Any ideas on how to solve this?
>
> Can I reproduce this with the latest KDL trunk ?

You should be able to reproduce this with the types.hpp file in
appendix. Use this file to generate the typekit with typegen and try
to build it should show the behaviour.

Steven

>
>>
>> - The cmake code in the mqueue folder fails to find RTT here, but
>> after replacing it to use pkg_check_modules (like it happens in the
>> other CMakeLists.txt), all goes well (patch mqueue_cmake in appendix).
>
> That's not what we're aiming for. Which cmake version are you using ?
>
> Can you find out if the <prefix>/lib/cmake/orocos-rtt/orocos-rtt-config.cmake file
> is present in one of your CMAKE_PREFIX_PATH directories ?
>
> That file will define everything needed, we don't rely on the .pc files anymore.
> They are just there for backwards compatibility and 3rd party tools.
>
> Peter
>

orogen - typegen for array types

On Wednesday 08 September 2010 16:45:24 Steven Bellens wrote:
> 2010/9/8 Peter Soetens <peter [..] ...>:
> > On Wednesday 08 September 2010 13:50:13 Steven Bellens wrote:
> >> Hey,
> >>
> >> - The typegen tool does not handle array types well with the
> >> boost::serialization functionality.
> >> It uses the boost::serialization::make_array syntax, but this needs
> >> the boost/serialization/array.hpp include, otherwise the compiler
> >> says:
> >>
> >> [ 6%] Building CXX object
> >> CMakeFiles/kdl-typekit-gnulinux.dir/type_info/__KDL__Frame.o
> >> In file included from
> >> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos
> >>_to olchain/kdl-typekit/type_info/__KDL__Frame.cpp:3:
> >> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/oroco
> >>s_t oolchain/kdl-typekit/kdl/Types.hpp: In function ‘void
> >> boost::serialization::serialize(Archive&,
> >> KDL::Rotation&, unsigned int)’:
> >> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos
> >>_to olchain/kdl-typekit/kdl/Types.hpp:131: error: there are no arguments
> >> to ‘make_array’ that depend on a
> >> template parameter, so a declaration of ‘make_array’ must be available
> >> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos
> >>_to olchain/kdl-typekit/kdl/Types.hpp:131: note: (if you use
> >> ‘-fpermissive’, G++ will accept your code, but
> >> allowing the use of an undeclared name is deprecated)
> >>
> >> The include fixes this (patch orogen_make_array in appendix),
> >
> > Thank you, this first patch is ok.
> >
> >> but now
> >> however the process fails later when building the mqueue transports.
> >> I've added the console output in appendix (log.txt)
> >>
> >> Any ideas on how to solve this?
> >
> > Can I reproduce this with the latest KDL trunk ?
>
> You should be able to reproduce this with the types.hpp file in
> appendix. Use this file to generate the typekit with typegen and try
> to build it should show the behaviour.

I have fixed the issue in the RTT binary_iarchive class. You can copy this file
in your <prefix>/include/rtt/transports/mqueue directory or in the
rtt/transports/mqueue RTT directory and rebuild RTT.

This fix will end up in 2.0.1. Thanks for testing !

Peter
--
Orocos-Dev mailing list
Orocos-Dev [..] ...
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev

orogen - typegen for array types

On Thursday 09 September 2010 13:39:19 Peter Soetens wrote:
> On Wednesday 08 September 2010 16:45:24 Steven Bellens wrote:
> > 2010/9/8 Peter Soetens <peter [..] ...>:
> > > On Wednesday 08 September 2010 13:50:13 Steven Bellens wrote:
> > >> Hey,
> > >>
> > >> - The typegen tool does not handle array types well with the
> > >> boost::serialization functionality.
> > >> It uses the boost::serialization::make_array syntax, but this needs
> > >> the boost/serialization/array.hpp include, otherwise the compiler
> > >> says:
> > >>
> > >> [ 6%] Building CXX object
> > >> CMakeFiles/kdl-typekit-gnulinux.dir/type_info/__KDL__Frame.o
> > >> In file included from
> > >> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/oroc
> > >>os _to olchain/kdl-typekit/type_info/__KDL__Frame.cpp:3:
> > >>
> > >> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/oroc
> > >>o s_t oolchain/kdl-typekit/kdl/Types.hpp: In function ‘void
> > >> boost::serialization::serialize(Archive&,
> > >> KDL::Rotation&, unsigned int)’:
> > >> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/oroc
> > >>os _to olchain/kdl-typekit/kdl/Types.hpp:131: error: there are no
> > >> arguments to ‘make_array’ that depend on a
> > >> template parameter, so a declaration of ‘make_array’ must be available
> > >> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/oroc
> > >>os _to olchain/kdl-typekit/kdl/Types.hpp:131: note: (if you use
> > >> ‘-fpermissive’, G++ will accept your code, but
> > >> allowing the use of an undeclared name is deprecated)
> > >>
> > >> The include fixes this (patch orogen_make_array in appendix),
> > >
> > > Thank you, this first patch is ok.
> > >
> > >> but now
> > >> however the process fails later when building the mqueue transports.
> > >> I've added the console output in appendix (log.txt)
> > >>
> > >> Any ideas on how to solve this?
> > >
> > > Can I reproduce this with the latest KDL trunk ?
> >
> > You should be able to reproduce this with the types.hpp file in
> > appendix. Use this file to generate the typekit with typegen and try
> > to build it should show the behaviour.
>
> I have fixed the issue in the RTT binary_iarchive class. You can copy this
> file in your <prefix>/include/rtt/transports/mqueue directory or in the
> rtt/transports/mqueue RTT directory and rebuild RTT.

Here's the file.

Peter

orogen - typegen for array types

On Wed, Sep 8, 2010 at 3:37 PM, Peter Soetens <peter [..] ...>wrote:

> On Wednesday 08 September 2010 13:50:13 Steven Bellens wrote:
> > Hey,
> >
> > - The typegen tool does not handle array types well with the
> > boost::serialization functionality.
> > It uses the boost::serialization::make_array syntax, but this needs
> > the boost/serialization/array.hpp include, otherwise the compiler
> > says:
> >
> > [ 6%] Building CXX object
> > CMakeFiles/kdl-typekit-gnulinux.dir/type_info/__KDL__Frame.o
> > In file included from
> >
> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
> > olchain/kdl-typekit/type_info/__KDL__Frame.cpp:3:
> >
> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_t
> > oolchain/kdl-typekit/kdl/Types.hpp: In function ‘void
> > boost::serialization::serialize(Archive&,
> > KDL::Rotation&, unsigned int)’:
> >
> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
> > olchain/kdl-typekit/kdl/Types.hpp:131: error: there are no arguments to
> > ‘make_array’ that depend on a
> > template parameter, so a declaration of ‘make_array’ must be available
> >
> /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
> > olchain/kdl-typekit/kdl/Types.hpp:131: note: (if you use ‘-fpermissive’,
> > G++ will accept your code, but
> > allowing the use of an undeclared name is deprecated)
> >
> > The include fixes this (patch orogen_make_array in appendix),
>
> Thank you, this first patch is ok.
>
> > but now
> > however the process fails later when building the mqueue transports.
> > I've added the console output in appendix (log.txt)
> >
> > Any ideas on how to solve this?
>
> Can I reproduce this with the latest KDL trunk ?
>
> >
> > - The cmake code in the mqueue folder fails to find RTT here, but
> > after replacing it to use pkg_check_modules (like it happens in the
> > other CMakeLists.txt), all goes well (patch mqueue_cmake in appendix).
>
> That's not what we're aiming for. Which cmake version are you using ?
>
> Can you find out if the
> <prefix>/lib/cmake/orocos-rtt/orocos-rtt-config.cmake file
> is present in one of your CMAKE_PREFIX_PATH directories ?

You can also specify the location of the orocos-rtt-config.cmake file by
means of the OROCOS-RTT_DIR cmake variable:
set(OROCOS-RTT_DIR <prefix>/lib/cmake/orocos-rtt)

Not finding orocos-rtt-config.cmake should only happen if you installed
Orocos-RTT 2.0 in a nonstandard location (<prefix> above), or if you're
using cmake < 2.6.3.

Adolfo

> That file will define everything needed, we don't rely on the .pc files
> anymore.
> They are just there for backwards compatibility and 3rd party tools.
>

> Peter
> --
> Orocos-Dev mailing list
> Orocos-Dev [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev
>

orogen - typegen for array types

2010/9/8 Adolfo Rodríguez Tsouroukdissian <adolfo [dot] rodriguez [..] ...>:
>
>
> On Wed, Sep 8, 2010 at 3:37 PM, Peter Soetens <peter [..] ...>
> wrote:
>>
>> On Wednesday 08 September 2010 13:50:13 Steven Bellens wrote:
>> > Hey,
>> >
>> > - The typegen tool does not handle array types well with the
>> > boost::serialization functionality.
>> > It uses the boost::serialization::make_array syntax, but this needs
>> > the boost/serialization/array.hpp include, otherwise the compiler
>> > says:
>> >
>> > [  6%] Building CXX object
>> > CMakeFiles/kdl-typekit-gnulinux.dir/type_info/__KDL__Frame.o
>> > In file included from
>> >
>> > /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
>> > olchain/kdl-typekit/type_info/__KDL__Frame.cpp:3:
>> >
>> >  /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_t
>> > oolchain/kdl-typekit/kdl/Types.hpp: In function ‘void
>> >  boost::serialization::serialize(Archive&,
>> > KDL::Rotation&, unsigned int)’:
>> >
>> > /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
>> > olchain/kdl-typekit/kdl/Types.hpp:131: error: there are no arguments to
>> >  ‘make_array’ that depend on a
>> > template parameter, so a declaration of ‘make_array’ must be available
>> >
>> > /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/orocos_to
>> > olchain/kdl-typekit/kdl/Types.hpp:131: note: (if you use ‘-fpermissive’,
>> >  G++ will accept your code, but
>> > allowing the use of an undeclared name is deprecated)
>> >
>> > The include fixes this (patch orogen_make_array in appendix),
>>
>> Thank you, this first patch is ok.
>>
>> > but now
>> > however the process fails later when building the mqueue transports.
>> > I've added the console output in appendix (log.txt)
>> >
>> > Any ideas on how to solve this?
>>
>> Can I reproduce this with the latest KDL trunk ?
>>
>> >
>> > - The cmake code in the mqueue folder fails to find RTT here, but
>> > after replacing it to use pkg_check_modules (like it happens in the
>> > other CMakeLists.txt), all goes well (patch mqueue_cmake in appendix).
>>
>> That's not what we're aiming for. Which cmake version are you using ?
>>
>> Can you find out if the
>> <prefix>/lib/cmake/orocos-rtt/orocos-rtt-config.cmake file
>> is present in one of your CMAKE_PREFIX_PATH directories ?
>
> You can also specify the location of the orocos-rtt-config.cmake file by
> means of the OROCOS-RTT_DIR cmake variable:
> set(OROCOS-RTT_DIR <prefix>/lib/cmake/orocos-rtt)
>
> Not finding orocos-rtt-config.cmake should only happen if you installed
> Orocos-RTT 2.0 in a nonstandard location (<prefix> above), or if you're
> using cmake < 2.6.3.

I'm using cmake 2.8.0. Setting the CMAKE_PREFIX_PATH made everything
work. Thanks.

Steven

>
> Adolfo
>
>>
>> That file will define everything needed, we don't rely on the .pc files
>> anymore.
>> They are just there for backwards compatibility and 3rd party tools.
>>
>> Peter
>> --
>> Orocos-Dev mailing list
>> Orocos-Dev [..] ...
>> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev
>
>
>
> --
> Adolfo Rodríguez Tsouroukdissian, Ph. D.
>
> Robotics engineer
> PAL ROBOTICS S.L
> http://www.pal-robotics.com
> Tel. +34.93.414.53.47
> Fax.+34.93.209.11.09
> AVISO DE CONFIDENCIALIDAD: Este mensaje y sus documentos adjuntos, pueden
> contener información privilegiada y/o confidencial que está dirigida
> exclusivamente a su destinatario. Si usted recibe este mensaje y no es el
> destinatario indicado, o el empleado encargado de su entrega a dicha
> persona, por favor, notifíquelo inmediatamente y remita el mensaje original
> a la dirección de correo electrónico indicada. Cualquier copia, uso o
> distribución no autorizados de esta comunicación queda estrictamente
> prohibida.
>
> CONFIDENTIALITY NOTICE: This e-mail and the accompanying document(s) may
> contain confidential information which is privileged and intended only for
> the individual or entity to whom they are addressed.  If you are not the
> intended recipient, you are hereby notified that any disclosure, copying,
> distribution or use of this e-mail and/or accompanying document(s) is
> strictly prohibited.  If you have received this e-mail in error, please
> immediately notify the sender at the above e-mail address.
>

orogen - typegen for array types

On Wednesday 08 September 2010 16:43:25 Steven Bellens wrote:
> 2010/9/8 Adolfo Rodríguez Tsouroukdissian <adolfo.rodriguez@pal-
robotics.com>:
> > On Wed, Sep 8, 2010 at 3:37 PM, Peter Soetens <peter [..] ...>
> >
> > wrote:
> >> On Wednesday 08 September 2010 13:50:13 Steven Bellens wrote:
> >> > Hey,
> >> >
> >> > - The typegen tool does not handle array types well with the
> >> > boost::serialization functionality.
> >> > It uses the boost::serialization::make_array syntax, but this needs
> >> > the boost/serialization/array.hpp include, otherwise the compiler
> >> > says:
> >> >
> >> > [ 6%] Building CXX object
> >> > CMakeFiles/kdl-typekit-gnulinux.dir/type_info/__KDL__Frame.o
> >> > In file included from
> >> >
> >> > /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/oroc
> >> >os_to olchain/kdl-typekit/type_info/__KDL__Frame.cpp:3:
> >> >
> >> > /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/oro
> >> >cos_t oolchain/kdl-typekit/kdl/Types.hpp: In function ‘void
> >> > boost::serialization::serialize(Archive&,
> >> > KDL::Rotation&, unsigned int)’:
> >> >
> >> > /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/oroc
> >> >os_to olchain/kdl-typekit/kdl/Types.hpp:131: error: there are no
> >> > arguments to ‘make_array’ that depend on a
> >> > template parameter, so a declaration of ‘make_array’ must be available
> >> >
> >> > /home/steven/src/svn/orocos-apps/applications/private-kul-ros-pkg/oroc
> >> >os_to olchain/kdl-typekit/kdl/Types.hpp:131: note: (if you use
> >> > ‘-fpermissive’, G++ will accept your code, but
> >> > allowing the use of an undeclared name is deprecated)
> >> >
> >> > The include fixes this (patch orogen_make_array in appendix),
> >>
> >> Thank you, this first patch is ok.
> >>
> >> > but now
> >> > however the process fails later when building the mqueue transports.
> >> > I've added the console output in appendix (log.txt)
> >> >
> >> > Any ideas on how to solve this?
> >>
> >> Can I reproduce this with the latest KDL trunk ?
> >>
> >> > - The cmake code in the mqueue folder fails to find RTT here, but
> >> > after replacing it to use pkg_check_modules (like it happens in the
> >> > other CMakeLists.txt), all goes well (patch mqueue_cmake in appendix).
> >>
> >> That's not what we're aiming for. Which cmake version are you using ?
> >>
> >> Can you find out if the
> >> <prefix>/lib/cmake/orocos-rtt/orocos-rtt-config.cmake file
> >> is present in one of your CMAKE_PREFIX_PATH directories ?
> >
> > You can also specify the location of the orocos-rtt-config.cmake file by
> > means of the OROCOS-RTT_DIR cmake variable:
> > set(OROCOS-RTT_DIR <prefix>/lib/cmake/orocos-rtt)
> >
> > Not finding orocos-rtt-config.cmake should only happen if you installed
> > Orocos-RTT 2.0 in a nonstandard location (<prefix> above), or if you're
> > using cmake < 2.6.3.
>
> I'm using cmake 2.8.0. Setting the CMAKE_PREFIX_PATH made everything
> work. Thanks.

I'll add this env variable to the env.sh script too. The reason pkg-config
found it was because the PKG_CONFIG_PATH was set to include your Orocos
installation directory in the env.sh script.

Peter