<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Its definitely possible to have multiple targets in a blueprint.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Most blueprints have.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
You can set a version by calling "craft --set version=master kstars"</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
To manage syncronised releases have a look on <a href="https://github.com/KDE/craft-blueprints-kde/tree/master/extragear/kexi">
https://github.com/KDE/craft-blueprints-kde/tree/master/extragear/kexi</a> or frameworks.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
The version.ini holds all targets, and the blueprints just call <span>self</span>.versionInfo.setDefaultValues() .</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Cheers,</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hannah<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Kde-windows <kde-windows-bounces@kde.org> on behalf of Robert Lancaster <rlancaste@gmail.com><br>
<b>Sent:</b> Thursday, January 31, 2019 2:48 PM<br>
<b>To:</b> Hannah von Reth<br>
<b>Cc:</b> kde-windows@kde.org<br>
<b>Subject:</b> Re: Craft recipes with more than one target</font>
<div> </div>
</div>
<div dir="auto">Hi Hannah,
<div><br>
</div>
<div>Thank you for the quick reply.  I will discuss that solution with Jasem.</div>
<div><br>
</div>
<div>We do want to have a stable build certainly as you state but we also want a “latest” build which uses the latest INDI code downloaded from git, since we not only need craft to build stable releases of the software, but also need it for developing the software
 on macs, as well as distribution of the latest build for testing purposes and for people who want to play with the latest source code.  As of now they are two separate recipes, for example indiserver and indiserver-latest, but I would like to combine them.
  I have successfully used “latest” as a version “number” in craft and can probably use that to modify the recipe to decide whether to use the stable tarballs or download from git.  I hope to reduce the number of recipes for INDI from 24 down to 12, 2, or maybe
 1.</div>
<div><br>
</div>
<div>Thanks,</div>
<div><br>
</div>
<div>Rob<br>
<div dir="ltr"><br>
On Jan 31, 2019, at 3:58 AM, Hannah von Reth <<a href="mailto:hannah@von-reth.de">hannah@von-reth.de</a>> wrote:<br>
<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="x_WordSection1"></div>
<div class="x_WordSection1">
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature">Hi Robert, Hi Jasem,</a></p>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature"><br>
</a></p>
<div class="x_MsoNormal" style="margin:0px 0cm; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature">I'd suggest to add a CMakeMakefile.txt to </a><a href="https://github.com/indilib/indi" id="LPNoLP213256">https://github.com/indilib/indi</a> and provide cmake options to enable/disablemodules.</div>
<div class="x_MsoNormal" style="margin:0px 0cm; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature">Alternatively those modules should become real modules and reside in their own repository.<br>
</a></div>
<div class="x_MsoNormal" style="margin:0px 0cm; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature">The current layout it really uncommon.</a></div>
<div class="x_MsoNormal" style="margin:0px 0cm; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature"><br>
</a></div>
<div class="x_MsoNormal" style="margin:0px 0cm; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature">I also recommend to use tarballs for stable builds, this would eliminate the need to clone the source 12 times.</a></div>
<div class="x_MsoNormal" style="margin:0px 0cm; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature"><br>
</a></div>
<div class="x_MsoNormal" style="margin:0px 0cm; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature">Cheers,</a></div>
<div class="x_MsoNormal" style="margin:0px 0cm; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature"><br>
</a></div>
<div class="x_MsoNormal" style="margin:0px 0cm; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_signature">Hannah<br>
</a></div>
<br>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div class="x_WordSection1"><span style=""></span></div>
<div class="x_WordSection1">
<div style="border:none; border-top:solid #E1E1E1 1.0pt; padding:3.0pt 0cm 0cm 0cm">
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif; border:none; padding:0cm">
<a name="x__olk_replyheader"><b>From: </b></a><a href="mailto:rlancaste@gmail.com"><span style="">Robert Lancaster</span><span style=""></span></a><span style=""><br>
<b>Sent: </b>31 January 2019 04:24<br>
<b>To: </b></span><a href="mailto:vonreth@kde.org"><span style="">Hannah von Reth</span><span style=""></span></a><span style="">;
</span><a href="mailto:kde-windows@kde.org"><span style="">kde-windows@kde.org</span><span style=""></span></a><span style=""><br>
<b>Cc: </b></span><a href="mailto:mutlaqja@ikarustech.com"><span style="">Jasem Mutlaq</span><span style=""></span></a><span style=""><br>
<b>Subject: </b>Craft recipes with more than one target</span></p>
</div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
<span style=""></span>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<a name="x__olk_quotedtext"><span style="">Hi Hannah, </span></a></p>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">I have a question about whether craft is capable of doing something.  In my quest to build Mac craft recipes for building KStars, I have made a number of recipes.   One set of them though, seems a little silly.  I had to make one
 recipe for building indiserver, one for making indiserver 3rdParty, and one for each of the Indi driver libraries (there are 10 of them) which are dependencies of the indiserver 3rdParty build.  Each recipe is fairly easy to write since they are almost identical.
  It also makes some sense because people may want to install libsbig but not install INDI, since they might want to use it for something else.  But there are a couple of issues with that.   First, there are at least 12 recipes to maintain, which are all coming
 from the same source.  Each of these 12 recipes uses the exact same repository:  </span></span><a href="https://github.com/indilib/indi"><span style=""><span style="">https://github.com/indilib/indi</span></span><span style=""></span></a><span style=""><span style="">.
   Another issue with that is file size and download speed, because the download of indi for each recipe is 481 MB apiece.  That gives a total of 5.6 GB for the whole INDI build.  And when INDI changes they would all need updates. . .</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">So I could see a couple of solutions to this:</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">One might be to download the repository once, and then somehow point all of them to the same source folder.  This would have the advantage of reducing the file size, but still allowing a user to build whichever part of indi they
 like as well as build it all with the craft dependency structure as I currently have them organized.  But I’m not sure how to change this setting to make all of them use the same folder.  Right now of course each one downloads to its own source folder based
 on the package name.</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">Another one would be to somehow write the 3rd party recipe to build all of the libraries in addition to the 3rd party build.  Is there a way to do something like this, where you can specify more than one source folder, so that
 it runs the configure, make, and install steps for each one?  The following will not work currently because it will just do the second one.</span></span></p>
</div>
<div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">self.targetInstSrc['Latest'] = "3rdparty/libaltaircam"</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">        self.targetInstSrc['Latest'] = “3rdParty"</span></span></p>
</div>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">Another solution that I found is that I can specify from the command line the source folder, so that in my script, I might be able to say:</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">craft -vvv -i --src-dir ~/AstroRoot/kstars-craft/download/git/libs/indiserver3rdParty-latest/3rdparty/libfishcamp indiserver3rdParty-latest</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">craft -vvv -i --src-dir ~/AstroRoot/kstars-craft/download/git/libs/indiserver3rdParty-latest/3rdparty indiserver3rdParty-latest</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">But to do it this way, I cannot specify the targetInstSrc folder because it will try to look in a subfolder when I specify src-dir</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">What would be the best approach, or do you have a better one?</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">In other news, I almost have the KStars recipes finished.  Most of the things we need are now building well.  This  week I wrote the code that we need to build KStars using those recipes and make a repository for it.  We can now
 successfully build a dmg that works almost as well as the old scripts that used homebrew do.  There’s just a few more things to iron out.  If you are interested, the build script is here:</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""></span><a href="https://github.com/rlancaste/kstars-on-osx-craft"><span style=""><span style="">https://github.com/rlancaste/kstars-on-osx-craft</span></span><span style=""></span></a><span style=""><span style=""></span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">And my Mac versions of the recipes are here:</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""></span><a href="https://github.com/rlancaste/craft-blueprints-kde"><span style=""><span style="">https://github.com/rlancaste/craft-blueprints-kde</span></span><span style=""></span></a><span style=""><span style=""></span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">We probably will have the issues worked out by next week.</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">Thanks,</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style="">Rob</span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
<p class="x_MsoNormal" style="margin:0cm 0cm 0.0001pt; font-size:11pt; font-family:"Calibri",sans-serif">
<span style=""><span style=""> </span></span></p>
</div>
</div>
</blockquote>
</div>
</div>
</body>
</html>