//
// Licensed under the terms in License.txt
//
// Copyright 2010 Allen Ding. All rights reserved.
//

#import <Foundation/Foundation.h>

#define KW_VERSION 0.5

// Blocks being unavailable cripples the usability of Kiwi, but is supported
// because they are not available on anything less than a device running 3.2.
#if defined(__BLOCKS__)
    #define KW_BLOCKS_ENABLED 1
#endif // #if defined(__BLOCKS__)

// As of iPhone SDK 4 GM, exceptions thrown across an NSInvocation -invoke or
// forwardInvocation: boundary in the simulator will terminate the app instead
// of being caught in @catch blocks from the caller side of the -invoke. Kiwi
// tries to handle this by storing the first exception that it would have
// otherwise thrown in a nasty global that callers can look for and handle.
// (Buggy termination is less desirable than global variables).
//
// Obviously, this can only handles cases where Kiwi itself would have raised
// an exception.
#if TARGET_IPHONE_SIMULATOR
    #define KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG 1
#endif // #if TARGET_IPHONE_SIMULATOR

//
// Licensed under the terms in License.txt
//
// Copyright 2010 Allen Ding. All rights reserved.
//

#import <Foundation/Foundation.h>

#define KW_VERSION 0.5

// Blocks being unavailable cripples the usability of Kiwi, but is supported
// because they are not available on anything less than a device running 3.2.
#if defined(__BLOCKS__)
    #ifndef KW_BLOCKS_ENABLED
        #define KW_BLOCKS_ENABLED 1
    #endif // #ifndef KW_BLOCKS_ENABLED
#endif // #if defined(__BLOCKS__)

// As of iPhone SDK 4 GM, exceptions thrown across an NSInvocation -invoke or
// forwardInvocation: boundary in the simulator will terminate the app instead
// of being caught in @catch blocks from the caller side of the -invoke. Kiwi
// tries to handle this by storing the first exception that it would have
// otherwise thrown in a nasty global that callers can look for and handle.
// (Buggy termination is less desirable than global variables).
//
// Obviously, this can only handles cases where Kiwi itself would have raised
// an exception.
#if TARGET_IPHONE_SIMULATOR
    #define KW_TARGET_HAS_INVOCATION_EXCEPTION_BUG 1
#endif // #if TARGET_IPHONE_SIMULATOR

Add support for disabling blocks externally via preprocessor macro definitions at the project or target level
Add support for disabling blocks externally via preprocessor macro definitions at the project or target level
