>>> On 2-12-2010 at 16:12, in message <aanlktimju5wav=ekxnbmkplnl7dn_c+xssgkoefm5...@mail.gmail.com>, Klaim <mjkl...@gmail.com> wrote: > Hi! > > I'm currently trying to understand how to use CMake for a non-trivial setup > of multiple-projects-framework. I'm a beginner at CMake (as developer I > mean, not as library user). > I've read the docs and I tried to read the Ogre project CMake organization > but it's a bit overkill for my project I think. Anyway, I'm lost here > because > I think I don't understand all I need to achieve what I want. > > My project is made of several sub projects that are all in separate > (mercurial) repositories. > There is one "default" repository that use the mercurial subrepos feature to > gather everything in one big framework project. > You can see the repos there : > http://code.google.com/p/art-of-sequence/source/browse/ (it's an open source > project but Idon't have the website ready yet to explain the concept) > > The Cmake organisation I want to setup I've already seen somewhere else I > think, but I'm a bit lost with all the ways to do it and I think I'll make > something very bad if I don't ask here for help here. > I need each project (subrepo) to be available separately and can be built > giving to Cmake the paths of the project's dependencies. > And I need the default repo to provide the paths. > > So I have this folder organisation in the default repo (that gather all > subrepos) : > > /language # the intermediate language (AOSL) > definition project/subrepo > /tools/ # the folder that will contain all the > tools projects/subrepos > /tools/aosdesigner # a tool project/subrepo (in fact the most > important) - an executable > /tools/aoslcpp # a tool project/subrepo that is a dependency > of aosdesigner - a library (shared) > /players/ # the folder that will contain all the > players (AOSL interpreters) > /players/aoswebplayer # a player project/subrepo > > There will be additional "tools" and "players" projects, and I think I'll > need another folder for "exporters" but that's another subject. > > Here, what I'm trying to do, is to have a CMakeLists.txt for each project > (but "/language" that is not source code but xsd, xml and text). > Those projects will need the path of dependencies, like "/tools/aosdesigner" > will require the path of "/tools/aoslcpp". > > Then I want to set the paths of each project at the root level. It would be > perfect if I could symply get the name of all folders in "/tools/" and > "/players/" > and simply provide them to the CMakeLists.txt of the sub projects. > > Is there a simple example of this kind of organisation out there that I > could be inspered of? > Do you have some guidance to give me to setup all this? > I tried to write this organisation but I'm clueless on how to gather and > provide the paths of each projects... > > Once I understand how to do this I think I'll use this organisation for > another big project too. > > Any help would be really.....helpful :) > Thanks for reading. Tell me if I was not clear on some points. > > Klaim
Hi Klaim, It's not completely clear to me how tightly your subprojects are coupled. I would suggest you'd create a CMake project for each of your subprojects and use the EXTERNAL_PROJECT feature to import the required subproject. UNLESS: your subprojects cannot really exist as stand-alone products, but are just parts of one overall project. In that case, I would choose to create just one CMake project. HTH, Marcel Loose. _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake