Re: Using Centipede for C++ project

Alexander Lichius <[email protected]> 23 Jan 2004 08:41:33 +0100
Newsgroups gmane.comp.krysalis.user
Message-ID <[email protected]>
Hi Bharat,

I have tried to achieve that too, but compared to developing with java
it is not that easy. It depends on your environment.

For compiling c/cc code with ant one can use the ant-contrib cpptask
(have a look at http://ant-contrib.sf.net) which work fine for all
platforms.

But to implement the features of centipede (like autodownloading
dependencies and building a classpath from this information, packaging
all needed stuff into a jar and so on, one has to extend go further.

Currently I am going to implement a custom build system basing on
vanilla ant with the new features of V1.6 (macrodef, presetdef, import),
skipping the autodownloading and that stuff.

After that is done I would try to go working on centipede/gump or maybe
maven again.

Some problems I encountered and did not have time to solve:

1. Naming conventions on different platforms
   
One has to differ between the several possible outputs of c/cc
compilation on the different platforms.

Outputs: - executable
	 - shared library
	 - static library
	 - header files

Platforms:
	Windows: - *.lib, *.dll, *.exe, *.h
	Unix:	 - *.so, *.a, <executable without or with custom
		   extension>, *.h
	Other:	 - ?

2. Versioning

How would you implement version selection basing on the filenames. Say,
you would like to link against shared library libShared.so in version
1.0.1-alpha. How would you stamp that into the library on all supported
platforms? And further how would you stamp that into the header files?

- Packaging every single lib with the associated headers into a
tar.gz/zip and naming that zip like the jars in centipede
(libShared-1.0.1-alpha.zip). Imagine that for a project which uses a
bunch of different libraries. 
Additionally existing projects do not package their libs such a way, but
deliver the whole application in a single package (like
doxygen-1.3.8.tar.gz or stuff).

- Download the package, uncompress and link to the libs, but rely on the
name of the directory to state the version?

- How to build the includepath, library path, the systemincludepath and
the systemlibs?

That are only some of the traps I have found, but maybe another mind
will bring some enlightenment into this topic.

Hope this helps you some way ...

Regards

Alex




Am Don, 2004-01-22 um 18.21 schrieb Bharat:
> Hi All:
> 
> I have been using Centipede integrated with a bunch of other tools for
> the Java world. I now want to use it for a C++ project.
> 
> 1. How easy is it to use Centipede for a C++ project?
> 
> 2. What tools are available for integration with Centipede for the C++
> world ?? (Unit testing, load testing, documentation, style check,
> xref, code coverage???)
> 
> Any articles, links, info/advice would be greatly appreciated.
> 
> Thanks,
> 
> Bharat
> 
>  
> 
> 
> ______________________________________________________________________
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free web site building tool. Try it!



-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn