Boost C++ Libraries: Ticket #8719: Not possible to target older iOS major version when using SDK from later version https://svn.boost.org/trac10/ticket/8719 <p> Current example: I want to build using iOS SDK version 6.1, but with the minimum target OS version set to 5.1. </p> <p> In order to achieve this I set macosx-version-min=5.1, macosx-version=6.1. </p> <p> The code in darwin.jam, however, does not see 5.1 as a valid minimum version when the SDK version is 6.1. The code below appears to permit only 6.0 and 6.1. </p> <pre class="wiki"> if $(version[3]) &gt; 0 { # We have a minor version of an SDK. We want to set up # previous minor versions, plus the current minor version. # So we recurse to set up the previous minor versions, up to # the current version. local minor-minus-1 = [ CALC $(version[3]) - 1 ] ; return [ init-sdk $(condition) : $(root) : $(version[1-2]) $(minor-minus-1) : [ version-to-feature $(version[1-2]) $(minor-minus-1) ] ] $(version-feature) ; } </pre><p> The resulting error when attempting to target 5.1 while using the 6.1 SDK is: </p> <pre class="wiki">/Users/williamg/Projects/Experimenta/universe/boost/boost_1_53_0/tools/build/v2/build/feature.jam:485: in validate-value-string from module feature error: "iphone-5.1" is not a known value of feature &lt;macosx-version-min&gt; error: legal values: "iphone-6.1" "iphone-6.0" "iphonesim-6.1" "iphonesim-6.0" "10.7" "10.6" "10.5" "10.4" "10.3" "10.2" "10.1" "10.0" "10.8" </pre><p> This needs to change so that it's possible to target versions of the OS older than the same major release. </p> <p> Discovered in Boost 1.53, but still present on trunk at time of writing. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/8719 Trac 1.4.3 William Gallafent <william@…> Fri, 21 Jun 2013 11:41:28 GMT <link>https://svn.boost.org/trac10/ticket/8719#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8719#comment:1</guid> <description> <p> I have currently fudged my way around this by adding the following code above the minor-version recursion that I quoted in the original report: </p> <pre class="wiki"> if $(version[2]) &gt; 4 { # ToDo: How do we know at what number to start counting down the minor revision, # for the previous major revision? # For now just fudge: historically the highest it's ever got is 3 (for 4.3). # Should also work out how much lower than current SDK version to go down to, # looking at historical minimum target versions for given SDK versions # (This also applies for actual Mac OS X, as well as iOS) local major-minus-1 = [ CALC $(version[2]) - 1 ] ; return [ init-sdk $(condition) : $(root) : $(version[1]) $(major-minus-1) 3 : [ version-to-feature $(version[1]) $(major-minus-1) 3 ] ] $(version-feature) ; } </pre> </description> <category>Ticket</category> </item> </channel> </rss>