From celix-dev-return-186-apmail-incubator-celix-dev-archive=incubator.apache.org@incubator.apache.org Mon Jun 4 10:17:43 2012 Return-Path: X-Original-To: apmail-incubator-celix-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-celix-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1947498C3 for ; Mon, 4 Jun 2012 10:17:43 +0000 (UTC) Received: (qmail 586 invoked by uid 500); 4 Jun 2012 10:17:43 -0000 Delivered-To: apmail-incubator-celix-dev-archive@incubator.apache.org Received: (qmail 547 invoked by uid 500); 4 Jun 2012 10:17:42 -0000 Mailing-List: contact celix-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: celix-dev@incubator.apache.org Delivered-To: mailing list celix-dev@incubator.apache.org Received: (qmail 527 invoked by uid 99); 4 Jun 2012 10:17:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Jun 2012 10:17:42 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of a.broekhuis@gmail.com designates 209.85.214.175 as permitted sender) Received: from [209.85.214.175] (HELO mail-ob0-f175.google.com) (209.85.214.175) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Jun 2012 10:17:37 +0000 Received: by obhx4 with SMTP id x4so8337677obh.6 for ; Mon, 04 Jun 2012 03:17:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=CNAItspEnVoihkWWuTAl20G49bsfhl8okoUCqITnJ7o=; b=JkCoYgeeo7Ns4xkgEwIQ0JGHvUBYL6KdIvAMWhS0yn1tNWUCtS+3/onpIS9vLzwIT9 ATZXOvGntB2zfP5OIqbKT7bH9plZ+SWf+6oBq0f04VPiG0Mk8PzKKAocEjd78/Xe6VCw sJUmY6WOoQ2R7DP3KKoYaSuX+AJbovT+H4ciWF+EE8gZZNsOEl0WkSD4faZg0DuDbHQe 2iQFznph/CKDOMfC9euKy3p3ADXidd0Na1MpOTwItpsYnnsf6JHkhOW4ni8/splkbb2/ 6avLKAZQpI2+PVJx3nbtCqod7supCpYFNIDfYt8buFJndCeEgB5fNWmzWd/E29o9qM8s OnRw== MIME-Version: 1.0 Received: by 10.60.21.38 with SMTP id s6mr11195271oee.53.1338805036916; Mon, 04 Jun 2012 03:17:16 -0700 (PDT) Received: by 10.182.65.97 with HTTP; Mon, 4 Jun 2012 03:17:16 -0700 (PDT) Date: Mon, 4 Jun 2012 12:17:16 +0200 Message-ID: Subject: Project structure From: Alexander Broekhuis To: celix-dev@incubator.apache.org Content-Type: multipart/alternative; boundary=e89a8fb2068aa61f2b04c1a2d60b X-Virus-Checked: Checked by ClamAV on apache.org --e89a8fb2068aa61f2b04c1a2d60b Content-Type: text/plain; charset=ISO-8859-1 Hi all, Currently Celix uses a rather fixed project structure for the core (framework) and other bundles. To be able to build anything, all dependencies for everything need to be available. This now results in a long list including GTK etc. This doesn't make much sense when only the framework needs to be build. To this end I've been working on some ideas for a more separated project/build structure, and I'd like to propose it here: Each subproject will be a separate CMake project, if a project can be a dependency to another project it has to provide/generate a {Project}Config file like discussed on [1]. Projects having dependencies will use find_package({Project}) This solution requires that project at least have run the cmake configure. To be able to automate this two possible solutions come to mind: The first one is a cmake command which takes care of downloading/building/installing projects [2] The second one is more simpler and calls the cmake executable on the dependent project. In this case the {Project}Config takes care of building the project. At this moment the second solution makes more sense for Celix, the trunk contains all projects, and everything is downloaded at once. I have created a simple example for this, if anyone is interested in it I can upload it somewhere. Anyone have any other ideas/suggestions regarding this problem? [1]: http://www.cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file [2]: http://www.kitware.com/products/html/BuildingExternalProjectsWithCMake2.8.html -- Met vriendelijke groet, Alexander Broekhuis --e89a8fb2068aa61f2b04c1a2d60b--