You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@celix.apache.org by Alexander Broekhuis <a....@gmail.com> on 2011/11/17 11:40:56 UTC

Build files

Hi all,

The last few days I've been working on the CMake files and macros used to
build Celix.
The build has changed, and some targets are removed.

Main improvements are:
* When building a single target, only the requested library and bundle are
build. Previously all libraries where build prior to creating a single
bundle.
* When deploying a target, only the required dependencies are build,
previously all libraries where build
* No separate bundle and package target needed. This now is performed
implicitly by building a target
* Improved "up-to-date" usage, when target is deployed, dependencies are
only build when needed. Previously the bundles where always recreated. This
drastically improves the time needed to redeploy targets.
* Added bundles, packages and deployments to the clean target, previously
files remained when running a clean

Also, now a bundle can be made directly, instead of first adding a library
(add_library). To create a bundle, the following macro must be used:

     bundle({bundle_name} SOURCES {sources list} DIRECTORIES {optional
directories} FILES {optional files})

Previously this would have been:

     add_library({bundle_name} SHARED {sources list})
     bundle({bundle_name} DIRECTORIES {optional directories} FILES
{optional files})

All the include_directories and target_link_libraries remain the same.

Above bundle macro will result in a target with the same name
({bundle_name}). Running this target takes care of only building that
bundle (and required dependencies).

So the following targets are available:

    make all  -> build all libraries, bundles and packages
    make deploy -> deploys all deployments
    make {bundle_name} -> build a single bundle (and dependencies)
    make deploy_{deployment_name} -> deploys a single deployment (and
dependencies)
    make clean -> removes all deployments, bundles, libraries etc
    make install-fw -> creates a framework.zip file with the framework,
headers and optionally some bundles (this can be used to have a packaged
version of the framework)

Also it is possible to enter sub directories of the build and run the build
from there. So when running make from "build/shell" only the shell (and
dependencies) will be build. This is the same as running "make shell" in
the build root.

I will probably check this in later today, if there are any more problems
with, or any ideas to improve, the build, feel free to drop a message!

-- 
Met vriendelijke groet,

Alexander Broekhuis

Re: Build files

Posted by Alexander Broekhuis <a....@gmail.com>.
>
> Sounds good to me. Also, your mail is a piece of documentation that we can
> add to the Celix website.
>

Definitely working on that to! :)


-- 
Met vriendelijke groet,

Alexander Broekhuis

Re: Build files

Posted by Marcel Offermans <ma...@luminis.nl>.
Hello Alexander,

On Nov 17, 2011, at 11:40 AM, Alexander Broekhuis wrote:

> I will probably check this in later today, if there are any more problems
> with, or any ideas to improve, the build, feel free to drop a message!

Sounds good to me. Also, your mail is a piece of documentation that we can add to the Celix website.

Greetings, Marcel


Re: Build files

Posted by Alexander Broekhuis <a....@gmail.com>.
> I will probably check this in later today, if there are any more problems
> with, or any ideas to improve, the build, feel free to drop a message!

Everything has been committed to SVN, and the site documentation has been
updated as well. If there is anyone willing to test this, please report
your findings!

Looking forward to hear if all still works!

-- 
Met vriendelijke groet,

Alexander Broekhuis