[CMake] Top level target depending on a file

Eric Noulard eric.noulard at gmail.com
Wed Dec 14 05:25:05 EST 2011


2011/12/14 Alexander Broekhuis <a.broekhuis at gmail.com>:
> Hi,
>
> Thanks for you replies,

>>
>> Yes but CMake's jobs is to build libraries and executables not "bundle"
>> which is more the CPack's job, however I understand your point.
>>
>> An extra target may be a small price to pay, no?
>
>
> Well I'd rather have a solution without CPack, CPack being a package
> creator, whereas my bundle is a development item.
> If all fails I could make the extra target, but again, the zip file in my
> case is equivalent to a library.

I get that.

>> Yes sure, sometimes file dependencies are needed.
>>
>> By the way I see you custom-commands in order to create a bundle on MacOS?
>> Did you try try CPack MacOSX bundle generator?
>>
>> http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#Bundle_.28OSX_only.29
>>
>
> My "bundles" don't have anything to do with MacOS bundles, the name is a
> coincidence. Some background might be helpful now..

Ok.
May be OSGi_BUNDLE would be a better name then :-]

> I am using CMake to build Apache Celix, which is a project in the Apache
> Incubator. Apache Celix is an implementation of the OSGi specification in C.
> I am not sure if you are familiar with OSGi, but it provides a modular
> system for Java in which new functionality can be added/removed/updated at
> runtime. In Java OSGi a bundle is a regular Jar file with additional
> information in the Manifest file.

I did cross some OSGi in Java not so long ago.

> For Celix we use a similar solution (since a jar file is actually a zip
> file..) where the library is packed in a zip file together with the manifest
> file. One bundle contains always one library, this is why I see the Celix
> bundles as top level artifacts, and not the library. As such, from the Celix
> point of view it makes sense to have one target for creating a Bundle.
>
> More information can be found at: http://incubator.apache.org/celix/
> And specifically on the build
> files: http://incubator.apache.org/celix/documentation/buildingandrunning.html
>
> I hope this makes all a little bit clearer, I understand I am using a rather
> specific solution, but the flexibility of CMake has really helped my
> achieving what I wanted (until now?). This way fits the modular development
> needed in an OSGi based environment.

Yes now it's clear.
You are looking for something like
add_library like command which would produce the OSGi bundle which
is the purpose of your "bundle" macro.

-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list