[sldev] Build errors(in XCode 2.5) with indra.y.h

Argent Stonecutter secret.argent at gmail.com
Mon Oct 1 13:16:02 PDT 2007


On 01-Oct-2007, at 14:46, Ben Byer wrote:
> On Sep 30, 2007, at 6:35 PM, Argent Stonecutter wrote:
>>> Isn't there an option somewhere in XCode to force YACC to
>>> output .h?

>> Did you try the change I suggested for the SConstruct?

> Unfortunately, that's not going to help -- XCode uses its own build  
> system, bypassing SConstruct.

// This stuff can go in some include file with other os-specific code.
// I removed the test for the compiler version, the availability  
macros predate any version of OS X that SL is going to run on.
// To use the XCODE_VERSION_ACTUAL the project will need to be  
modified to expose that constant as a macro.
#ifdef __APPLE_CC__
# include <AvailabilityMacros.h>
# ifdef MAC_OS_X_VERSION_10_5  /* Not defined for pre-leopard  
versions */
#  define YACC_GENERATES_HPP 1
# endif
# ifdef XCODE_VERSION_ACTUAL
#  if XCODE_VERSION_ACTUAL >= 0250 /* or 0300 */
#   define YACC_GENERATES_HPP 1
#  endif
# endif
#endif

// something similar for Windows can go here, if we want to revert  
the hack in the build tools

// then, replace the line including indra.y.h with this...
# ifdef YACC_GENERATES_HPP
#  include "indra.y.hpp"
# else
#  include "indra.y.h"
# endif

Incidentally, I think there's a bug in Apple's docs. 0250 is 168  
decimal. If Apple's actually using that manifest constant in their  
include files they're going to be very unhappy when they get an xcode  
version with a minor version greater than 7. :)



More information about the SLDev mailing list