{"id":256,"date":"2008-05-27T20:31:17","date_gmt":"2008-05-27T19:31:17","guid":{"rendered":"http:\/\/www.malcolmhardie.com\/weblogs\/angus\/2008\/05\/27\/scripts-in-xcode\/"},"modified":"2025-02-01T03:04:15","modified_gmt":"2025-02-01T03:04:15","slug":"scripts-in-xcode","status":"publish","type":"post","link":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/2008\/05\/27\/scripts-in-xcode\/","title":{"rendered":"Scripts in XCode"},"content":{"rendered":"<p>The build system for SQLEditor has lots of steps, from building each of the component frameworks, compiling the application, assembling the bundle, creating a disk image and then uploading everything to the server. (Plus things like version histories and read me files).To reduce errors I have several aggregate targets and a collection of scripts, but I was puzzled how to produce those little note entries that OCUnit generates when it&#8217;s running unit tests. There were several notes I wanted to make but I couldn&#8217;t figure it out.<\/p>\n<p>However it occurred to me one day to inspect the souce of RunTargetTests and the answer was of course right there in the source.<\/p>\n<blockquote>\n<pre>&lt;filename&gt;:&lt;line&gt;: note: &lt;message&gt;<\/pre>\n<\/blockquote>\n<p>gives you a note.<\/p>\n<blockquote>\n<pre>&lt;filename&gt;:&lt;line&gt;: &lt;message&gt;<\/pre>\n<\/blockquote>\n<p>gives you a warning.<\/p>\n<p>where<\/p>\n<pre>&lt;filename&gt;<\/pre>\n<p>is the name of the file you want the message to appear from<\/p>\n<pre>&lt;line&gt;<\/pre>\n<p>is the line number in that file<\/p>\n<pre>&lt;message&gt;<\/pre>\n<p>is the message you want to display<\/p>\n<p>In the note form the word &#8216;note&#8217; is a constant. Don&#8217;t replace it with anything.<\/p>\n<p>As an alternative you put in use an empty filename and 0 for the line if you&#8217;re not interested in these details.<\/p>\n<h4>Example<\/h4>\n<blockquote>\n<pre>@echo \":0: note: disk image creation complete\"<\/pre>\n<\/blockquote>\n<p>Will display the message &#8220;disk image creation complete&#8221; as a note in the build window.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The build system for SQLEditor has lots of steps, from building each of the component frameworks, compiling the application, assembling the bundle, creating a disk image and then uploading everything to the server. (Plus things like version histories and read me files).To reduce errors I have several aggregate targets and a collection of scripts, but [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-256","post","type-post","status-publish","format-standard","hentry","category-macintosh"],"_links":{"self":[{"href":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/wp-json\/wp\/v2\/posts\/256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/wp-json\/wp\/v2\/comments?post=256"}],"version-history":[{"count":1,"href":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/wp-json\/wp\/v2\/posts\/256\/revisions"}],"predecessor-version":[{"id":1444,"href":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/wp-json\/wp\/v2\/posts\/256\/revisions\/1444"}],"wp:attachment":[{"href":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/wp-json\/wp\/v2\/media?parent=256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/wp-json\/wp\/v2\/categories?post=256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.malcolmhardie.com\/weblogs\/angus\/wp-json\/wp\/v2\/tags?post=256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}