<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Building the Build System &#8211; Part 1 &#8211; Abandoning the Build Panel</title>
	<atom:link href="http://robnapier.net/blog/build-system-1-build-panel-360/feed" rel="self" type="application/rss+xml" />
	<link>http://robnapier.net/blog/build-system-1-build-panel-360</link>
	<description>Mac and iPhone, on the brain</description>
	<lastBuildDate>Thu, 02 Feb 2012 16:51:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: pankaj sejwal</title>
		<link>http://robnapier.net/blog/build-system-1-build-panel-360/comment-page-1#comment-11977</link>
		<dc:creator>pankaj sejwal</dc:creator>
		<pubDate>Sat, 10 Sep 2011 10:27:01 +0000</pubDate>
		<guid isPermaLink="false">http://robnapier.net/blog/?p=360#comment-11977</guid>
		<description>&lt;p&gt;excellant article...thanks pal..!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>excellant article&#8230;thanks pal..!</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Building The Ultimate Cocos2D Project &#124; Learn &#38; Master Cocos2D Game Development</title>
		<link>http://robnapier.net/blog/build-system-1-build-panel-360/comment-page-1#comment-6648</link>
		<dc:creator>Building The Ultimate Cocos2D Project &#124; Learn &#38; Master Cocos2D Game Development</dc:creator>
		<pubDate>Fri, 25 Feb 2011 19:05:31 +0000</pubDate>
		<guid isPermaLink="false">http://robnapier.net/blog/?p=360#comment-6648</guid>
		<description>&lt;p&gt;[...] wanting to do for a long time: to use XCConfig files for build settings. Cocoaphony has a blog post Abandoning the Build Panel describing the technique. The good part is: there&#8217;s less confusion between project-wide and [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] wanting to do for a long time: to use XCConfig files for build settings. Cocoaphony has a blog post Abandoning the Build Panel describing the technique. The good part is: there&#8217;s less confusion between project-wide and [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: rpv</title>
		<link>http://robnapier.net/blog/build-system-1-build-panel-360/comment-page-1#comment-3342</link>
		<dc:creator>rpv</dc:creator>
		<pubDate>Tue, 09 Nov 2010 10:51:52 +0000</pubDate>
		<guid isPermaLink="false">http://robnapier.net/blog/?p=360#comment-3342</guid>
		<description>&lt;p&gt;&lt;a href=&quot;#comment-3319&quot; rel=&quot;nofollow&quot;&gt;@Rob Napier &lt;/a&gt; 
Thanks for the help, i think the problem was that i didn&#039;t set project level, just executable level, that&#039;s actually very annoying in xcode that you can be confused by those two.&lt;/p&gt;

&lt;p&gt;How else you would avoid building the same files for different targets, i.e. use it in your test app, shared library, static library and executable, if you add new file you need to add it to the 4 targets rather then one.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p><a href="#comment-3319" rel="nofollow">@Rob Napier </a> 
Thanks for the help, i think the problem was that i didn&#8217;t set project level, just executable level, that&#8217;s actually very annoying in xcode that you can be confused by those two.</p>

<p>How else you would avoid building the same files for different targets, i.e. use it in your test app, shared library, static library and executable, if you add new file you need to add it to the 4 targets rather then one.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Rob Napier</title>
		<link>http://robnapier.net/blog/build-system-1-build-panel-360/comment-page-1#comment-3319</link>
		<dc:creator>Rob Napier</dc:creator>
		<pubDate>Mon, 08 Nov 2010 17:10:14 +0000</pubDate>
		<guid isPermaLink="false">http://robnapier.net/blog/?p=360#comment-3319</guid>
		<description>&lt;p&gt;@rpv, Things like DEBUG should be defined in the Debug.xcconfig and Release.xcconfig, which are applied at the Project level. This way it will apply for everything you build, executable and library.&lt;/p&gt;

&lt;p&gt;I&#039;m somewhat confused about your creation of static libraries here to avoid maintenance problems, though. Static libraries can sometimes help build times for very large projects, but generally it is &lt;em&gt;easiest&lt;/em&gt; to have one project file per executable, and then add all the files you want into that project file, shared or not. I&#039;ve seldom had libraries actually make maintenance any easier. Between symbol visibility, debugging headaches, and lack of automatic refactoring, I&#039;ve generally found libraries to be more hassle than help, unless the library can really be shared between multiple projects without a lot of funky build differences.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@rpv, Things like DEBUG should be defined in the Debug.xcconfig and Release.xcconfig, which are applied at the Project level. This way it will apply for everything you build, executable and library.</p>

<p>I&#8217;m somewhat confused about your creation of static libraries here to avoid maintenance problems, though. Static libraries can sometimes help build times for very large projects, but generally it is <em>easiest</em> to have one project file per executable, and then add all the files you want into that project file, shared or not. I&#8217;ve seldom had libraries actually make maintenance any easier. Between symbol visibility, debugging headaches, and lack of automatic refactoring, I&#8217;ve generally found libraries to be more hassle than help, unless the library can really be shared between multiple projects without a lot of funky build differences.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: rpv</title>
		<link>http://robnapier.net/blog/build-system-1-build-panel-360/comment-page-1#comment-3318</link>
		<dc:creator>rpv</dc:creator>
		<pubDate>Mon, 08 Nov 2010 16:38:15 +0000</pubDate>
		<guid isPermaLink="false">http://robnapier.net/blog/?p=360#comment-3318</guid>
		<description>&lt;p&gt;&lt;a href=&quot;#comment-3317&quot; rel=&quot;nofollow&quot;&gt;@Rob Napier &lt;/a&gt; 
so there is no way to have a setting defined at the target level which is propagated to the libraries level ? i was hoping i when i select i..e debug the DEBUG macro goes all the way to the dependable libraries. the reason i want this is that the files which are common for both application and library i put to the static library, rather then the application to avoid maintenance nightmare, but those files have multiple platform definitions i.e (iphone, desktop, etc), so what you propose to have another level, i.e. common_library_iphone, application_iphone, common_library_desktop, application_desktop, but that also means i will need to create debug/release versions as well then. i was really hoping there is a way how to set some kind of settings at the very high level which is goes all the way to every file you build.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p><a href="#comment-3317" rel="nofollow">@Rob Napier </a> 
so there is no way to have a setting defined at the target level which is propagated to the libraries level ? i was hoping i when i select i..e debug the DEBUG macro goes all the way to the dependable libraries. the reason i want this is that the files which are common for both application and library i put to the static library, rather then the application to avoid maintenance nightmare, but those files have multiple platform definitions i.e (iphone, desktop, etc), so what you propose to have another level, i.e. common_library_iphone, application_iphone, common_library_desktop, application_desktop, but that also means i will need to create debug/release versions as well then. i was really hoping there is a way how to set some kind of settings at the very high level which is goes all the way to every file you build.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Rob Napier</title>
		<link>http://robnapier.net/blog/build-system-1-build-panel-360/comment-page-1#comment-3317</link>
		<dc:creator>Rob Napier</dc:creator>
		<pubDate>Mon, 08 Nov 2010 16:10:33 +0000</pubDate>
		<guid isPermaLink="false">http://robnapier.net/blog/?p=360#comment-3317</guid>
		<description>&lt;p&gt;@rpv. Consider the case of a library that could be compiled with encryption or without encryption. In that case, you would create two library targets, libfoo.a and libfoocrypto.a for instance. One target would have an xcconfig file with crypto and the other would omit it. You could create a LibraryShared.xcconfig file to hold common values for your LibraryCrypto and LibraryNonCrypto xcconfigs. Each executable would then have a dependency on the specific library it wants.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@rpv. Consider the case of a library that could be compiled with encryption or without encryption. In that case, you would create two library targets, libfoo.a and libfoocrypto.a for instance. One target would have an xcconfig file with crypto and the other would omit it. You could create a LibraryShared.xcconfig file to hold common values for your LibraryCrypto and LibraryNonCrypto xcconfigs. Each executable would then have a dependency on the specific library it wants.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: rpv</title>
		<link>http://robnapier.net/blog/build-system-1-build-panel-360/comment-page-1#comment-3315</link>
		<dc:creator>rpv</dc:creator>
		<pubDate>Mon, 08 Nov 2010 15:23:36 +0000</pubDate>
		<guid isPermaLink="false">http://robnapier.net/blog/?p=360#comment-3315</guid>
		<description>&lt;p&gt;If i have a project which builds exectuable but also has a few static libraries, what the correct way to set preprocessor in such a way that when i build executable the static library inherits the settings of the exectuable, i.e. i build programA and programB and need static library to be built with settings from from programA when the target is A and B when the target is B ?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>If i have a project which builds exectuable but also has a few static libraries, what the correct way to set preprocessor in such a way that when i build executable the static library inherits the settings of the exectuable, i.e. i build programA and programB and need static library to be built with settings from from programA when the target is A and B when the target is B ?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Rob Napier</title>
		<link>http://robnapier.net/blog/build-system-1-build-panel-360/comment-page-1#comment-1875</link>
		<dc:creator>Rob Napier</dc:creator>
		<pubDate>Fri, 09 Jul 2010 12:46:24 +0000</pubDate>
		<guid isPermaLink="false">http://robnapier.net/blog/?p=360#comment-1875</guid>
		<description>&lt;p&gt;Thanks for the tip. The SDK is one of the few things I recommend setting outside of the xcconfig files. I set it in the General pane (rather than the build pane, though doing so updates the build pane). It seems to be used by a lot of things in Xcode.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks for the tip. The SDK is one of the few things I recommend setting outside of the xcconfig files. I set it in the General pane (rather than the build pane, though doing so updates the build pane). It seems to be used by a lot of things in Xcode.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: clozach</title>
		<link>http://robnapier.net/blog/build-system-1-build-panel-360/comment-page-1#comment-1871</link>
		<dc:creator>clozach</dc:creator>
		<pubDate>Fri, 09 Jul 2010 05:07:08 +0000</pubDate>
		<guid isPermaLink="false">http://robnapier.net/blog/?p=360#comment-1871</guid>
		<description>&lt;p&gt;This is awesome...great to actually have this info humanely accessible to version control! One caveat worth appending to your instructions: Xcode 3.2.3 appears to have a bug whereby the option to select between Device and Simulator disappears from the &quot;Overview&quot; target menu if you delete &#039;Base SDK&#039; (i.e., SDKROOT) from the project info&#039;s Build settings.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>This is awesome&#8230;great to actually have this info humanely accessible to version control! One caveat worth appending to your instructions: Xcode 3.2.3 appears to have a bug whereby the option to select between Device and Simulator disappears from the &#8220;Overview&#8221; target menu if you delete &#8216;Base SDK&#8217; (i.e., SDKROOT) from the project info&#8217;s Build settings.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: ramzez</title>
		<link>http://robnapier.net/blog/build-system-1-build-panel-360/comment-page-1#comment-306</link>
		<dc:creator>ramzez</dc:creator>
		<pubDate>Sat, 03 Oct 2009 20:26:42 +0000</pubDate>
		<guid isPermaLink="false">http://robnapier.net/blog/?p=360#comment-306</guid>
		<description>&lt;p&gt;Yeah that&#039;s an interesting approach and unbelievable short comming of IDE, if i have time i would have a look at it. Interstingly all other platforms we work with don&#039;t have such limitation. I just used bugreports to ask for Parent-Child relationship as a new Feature.&lt;/p&gt;

&lt;p&gt;Thank you very much for your help and time!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Yeah that&#8217;s an interesting approach and unbelievable short comming of IDE, if i have time i would have a look at it. Interstingly all other platforms we work with don&#8217;t have such limitation. I just used bugreports to ask for Parent-Child relationship as a new Feature.</p>

<p>Thank you very much for your help and time!</p>]]></content:encoded>
	</item>
</channel>
</rss>

