Changeset 156811 in webkit


Ignore:
Timestamp:
Oct 2, 2013 4:47:01 PM (11 years ago)
Author:
mitz@apple.com
Message:

The Objective-C API should be available in 10.8 builds
https://bugs.webkit.org/show_bug.cgi?id=122245

Reviewed by Mark Rowe.

Enabled the Objective-C API when building on OS X 10.8 with the modern Objective-C runtime,
but kept the availability attributes in API headers for 10.9 and later as they were.

  • API/JSBase.h: When JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 is defined, made

JSC_OBJC_API_ENABLED true on 10.8 and above.

  • API/JSContext.h: When JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 is defined, marked the class

as available on all OS X versions.

  • API/JSManagedValue.h: Ditto.
  • API/JSValue.h: Ditto.
  • API/JSVirtualMachine.h: Ditto.
  • Configurations/Base.xcconfig: Added JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 to

GCC_PREPROCESSOR_DEFINITIONS.

  • JavaScriptCore.xcodeproj/project.pbxproj: Added a script build phase to unifdef the

above header files with JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 either defined or not based on
the OS X version we are targeting.

Location:
trunk/Source/JavaScriptCore
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/API/JSBase.h

    r143637 r156811  
    142142/* Enable the Objective-C API for platforms with a modern runtime. */
    143143#if !defined(JSC_OBJC_API_ENABLED)
     144#ifndef JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080
    144145#define JSC_OBJC_API_ENABLED (defined(__clang__) && defined(__APPLE__) && defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 && !defined(__i386__))
     146#else
     147#define JSC_OBJC_API_ENABLED (defined(__clang__) && defined(__APPLE__) && defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 && !defined(__i386__))
     148#endif
    145149#endif
    146150
  • trunk/Source/JavaScriptCore/API/JSContext.h

    r149401 r156811  
    4242// will be deallocated unless it has been previously retained.
    4343
     44#ifndef JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080
    4445NS_CLASS_AVAILABLE(10_9, NA)
     46#else
     47OBJC_VISIBLE
     48#endif
    4549@interface JSContext : NSObject
    4650
  • trunk/Source/JavaScriptCore/API/JSManagedValue.h

    r148974 r156811  
    4747// Objective-C heap object, as this can very easily create a reference cycle,
    4848// keeping the entire JSContext alive.
     49#ifndef JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080
    4950NS_CLASS_AVAILABLE(10_9, NA)
     51#else
     52OBJC_VISIBLE
     53#endif
    5054@interface JSManagedValue : NSObject
    5155
  • trunk/Source/JavaScriptCore/API/JSValue.h

    r149401 r156811  
    8888// constructor objects.
    8989
     90#ifndef JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080
    9091NS_CLASS_AVAILABLE(10_9, NA)
     92#else
     93OBJC_VISIBLE
     94#endif
    9195@interface JSValue : NSObject
    9296
  • trunk/Source/JavaScriptCore/API/JSVirtualMachine.h

    r148974 r156811  
    3333// separate instances of JSVirtualMachine.
    3434
     35#ifndef JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080
    3536NS_CLASS_AVAILABLE(10_9, NA)
     37#else
     38OBJC_VISIBLE
     39#endif
    3640@interface JSVirtualMachine : NSObject
    3741
  • trunk/Source/JavaScriptCore/ChangeLog

    r156810 r156811  
     12013-10-02  Dan Bernstein  <mitz@apple.com>
     2
     3        The Objective-C API should be available in 10.8 builds
     4        https://bugs.webkit.org/show_bug.cgi?id=122245
     5
     6        Reviewed by Mark Rowe.
     7
     8        Enabled the Objective-C API when building on OS X 10.8 with the modern Objective-C runtime,
     9        but kept the availability attributes in API headers for 10.9 and later as they were.
     10
     11        * API/JSBase.h: When JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 is defined, made
     12        JSC_OBJC_API_ENABLED true on 10.8 and above.
     13        * API/JSContext.h: When JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 is defined, marked the class
     14        as available on all OS X versions.
     15        * API/JSManagedValue.h: Ditto.
     16        * API/JSValue.h: Ditto.
     17        * API/JSVirtualMachine.h: Ditto.
     18        * Configurations/Base.xcconfig: Added JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 to
     19        GCC_PREPROCESSOR_DEFINITIONS.
     20        * JavaScriptCore.xcodeproj/project.pbxproj: Added a script build phase to unifdef the
     21        above header files with JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 either defined or not based on
     22        the OS X version we are targeting.
     23
    1242013-10-02  Michael Saboff  <msaboff@apple.com>
    225
  • trunk/Source/JavaScriptCore/Configurations/Base.xcconfig

    r156610 r156811  
    5050GCC_OBJC_CALL_CXX_CDTORS = YES;
    5151GCC_PRECOMPILE_PREFIX_HEADER = YES;
    52 GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) HAVE_DTRACE=$(HAVE_DTRACE) WEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST HAVE_HEADER_DETECTION_H $(FEATURE_DEFINES) $(GCC_PREPROCESSOR_DEFINITIONS);
     52GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) HAVE_DTRACE=$(HAVE_DTRACE) WEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST HAVE_HEADER_DETECTION_H JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 $(FEATURE_DEFINES) $(GCC_PREPROCESSOR_DEFINITIONS);
    5353GCC_STRICT_ALIASING = YES;
    5454GCC_THREADSAFE_STATICS = NO;
  • trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r156791 r156811  
    46274627                                5D2F7CF90C6875BB00B5B72B /* Update Info.plist with version information */,
    46284628                                932F5B3F0822A1C700736975 /* Headers */,
     4629                                3732811A17FCD235004AD519 /* Postprocess Headers */,
    46294630                                932F5B910822A1C700736975 /* Sources */,
    46304631                                932F5BD20822A1C700736975 /* Frameworks */,
     
    47314732                        shellPath = /bin/sh;
    47324733                        shellScript = "if [ \"${ACTION}\" = \"installhdrs\" ]; then\n    exit 0;\nfi\n\nif [ -f ../../Tools/Scripts/check-for-inappropriate-objc-class-names ]; then\n    ../../Tools/Scripts/check-for-inappropriate-objc-class-names JS || exit $?\nfi";
     4734                };
     4735                3732811A17FCD235004AD519 /* Postprocess Headers */ = {
     4736                        isa = PBXShellScriptBuildPhase;
     4737                        buildActionMask = 2147483647;
     4738                        files = (
     4739                        );
     4740                        inputPaths = (
     4741                                "$(TARGET_BUILD_DIR)/$(PUBLIC_HEADERS_FOLDER_PATH)/JSBase.h",
     4742                                "$(TARGET_BUILD_DIR)/$(PUBLIC_HEADERS_FOLDER_PATH)/JSContext.h",
     4743                                "$(TARGET_BUILD_DIR)/$(PUBLIC_HEADERS_FOLDER_PATH)/JSManagedValue.h",
     4744                                "$(TARGET_BUILD_DIR)/$(PUBLIC_HEADERS_FOLDER_PATH)/JSValue.h",
     4745                                "$(TARGET_BUILD_DIR)/$(PUBLIC_HEADERS_FOLDER_PATH)/JSVirtualMachine.h",
     4746                        );
     4747                        name = "Postprocess Headers";
     4748                        outputPaths = (
     4749                        );
     4750                        runOnlyForDeploymentPostprocessing = 0;
     4751                        shellPath = /bin/sh;
     4752                        shellScript = "cd \"${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}\"\n\nif [[ ${TARGET_MAC_OS_X_VERSION_MAJOR} == \"1080\" ]]; then\n    UNIFDEF_OPTION=\"-DJSC_OBJC_API_AVAILABLE_MAC_OS_X_1080\";\nelse\n    UNIFDEF_OPTION=\"-UJSC_OBJC_API_AVAILABLE_MAC_OS_X_1080\";\nfi\n\nfor HEADER in JSBase.h JSContext.h JSManagedValue.h JSValue.h JSVirtualMachine.h; do\n    unifdef -B ${UNIFDEF_OPTION} -o ${HEADER} ${HEADER}\n    if [[ $? > 1 ]]; then\n        exit 1;\n    fi\ndone";
    47334753                };
    47344754                5D29D8BE0E9860B400C3D2D0 /* Check For Weak VTables and Externals */ = {
Note: See TracChangeset for help on using the changeset viewer.