Propose to migrate to cmake

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Propose to migrate to cmake

Leopold Palomo-Avellaneda
Hi,

some weeks ago I interchanged some mails with Rosen Diankov,  James Kuffner
and Adolfo Rodríguez.

For whom that don't know it, cmake [1] is a build system. Actually openrave
uses (please Rosen correct me if I'm wrong) autotools to build the program in
a Unix system and custom Visual Studio projects for windows. That's means
that everytime that a file is added (obviously a directory) the visual
project must be regenerated and the unix project too.

Using cmake, _only_ one build system would be needed and with the _same_ build
files, the Unix user will generate a Unix Makefiles (standard UNIX makefiles)
or CodeBlocks, or Eclipse CDT4 or KDevelop 3 project files. The Windows user,
from the same files would generate visual studio 7 (.NET), visual studio 6,
NMake makefiles and Borland makefiles.

I have begun to work on it. But I have some doubts about it. So :

- the gtkogl is working?
- what is mex? matlab/octave directory. I have found that is a compiler but I
have not found where to find it.
- the idea is to create the executable openrave and the library libopenrave.
The plugins are linked to that library. Every plugin is a shared (dll)
library. Do you have a lib and dll when you create it in visual? I'm asking
it because by default VS doesn't export anything and you must specify
__declspec (dllexport). In the rave.h file is showed with DLL_API, but this
is not used. I'm missing something?
- I do not recommend to put dll, binaries, includes from another sources, etc
in the svn ... IMHO.

Well, next week I will continue and I hope to have some prototype soon.

Regards,

Leo











[1] http://www.cmake.org


Reply | Threaded
Open this post in threaded view
|

Re: Propose to migrate to cmake

Rosen Diankov-2
Hi Leopold,

To answer some of your questions:

- gtkogl is not working. originally we had intended it to be a replacement for qt/coin, but that turned out to be too much work.
- mex comes from matlab or octave, it is used to compile C files that can be directly used by them
- the only things we __declspec (dllexport) is the three functions ORCreate, etc on the plugin side... perhaps we would benefit from littered dllexport in more places since we are assuming common header files, but i have plans to do some major organization to how plugin interfaces are managed
- the visual studio project files also create librave
- I totally agree with your concern for putting DLL files in the svn. I personally don't want to do it, but it has to be done because that's just how windows is. If you want to change things, perhaps it is best to start fixing things at the source of the problem: Microsoft.
- It is totally find if you want to make the cmake system work with mingw or cygwin, but I would like to keep separate Visual Studio project files for every single version microsoft plans to release. This is, by far, the best way to guarnatee people won't have build problems on visual studio.

other than that, i look forward to cmake stuff! i've also been planning to do it, but i probably won't get around to it for another month.

rosen,

2008/10/16 Leopold Palomo-Avellaneda <[hidden email]>
Hi,

some weeks ago I interchanged some mails with Rosen Diankov,  James Kuffner
and Adolfo Rodríguez.

For whom that don't know it, cmake [1] is a build system. Actually openrave
uses (please Rosen correct me if I'm wrong) autotools to build the program in
a Unix system and custom Visual Studio projects for windows. That's means
that everytime that a file is added (obviously a directory) the visual
project must be regenerated and the unix project too.

Using cmake, _only_ one build system would be needed and with the _same_ build
files, the Unix user will generate a Unix Makefiles (standard UNIX makefiles)
or CodeBlocks, or Eclipse CDT4 or KDevelop 3 project files. The Windows user,
from the same files would generate visual studio 7 (.NET), visual studio 6,
NMake makefiles and Borland makefiles.

I have begun to work on it. But I have some doubts about it. So :

- the gtkogl is working?
- what is mex? matlab/octave directory. I have found that is a compiler but I
have not found where to find it.
- the idea is to create the executable openrave and the library libopenrave.
The plugins are linked to that library. Every plugin is a shared (dll)
library. Do you have a lib and dll when you create it in visual? I'm asking
it because by default VS doesn't export anything and you must specify
__declspec (dllexport). In the rave.h file is showed with DLL_API, but this
is not used. I'm missing something?
- I do not recommend to put dll, binaries, includes from another sources, etc
in the svn ... IMHO.

Well, next week I will continue and I hope to have some prototype soon.

Regards,

Leo











[1] http://www.cmake.org

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users

Reply | Threaded
Open this post in threaded view
|

Re: Propose to migrate to cmake

Leopold Palomo-Avellaneda
Hi Rosen,

thanks for the quick answer.

A Dijous 16 Octubre 2008, Rosen Diankov va escriure:
> - gtkogl is not working. originally we had intended it to be a replacement
> for qt/coin, but that turned out to be too much work.

svn del gtkgl

you can always return to this code looking on the changelog. IMHO :-)

> - mex comes from matlab or octave, it is used to compile C files that can
> be directly used by them

I didn't find it in any debian package. I will look again on it. Remember that
I will try to make the debian package.
> - the only things we __declspec (dllexport) is the three functions
> ORCreate, etc on the plugin side... perhaps we would benefit from littered
> dllexport in more places since we are assuming common header files, but i
> have plans to do some major organization to how plugin interfaces are
> managed

Ok. good to know it.

> - the visual studio project files also create librave

I supposed that, but it's to do the same work two times :-)

> - I totally agree with your concern for putting DLL files in the svn. I
> personally don't want to do it, but it has to be done because that's just
> how windows is. If you want to change things, perhaps it is best to start
> fixing things at the source of the problem: Microsoft.

:-D

> - It is totally find if you want to make the cmake system work with mingw
> or cygwin, but I would like to keep separate Visual Studio project files
> for every single version microsoft plans to release. This is, by far, the
> best way to guarnatee people won't have build problems on visual studio.

Well, the idea is to have a only _one_ build system. I understand your lack of
confidence in cmake and the visual projects generated, but we worked too hard
this summer and we looove it. Ask to Adolfo.

> other than that, i look forward to cmake stuff! i've also been planning to
> do it, but i probably won't get around to it for another month.

Ok, I propose this:

- I begin on that. I just make some work to help openrave (and us ...) and if
you help me guiding me about the details I think that in a few days we can
have a prototype.
- this prototype (a few files CMakeLists) can coexists with the current build
system. Then you can ask to the users and your self about if it generates
good Makefiles and good VS projects and after decide.
What do you think?

Regards,

Leo

PS thanks for apply my gcc-4.3 patch!!!

> rosen,
>
> 2008/10/16 Leopold Palomo-Avellaneda <[hidden email]>
>
> > Hi,
> >
> > some weeks ago I interchanged some mails with Rosen Diankov,  James
> > Kuffner and Adolfo Rodríguez.
> >
> > For whom that don't know it, cmake [1] is a build system. Actually
> > openrave uses (please Rosen correct me if I'm wrong) autotools to build
> > the program in
> > a Unix system and custom Visual Studio projects for windows. That's means
> > that everytime that a file is added (obviously a directory) the visual
> > project must be regenerated and the unix project too.
> >
> > Using cmake, _only_ one build system would be needed and with the _same_
> > build
> > files, the Unix user will generate a Unix Makefiles (standard UNIX
> > makefiles)
> > or CodeBlocks, or Eclipse CDT4 or KDevelop 3 project files. The Windows
> > user,
> > from the same files would generate visual studio 7 (.NET), visual studio
> > 6, NMake makefiles and Borland makefiles.
> >
> > I have begun to work on it. But I have some doubts about it. So :
> >
> > - the gtkogl is working?
> > - what is mex? matlab/octave directory. I have found that is a compiler
> > but I
> > have not found where to find it.
> > - the idea is to create the executable openrave and the library
> > libopenrave.
> > The plugins are linked to that library. Every plugin is a shared (dll)
> > library. Do you have a lib and dll when you create it in visual? I'm
> > asking it because by default VS doesn't export anything and you must
> > specify __declspec (dllexport). In the rave.h file is showed with
> > DLL_API, but this is not used. I'm missing something?
> > - I do not recommend to put dll, binaries, includes from another sources,
> > etc
> > in the svn ... IMHO.
> >
> > Well, next week I will continue and I hope to have some prototype soon.
> >
> > Regards,
> >
> > Leo
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > [1] http://www.cmake.org
> >
> > -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
> > challenge
> > Build the coolest Linux based applications with Moblin SDK & win great
> > prizes
> > Grand prize is a trip for two to an Open Source event anywhere in the
> > world http://moblin-contest.org/redirect.php?banner_id=100&url=/
> > _______________________________________________
> > Openrave-users mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/openrave-users


--
--
Linux User 152692
PGP: 0xF944807E
Catalonia

signature.asc (197 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Propose to migrate to cmake

Adolfo Rodríguez
In reply to this post by Rosen Diankov-2
Hi all,

I've been following this thread these past couple of days, and I think
there might be a misunderstanding on the use of CMake under Windows.
This is what sparked my concern:

"It is totally find [fine] if you want to make the cmake system work
with mingw or cygwin, but I would like to keep separate Visual Studio
project files for every single version microsoft plans to release. This
is, by far, the best way to guarnatee people won't have build problems
on visual studio."

So, just to make sure we're on the same page:

- CMake does not require neither mingw nor cygwin to be
compiled/executed under Windows. You can either get the source code and
compile it yourself using say Visual Studio, or go for the Win32
installer http://www.cmake.org/cmake/resources/software.html

- CMake can generate Visual Studio project files for versions 6 to 9.
You just have to specify what kind of project you're interested in
generating. So, in a nutshell: one source tree, one set of CMakeLists
files, many possible build types (compiler, platform,...). It is a very
simple and elegant solution. Here's a complete list of the generators
supported in CMake 2.6.2:
http://www.cmake.org/cmake/help/cmake2.6docs.html#section_Generators

Hope to read more on the subject of the CMake migration!

Best,

Adolfo Rodríguez Tsouroukdissian.

Rosen Diankov wrote:

> Hi Leopold,
>
> To answer some of your questions:
>
> - gtkogl is not working. originally we had intended it to be a
> replacement for qt/coin, but that turned out to be too much work.
> - mex comes from matlab or octave, it is used to compile C files that
> can be directly used by them
> - the only things we __declspec (dllexport) is the three functions
> ORCreate, etc on the plugin side... perhaps we would benefit from
> littered dllexport in more places since we are assuming common header
> files, but i have plans to do some major organization to how plugin
> interfaces are managed
> - the visual studio project files also create librave
> - I totally agree with your concern for putting DLL files in the svn.
> I personally don't want to do it, but it has to be done because that's
> just how windows is. If you want to change things, perhaps it is best
> to start fixing things at the source of the problem: Microsoft.
> - It is totally find if you want to make the cmake system work with
> mingw or cygwin, but I would like to keep separate Visual Studio
> project files for every single version microsoft plans to release.
> This is, by far, the best way to guarnatee people won't have build
> problems on visual studio.
>
> other than that, i look forward to cmake stuff! i've also been
> planning to do it, but i probably won't get around to it for another
> month.
>
> rosen,
>
> 2008/10/16 Leopold Palomo-Avellaneda <[hidden email]
> <mailto:[hidden email]>>
>
>     Hi,
>
>     some weeks ago I interchanged some mails with Rosen Diankov,
>      James Kuffner
>     and Adolfo Rodríguez.
>
>     For whom that don't know it, cmake [1] is a build system. Actually
>     openrave
>     uses (please Rosen correct me if I'm wrong) autotools to build the
>     program in
>     a Unix system and custom Visual Studio projects for windows.
>     That's means
>     that everytime that a file is added (obviously a directory) the visual
>     project must be regenerated and the unix project too.
>
>     Using cmake, _only_ one build system would be needed and with the
>     _same_ build
>     files, the Unix user will generate a Unix Makefiles (standard UNIX
>     makefiles)
>     or CodeBlocks, or Eclipse CDT4 or KDevelop 3 project files. The
>     Windows user,
>     from the same files would generate visual studio 7 (.NET), visual
>     studio 6,
>     NMake makefiles and Borland makefiles.
>
>     I have begun to work on it. But I have some doubts about it. So :
>
>     - the gtkogl is working?
>     - what is mex? matlab/octave directory. I have found that is a
>     compiler but I
>     have not found where to find it.
>     - the idea is to create the executable openrave and the library
>     libopenrave.
>     The plugins are linked to that library. Every plugin is a shared (dll)
>     library. Do you have a lib and dll when you create it in visual?
>     I'm asking
>     it because by default VS doesn't export anything and you must specify
>     __declspec (dllexport). In the rave.h file is showed with DLL_API,
>     but this
>     is not used. I'm missing something?
>     - I do not recommend to put dll, binaries, includes from another
>     sources, etc
>     in the svn ... IMHO.
>
>     Well, next week I will continue and I hope to have some prototype
>     soon.
>
>     Regards,
>
>     Leo
>
>
>
>
>
>
>
>
>
>
>
>     [1] http://www.cmake.org
>
>     -------------------------------------------------------------------------
>     This SF.Net email is sponsored by the Moblin Your Move Developer's
>     challenge
>     Build the coolest Linux based applications with Moblin SDK & win
>     great prizes
>     Grand prize is a trip for two to an Open Source event anywhere in
>     the world
>     http://moblin-contest.org/redirect.php?banner_id=100&url=/
>     <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
>     _______________________________________________
>     Openrave-users mailing list
>     [hidden email]
>     <mailto:[hidden email]>
>     https://lists.sourceforge.net/lists/listinfo/openrave-users
>
>

--
Adolfo Rodríguez Tsouroukdissian

Institut d'Organització i Control de Sistemes Industrials - IOC
Av. Diagonal, 647, planta 11, edifici ETSEIB. 08028 Barcelona

Tel. (+34) 93 401 66 58