Thanks for pointing <span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; color: rgb(51, 51, 51); ">EXTERNAL_PROJECT , I've looked at it but can't understand how to get the path from outside.</span><div>
<font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">I'll try again see if I missed something about this feature and get back to you.<br>
</span></font><div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">The projects are almost all independent and I need to allow working with a clone of one subproject without retrieving everything, just it dependencies.</span></font></div>
<div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">I'll try to be more clear : </span></font></div>
<div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"> - there is a common language used to describe a "Sequence" (it's not important so just understand that the important projects in the framework will require this)</span></font></div>
<div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"> - there are tools, all made to manipulate the sequences, so each project is independant (separate repo) but some projects need to use other projects, so we need to provide their path in their Cmake</span></font></div>
<div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"> - there are players that are like tools but are just interpreter projects - anyway they are as indpendant or dependant as tools projects/subrepos</span></font></div>
<div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"> - now I have central repository ("default") that is just meant to gather everything together; That's for people wanting everything but they are few. Most subproject developers will just get their dependencies and work from their, without updating the dependencies while developping. If you get the "default" repo, you have synchronized repos togethere (read: we use specific tags for each subrespo). So the default repository is mainly for the developers needing to touch everything. Like me.</span></font></div>
<div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Is it more clear?<br>
</span></font><br><div class="gmail_quote">On Fri, Dec 3, 2010 at 11:16, Marcel Loose <span dir="ltr"><<a href="mailto:loose@astron.nl">loose@astron.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
>>> On 2-12-2010 at 16:12, in message<br>
<AANLkTimJU5WAv=<a href="mailto:EKxnbmkpLnL7dN_c%2BXsSgKOEFm5Le6@mail.gmail.com">EKxnbmkpLnL7dN_c+XsSgKOEFm5Le6@mail.gmail.com</a>>, Klaim<br>
<div><div></div><div class="h5"><<a href="mailto:mjklaim@gmail.com">mjklaim@gmail.com</a>> wrote:<br>
> Hi!<br>
><br>
> I'm currently trying to understand how to use CMake for a non-trivial<br>
setup<br>
> of multiple-projects-framework. I'm a beginner at CMake (as developer<br>
I<br>
> mean, not as library user).<br>
> I've read the docs and I tried to read the Ogre project CMake<br>
organization<br>
> but it's a bit overkill for my project I think. Anyway, I'm lost<br>
here<br>
> because<br>
> I think I don't understand all I need to achieve what I want.<br>
><br>
> My project is made of several sub projects that are all in separate<br>
> (mercurial) repositories.<br>
> There is one "default" repository that use the mercurial subrepos<br>
feature to<br>
> gather everything in one big framework project.<br>
> You can see the repos there :<br>
> <a href="http://code.google.com/p/art-of-sequence/source/browse/" target="_blank">http://code.google.com/p/art-of-sequence/source/browse/</a> (it's an open<br>
source<br>
> project but Idon't have the website ready yet to explain the<br>
concept)<br>
><br>
> The Cmake organisation I want to setup I've already seen somewhere<br>
else I<br>
> think, but I'm a bit lost with all the ways to do it and I think I'll<br>
make<br>
> something very bad if I don't ask here for help here.<br>
> I need each project (subrepo) to be available separately and can be<br>
built<br>
> giving to Cmake the paths of the project's dependencies.<br>
> And I need the default repo to provide the paths.<br>
><br>
> So I have this folder organisation in the default repo (that gather<br>
all<br>
> subrepos) :<br>
><br>
> /language # the intermediate language (AOSL)<br>
> definition project/subrepo<br>
> /tools/ # the folder that will contain all<br>
the<br>
> tools projects/subrepos<br>
> /tools/aosdesigner # a tool project/subrepo (in fact the<br>
most<br>
> important) - an executable<br>
> /tools/aoslcpp # a tool project/subrepo that is a<br>
dependency<br>
> of aosdesigner - a library (shared)<br>
> /players/ # the folder that will contain all<br>
the<br>
> players (AOSL interpreters)<br>
> /players/aoswebplayer # a player project/subrepo<br>
><br>
> There will be additional "tools" and "players" projects, and I think<br>
I'll<br>
> need another folder for "exporters" but that's another subject.<br>
><br>
> Here, what I'm trying to do, is to have a CMakeLists.txt for each<br>
project<br>
> (but "/language" that is not source code but xsd, xml and text).<br>
> Those projects will need the path of dependencies, like<br>
"/tools/aosdesigner"<br>
> will require the path of "/tools/aoslcpp".<br>
><br>
> Then I want to set the paths of each project at the root level. It<br>
would be<br>
> perfect if I could symply get the name of all folders in "/tools/"<br>
and<br>
> "/players/"<br>
> and simply provide them to the CMakeLists.txt of the sub projects.<br>
><br>
> Is there a simple example of this kind of organisation out there that<br>
I<br>
> could be inspered of?<br>
> Do you have some guidance to give me to setup all this?<br>
> I tried to write this organisation but I'm clueless on how to gather<br>
and<br>
> provide the paths of each projects...<br>
><br>
> Once I understand how to do this I think I'll use this organisation<br>
for<br>
> another big project too.<br>
><br>
> Any help would be really.....helpful :)<br>
> Thanks for reading. Tell me if I was not clear on some points.<br>
><br>
> Klaim<br>
<br>
</div></div>Hi Klaim,<br>
<br>
It's not completely clear to me how tightly your subprojects are<br>
coupled.<br>
<br>
I would suggest you'd create a CMake project for each of your<br>
subprojects and use the EXTERNAL_PROJECT feature to import the required<br>
subproject. UNLESS: your subprojects cannot really exist as stand-alone<br>
products, but are just parts of one overall project. In that case, I<br>
would choose to create just one CMake project.<br>
<br>
HTH,<br>
<font color="#888888">Marcel Loose.<br>
</font></blockquote></div><br></div></div>