You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by "Bjoern Petri (JIRA)" <ji...@apache.org> on 2013/11/05 16:33:20 UTC

[jira] [Updated] (CELIX-90) add additional build options for RSA components

     [ https://issues.apache.org/jira/browse/CELIX-90?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bjoern Petri updated CELIX-90:
------------------------------

    Attachment: rsaCmakeBuildOptions.patch

> add additional build options for RSA components
> -----------------------------------------------
>
>                 Key: CELIX-90
>                 URL: https://issues.apache.org/jira/browse/CELIX-90
>             Project: Celix
>          Issue Type: Improvement
>    Affects Versions: 0.0.1-incubating
>            Reporter: Bjoern Petri
>         Attachments: rsaCmakeBuildOptions.patch
>
>
> As discussed with Alexander, I created a patch which allows to enable the Remote Service Admin Bundles in general as well as the single RSA components. This allows me to build the Remote Services Admin without having e.g. a bonjour dependency. 
> For now I stumble over the problem that I can enable the deployment of the calculator example including the discovery_bonjour component but disable the build of the discovery_bonjour component itself. 
> Although the dependency to the discovery_slp is added in the deployment configuration it cannot be enabled (and therefore integrated) anymore as the deployment takes place in the very last step. 



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Re: [jira] [Updated] (CELIX-90) add additional build options for RSA components

Posted by Alexander Broekhuis <a....@gmail.com>.
Hi all,

This patch looks good, it might be worthwhile to do the same for other
parts of the build (examples etc).

A drawback of the current solution (not introduced by this patch) is that
"deployments" don't have any dependencies. Adding dependencies to them (as
done in the patch) will result in configuration errors. This is because the
dependencies mechanism only works one way, ie, when cmake parses the files
it can silently enable projects if they aren't processed. Hence the
reversed order in the top level cmake file.

Since deployments can only be made after all the targets have been
processed, deployments can never silently enable dependencies.

At the moment this is "solved" by giving the subproject more dependencies,
eg not only dependencies required for compilation, but also the ones needed
for deployment. This is not the best solution, it is not obvious why those
dependencies are needed, and with this patch it becomes more obvious.

A workaround for this is to add a "fake/empty" subproject as part of the
top subproject (in the patch that would be the RSA_BUNDLES). This fake
subproject can then be used in the deploy file as check using
is_enabled(..).

So for the RSA the following subprojects are created:

- RSA

-- RSA_DEPLOY_EXAMPLE_BONJOUR // Only has deploy dependencies (it builds
nothing)
-- RSA_DEPLOY_EXAMPLE_SLP // Only has deploy dependencies (it builds
nothing)

-- RSA_TOPOLOGY_MANAGER // Only has build dependencies
-- RSA_RSA // Only has build dependencies
-- RSA_DISCOVERY_SLP // Only has build dependencies
-- RSA_DISCOVERY_BONJOUR // Only has build dependencies
-- RSA_EXAMPLE // Only has build dependencies

Do others have an opinion on this?


2013/11/5 Bjoern Petri (JIRA) <ji...@apache.org>

>
>      [
> https://issues.apache.org/jira/browse/CELIX-90?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel]
>
> Bjoern Petri updated CELIX-90:
> ------------------------------
>
>     Attachment: rsaCmakeBuildOptions.patch
>
> > add additional build options for RSA components
> > -----------------------------------------------
> >
> >                 Key: CELIX-90
> >                 URL: https://issues.apache.org/jira/browse/CELIX-90
> >             Project: Celix
> >          Issue Type: Improvement
> >    Affects Versions: 0.0.1-incubating
> >            Reporter: Bjoern Petri
> >         Attachments: rsaCmakeBuildOptions.patch
> >
> >
> > As discussed with Alexander, I created a patch which allows to enable
> the Remote Service Admin Bundles in general as well as the single RSA
> components. This allows me to build the Remote Services Admin without
> having e.g. a bonjour dependency.
> > For now I stumble over the problem that I can enable the deployment of
> the calculator example including the discovery_bonjour component but
> disable the build of the discovery_bonjour component itself.
> > Although the dependency to the discovery_slp is added in the deployment
> configuration it cannot be enabled (and therefore integrated) anymore as
> the deployment takes place in the very last step.
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v6.1#6144)
>



-- 
Met vriendelijke groet,

Alexander Broekhuis