<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
  <meta name="Generator" content="Zarafa WebApp v7.2.1-51838">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>AW: [swift-users] Build specific Target instead of all</title>
</head>
<body>
<p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">The main goal was to provide a bunch of simple binary entrypoints for splitting up simple tasks, sharing Packages and a shared package module.</span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Due we do not needall util binaryies on each server, a selectice build was decided. Because of the planned nature of the simple entry points utils, greate XXX git repositories for each entry point looks a litle bit overdone.</span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"> </span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">So on SERVER 1 we need only compile and install: UtilOne and UtilThree</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">On SERVER 2 we need only UtilThree</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Assuming having not only three or four utils, maybe something beetween 30 and 50 utils ... splittet up to keep cmd line argument simple.</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;" id="dirtyP"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br></span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">But maybe i'm missing the point ... or is it possible to something like this.</span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Packages/</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Sources/</span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">&nbsp;&nbsp;&nbsp;&nbsp;UtilOne/Package.swift</span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">&nbsp;&nbsp;&nbsp;&nbsp;UtilOne/Sources/main.swift<br></span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">&nbsp;&nbsp;&nbsp;&nbsp;UtilTwo/Package.swift</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">&nbsp;&nbsp;&nbsp;&nbsp;UtilTwo/Sources/main.swift</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"></span><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br></span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;" id="dirtyP"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">So we have to chage to Sources/UtilOne and run $ swift build and if needed for UtilTwo do the same.<br></span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">But would this not end up in installing the references Packages dependenies ( like a mysql/cmysql packe) need in each util in following structure:</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Sources/UtilOne/Packages/**</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Sources/UtilOne/Package.swift</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Sources/UtilOne/Sources/main.swift</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Sources/UtilTwo/Packages/**</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Sources/UtilTwo/Package.swift</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Sources/UtilTwo/Sources/main.swift</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;" id="dirtyP"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">But what if we create for each entry point own package repositoreies and having a meta one with a simple Package.swift referencing all UtilPackages.</span></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">But still, how to accomplis only building a specific package on a server instead of all ?&nbsp;</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;">Need to dig in some more playing, but currently it seems that&nbsp;there is no way to keep the simple stuff simple and no way to simply or minimize the need of indepenent git repositories ...</span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"><br data-mce-bogus="1"></span></p><p data-mce-style="padding: 0; margin: 0;" style="padding: 0; margin: 0;" id="dirtyP"><span id="_mce_caret" data-mce-bogus="true"><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" data-mce-style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;"></span></span></p><blockquote style="border-left: 2px solid #325FBA; padding-left: 5px; margin: 0px 5px;" data-mce-style="border-left: 2px solid #325FBA; padding-left: 5px; margin: 0px 5px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 10pt;" data-mce-style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 10pt;">-----Ursprüngliche Nachricht-----<br><span><strong>Von:</strong> David Turnbull&nbsp;&lt;dturnbull@gmail.com&gt;</span><br><span><strong>Gesendet:</strong> Son 31 Januar 2016 20:32</span><br><span><strong>An:</strong> Stefan Bürk &lt;stefan.buerk@impactmedia.de&gt;</span><br><span><strong>CC:</strong> List, Swift - Community Users (swift-users@swift.org) &lt;swift-users@swift.org&gt;</span><br><span><strong>Betreff:</strong> Re: [swift-users] Build specific Target instead of all</span><br><br></span><!-- begin sanitized html --><div dir="ltr">Each target ends up being a module and won't recompile unless it's changed so I'm not actually sure what your goal is. But making three more packages instead of targets will have the effect you ask for.<div><div><br></div><div>-david &nbsp;<a href="https://github.com/AE9RB/SwiftGL" target="_blank" title="Der externe Link wird in einem neuen Fenster geöffnet">https://github.com/AE9RB/SwiftGL</a><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 31, 2016 at 11:22 AM, Stefan Bürk <span dir="ltr">&lt;<a href="mailto:swift-users@swift.org" target="_blank" title="Der externe Link wird in einem neuen Fenster geöffnet">swift-users@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;">Hi everyone,<br>
<br>
I'm searching for a way to build only a specific Target(chain) instead of all targets in one build run.<br>
<br>
Folderstructure<br>
<br>
Sources/<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UtilOne/main.swift<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UtilTwo/main.swift<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UtilThree/main.swift<br>
<br>
Content of Packages.swift<br>
<br>
import PackageDescription<br>
<br>
let package = Package(<br>
&nbsp; &nbsp; name: "ProjectName",<br>
&nbsp; &nbsp; targets: [<br>
&nbsp; &nbsp; &nbsp; &nbsp; Target(<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: "UtilOne",<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dependencies: []<br>
&nbsp; &nbsp; &nbsp; &nbsp; ),<br>
&nbsp; &nbsp; &nbsp; &nbsp; Target(<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: "UtilTwo",<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dependencies: []<br>
&nbsp; &nbsp; &nbsp; &nbsp; ),<br>
&nbsp; &nbsp; &nbsp; &nbsp; Target(<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: "UtilThree",<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dependencies: [<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Target(name: "UtilOne")<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ]<br>
&nbsp; &nbsp; &nbsp; &nbsp; )<br>
&nbsp; &nbsp; ],<br>
<br>
&nbsp; &nbsp; dependencies: []<br>
)<br>
<br>
For building the project:<br>
<br>
$ swift build<br>
<br>
This will build all three targets in one run.<br>
<br>
What i need is to build a specific target, for example "UtilOne", which only builds the binary for UtilOne.<br>
<br>
Or how to build two targets instead of all threes ?<br>
<br>
Building target "UtilThree" should build UtilOne, because of the dependencies definition, but not UtilTwo.<br>
<br>
I couldnot found any documentation or way to get behind this, is there a way to get this work ?<br>
<br>
Freundliche Grüße<br>
&nbsp;<br>
Stefan Bürk<br>
&nbsp;<br>
<br>
impact.media GmbH<br>
Hirschstr. 8<br>
70173 Stuttgart<br>
<br>
Fon <a href="tel:%2B49-711-252698-00" value="+4971125269800" target="_blank" title="Der externe Link wird in einem neuen Fenster geöffnet">+49-711-252698-00</a><br>
Fax <a href="tel:%2B49-711-252698-90" value="+4971125269890" target="_blank" title="Der externe Link wird in einem neuen Fenster geöffnet">+49-711-252698-90</a><br>
<br>
<a href="mailto:stefan.buerk@impactmedia.de" target="_blank" title="Der externe Link wird in einem neuen Fenster geöffnet">stefan.buerk@impactmedia.de</a> &lt;mailto:<a href="mailto:stefan.buerk@impactmedia.de" target="_blank" title="Der externe Link wird in einem neuen Fenster geöffnet">stefan.buerk@impactmedia.de</a>&gt;<br>
<a href="http://www.impactmedia.de" rel="noreferrer" target="_blank" title="Der externe Link wird in einem neuen Fenster geöffnet">http://www.impactmedia.de</a> &lt;<a href="http://www.impactmedia.de/" rel="noreferrer" target="_blank" title="Der externe Link wird in einem neuen Fenster geöffnet">http://www.impactmedia.de/</a>&gt;<br>
<br>
Sitz Stuttgart, Amtsgericht Stuttgart, HRB 745476<br>
Geschäftsführer: Bernard Cagalj<br>
<br>
Die Mitteilung dieser E-Mail ist vertraulich und nur für den oben<br>
genannten Empfänger bestimmt. Wenn Sie nicht der vorgesehene<br>
Empfänger dieser E-Mail oder mit der Aushändigung an ihn betraut<br>
sind, weisen wir darauf hin, dass jede Form der Kenntnisnahme,<br>
Veröffentlichung, Vervielfältigung sowie Weitergabe des Inhalts<br>
untersagt ist. Wir bitten Sie uns in diesem Fall zu unterrichten.<br>
Vielen Dank!<br>
<br>
The information contained in this E-Mail is privileged and<br>
confidental intended only for the use of the individual or entity<br>
named above. If the reader of this message is not the intended<br>
recipient or competent to deliver it to the intended recipient,<br>
you are hereby notified that any dissemination, distribution or<br>
copying of this E-Mail is strictly prohibited. If you have<br>
received this E-Mail in error, please notify us immediately.<br>
Thank you!<br>
_______________________________________________<br>
swift-users mailing list<br>
<a href="mailto:swift-users@swift.org" target="_blank" title="Der externe Link wird in einem neuen Fenster geöffnet">swift-users@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" target="_blank" title="Der externe Link wird in einem neuen Fenster geöffnet">https://lists.swift.org/mailman/listinfo/swift-users</a><br>
</blockquote></div><br></div>

<!-- end sanitized html --></blockquote>
</body>
</html>