Changeset 254676 in webkit


Ignore:
Timestamp:
Jan 16, 2020 6:47:17 AM (4 years ago)
Author:
weinig@apple.com
Message:

Platform.h is out of control Part 5: Split HAVE_* macro definitions out of Platform.h and into a new PlatformHave.h
https://bugs.webkit.org/show_bug.cgi?id=206307

Reviewed by Anders Carlsson.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Platform.h:
  • wtf/PlatformHave.h: Copied from Source/WTF/wtf/Platform.h.
Location:
trunk/Source/WTF
Files:
4 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r254632 r254676  
     12020-01-15  Sam Weinig  <weinig@apple.com>
     2
     3        Platform.h is out of control Part 5: Split HAVE_* macro definitions out of Platform.h and into a new PlatformHave.h
     4        https://bugs.webkit.org/show_bug.cgi?id=206307
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * WTF.xcodeproj/project.pbxproj:
     9        * wtf/CMakeLists.txt:
     10        * wtf/Platform.h:
     11        * wtf/PlatformHave.h: Copied from Source/WTF/wtf/Platform.h.
     12
    1132020-01-15  Keith Miller  <keith_miller@apple.com>
    214
  • trunk/Source/WTF/WTF.xcodeproj/project.pbxproj

    r254632 r254676  
    443443                7C137942222326D500D7A824 /* ieee.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ieee.h; sourceTree = "<group>"; };
    444444                7C137943222326D500D7A824 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
     445                7C3A45D023CFA883007DE3A6 /* PlatformHave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformHave.h; sourceTree = "<group>"; };
    445446                7C3F72391D78811900674E26 /* Brigand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Brigand.h; sourceTree = "<group>"; };
    446447                7C42307123CE2D8A006E54D0 /* PlatformEnable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformEnable.h; sourceTree = "<group>"; };
     
    11271128                                7C42307223CE2D8A006E54D0 /* PlatformCPU.h */,
    11281129                                7C42307123CE2D8A006E54D0 /* PlatformEnable.h */,
     1130                                7C3A45D023CFA883007DE3A6 /* PlatformHave.h */,
    11291131                                7C42307423CEB187006E54D0 /* PlatformLegacy.h */,
    11301132                                7C42307323CE2D8B006E54D0 /* PlatformOS.h */,
  • trunk/Source/WTF/wtf/CMakeLists.txt

    r254632 r254676  
    173173    PlatformCPU.h
    174174    PlatformEnable.h
     175    PlatformHave.h
    175176    PlatformLegacy.h
    176177    PlatformOS.h
  • trunk/Source/WTF/wtf/Platform.h

    r254572 r254676  
    11/*
    2  * Copyright (C) 2006-2019 Apple Inc. All rights reserved.
     2 * Copyright (C) 2006-2020 Apple Inc. All rights reserved.
    33 * Copyright (C) 2007-2009 Torch Mobile, Inc.
    44 * Copyright (C) 2010, 2011 Research In Motion Limited. All rights reserved.
     
    4646
    4747/* HAVE() - specific system features (headers, functions or similar) that are present or not */
    48 #define HAVE(WTF_FEATURE) (defined HAVE_##WTF_FEATURE  && HAVE_##WTF_FEATURE)
    49 
     48#include <wtf/PlatformHave.h>
    5049
    5150/* ==== Policy decision macros: these define policy choices for a particular port. ==== */
     
    5756
    5857
     58
    5959#if PLATFORM(COCOA)
    6060#if defined __has_include && __has_include(<CoreFoundation/CFPriv.h>)
     
    7777#define USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1
    7878#endif
    79 
    80 #if CPU(ARM_NEON)
    81 /* All NEON intrinsics usage can be disabled by this macro. */
    82 #define HAVE_ARM_NEON_INTRINSICS 1
    83 #endif
    84 
    85 /* FIXME: This should be renamed to WTF_CPU_ARM_IDIV_INSTRUCTIONS and moved to CPU.h */
    86 #if defined(__ARM_ARCH_EXT_IDIV__) || CPU(APPLE_ARMV7S)
    87 #define HAVE_ARM_IDIV_INSTRUCTIONS 1
    88 #endif
    89 
    9079
    9180
     
    119108
    120109/* Standard libraries */
    121 #if defined(HAVE_FEATURES_H) && HAVE_FEATURES_H
    122 /* If the included features.h is glibc's one, __GLIBC__ is defined. */
    123 #include <features.h>
    124 #endif
    125110
    126111/* FIXME: ASSERT_ENABLED should defined in different, perhaps its own, file. */
     
    186171
    187172#if PLATFORM(COCOA)
    188 #define HAVE_OUT_OF_PROCESS_LAYER_HOSTING 1
    189 #endif
    190 
    191 #if PLATFORM(COCOA)
    192173#define USE_CF 1
    193174#endif
     
    215196
    216197#if PLATFORM(MAC)
    217 #define HAVE_RUNLOOP_TIMER 1
    218 #endif
    219 
    220 #if PLATFORM(MAC)
    221 #define HAVE_SEC_KEYCHAIN 1
    222 #endif
    223 
    224 #if PLATFORM(MAC)
    225 #define HAVE_HISERVICES 1
    226 #endif
    227 
    228 #if PLATFORM(MAC)
    229198#define USE_APPKIT 1
    230199#endif
     
    235204
    236205#if PLATFORM(MAC)
    237 #define HAVE_NETWORK_EXTENSION 1
    238 #endif
    239 
    240 #if PLATFORM(MAC)
    241206#define USE_PLUGIN_HOST_PROCESS 1
    242 #endif
    243 
    244 #if PLATFORM(IOS_FAMILY)
    245 #define HAVE_NETWORK_EXTENSION 1
    246 #endif
    247 
    248 #if PLATFORM(IOS_FAMILY)
    249 #define HAVE_READLINE 1
    250207#endif
    251208
     
    258215#endif
    259216
    260 #if PLATFORM(IOS_FAMILY) && CPU(ARM_NEON)
    261 #undef HAVE_ARM_NEON_INTRINSICS
    262 #define HAVE_ARM_NEON_INTRINSICS 0
    263 #endif
    264 
    265 #if !defined(HAVE_PDFHOSTVIEWCONTROLLER_SNAPSHOTTING) && PLATFORM(IOS)
    266 #define HAVE_PDFHOSTVIEWCONTROLLER_SNAPSHOTTING 1
    267 #endif
    268 
    269 #if !defined(HAVE_VISIBILITY_PROPAGATION_VIEW) && PLATFORM(IOS_FAMILY)
    270 #define HAVE_VISIBILITY_PROPAGATION_VIEW 1
    271 #endif
    272 
    273 #if !defined(HAVE_UISCENE) && PLATFORM(IOS_FAMILY)
    274 #define HAVE_UISCENE 1
    275 #endif
    276 
    277 #if !defined(HAVE_AVSTREAMSESSION) && PLATFORM(MAC)
    278 #define HAVE_AVSTREAMSESSION 1
    279 #endif
    280 
    281 #if !defined(HAVE_PASSKIT_API_TYPE) && (PLATFORM(IOS_FAMILY) || PLATFORM(MAC))
    282 #define HAVE_PASSKIT_API_TYPE 1
    283 #endif
    284 
    285 #if !defined(HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER) && (PLATFORM(IOS) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400))
    286 #define HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER 1
    287 #endif
    288 
    289217#if !defined(USE_UIKIT_KEYBOARD_ADDITIONS) && (PLATFORM(IOS) || PLATFORM(MACCATALYST))
    290218#define USE_UIKIT_KEYBOARD_ADDITIONS 1
    291219#endif
    292220
    293 
    294 #if !defined(HAVE_ACCESSIBILITY) && (PLATFORM(COCOA) || PLATFORM(WIN) || PLATFORM(GTK) || PLATFORM(WPE))
    295 #define HAVE_ACCESSIBILITY 1
    296 #endif
    297 
    298 /* FIXME: Remove after CMake build enabled on Darwin */
    299 #if OS(DARWIN)
    300 #define HAVE_ERRNO_H 1
    301 #endif
    302 
    303 #if OS(DARWIN)
    304 #define HAVE_LANGINFO_H 1
    305 #endif
    306 
    307 #if OS(DARWIN)
    308 #define HAVE_LOCALTIME_R 1
    309 #endif
    310 
    311 #if OS(DARWIN)
    312 #define HAVE_MMAP 1
    313 #endif
    314 
    315 #if OS(DARWIN)
    316 #define HAVE_REGEX_H 1
    317 #endif
    318 
    319 #if OS(DARWIN)
    320 #define HAVE_SIGNAL_H 1
    321 #endif
    322 
    323 #if OS(DARWIN)
    324 #define HAVE_STAT_BIRTHTIME 1
    325 #endif
    326 
    327 #if OS(DARWIN)
    328 #define HAVE_STRINGS_H 1
    329 #endif
    330 
    331 #if OS(DARWIN)
    332 #define HAVE_STRNSTR 1
    333 #endif
    334 
    335 #if OS(DARWIN)
    336 #define HAVE_SYS_PARAM_H 1
    337 #endif
    338 
    339 #if OS(DARWIN)
    340 #define HAVE_SYS_TIME_H 1
    341 #endif
    342 
    343 #if OS(DARWIN)
    344 #define HAVE_TM_GMTOFF 1
    345 #endif
    346 
    347 #if OS(DARWIN)
    348 #define HAVE_TM_ZONE 1
    349 #endif
    350 
    351 #if OS(DARWIN)
    352 #define HAVE_TIMEGM 1
    353 #endif
    354 
    355 #if OS(DARWIN)
    356 #define HAVE_PTHREAD_MAIN_NP 1
    357 #endif
    358 
    359 #if OS(DARWIN) && (CPU(X86_64) || CPU(ARM64))
    360 #define HAVE_INT128_T 1
    361 #endif
    362 
    363221#if OS(UNIX)
    364222#define USE_PTHREADS 1
    365223#endif
    366224
    367 #if OS(UNIX) && !OS(FUCHSIA)
    368 #define HAVE_RESOURCE_H 1
    369 #endif
    370 
    371 #if OS(UNIX) && !OS(FUCHSIA)
    372 #define HAVE_PTHREAD_SETSCHEDPARAM 1
    373 #endif
    374 
    375 #if OS(DARWIN)
    376 #define HAVE_DISPATCH_H 1
    377 #endif
    378 
    379 #if OS(DARWIN)
    380 #define HAVE_MADV_FREE 1
    381 #endif
    382 
    383 #if OS(DARWIN)
    384 #define HAVE_MADV_FREE_REUSE 1
    385 #endif
    386 
    387 #if OS(DARWIN)
    388 #define HAVE_MADV_DONTNEED 1
    389 #endif
    390 
    391 #if OS(DARWIN)
    392 #define HAVE_MERGESORT 1
    393 #endif
    394 
    395 #if OS(DARWIN)
    396 #define HAVE_PTHREAD_SETNAME_NP 1
    397 #endif
    398 
    399 #if OS(DARWIN)
    400 #define HAVE_READLINE 1
    401 #endif
    402 
    403 #if OS(DARWIN)
    404 #define HAVE_SYS_TIMEB_H 1
    405 #endif
    406 
    407 #if OS(DARWIN)
    408 #define HAVE_AUDIT_TOKEN 1
    409 #endif
    410 
    411 #if OS(DARWIN) && __has_include(<mach/mach_exc.defs>) && !PLATFORM(GTK)
    412 #define HAVE_MACH_EXCEPTIONS 1
    413 #endif
    414 
    415225#if OS(DARWIN) && !PLATFORM(GTK)
    416226#define USE_ACCELERATE 1
    417227#endif
    418 
    419 #if OS(DARWIN) && !PLATFORM(IOS_FAMILY)
    420 #define HAVE_HOSTED_CORE_ANIMATION 1
    421 #endif
    422 
    423 
    424 #if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || defined(__GLIBC__) || defined(__BIONIC__)) && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)))
    425 #define HAVE_MACHINE_CONTEXT 1
    426 #endif
    427 
    428 #if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__) && !CPU(MIPS))
    429 #define HAVE_BACKTRACE 1
    430 #endif
    431 
    432 #if OS(DARWIN) || OS(LINUX)
    433 #if PLATFORM(GTK)
    434 #if defined(__GLIBC__) && !defined(__UCLIBC__) && !CPU(MIPS)
    435 #define HAVE_BACKTRACE_SYMBOLS 1
    436 #endif
    437 #endif /* PLATFORM(GTK) */
    438 #define HAVE_DLADDR 1
    439 #endif /* OS(DARWIN) || OS(LINUX) */
    440 
    441228
    442229#if OS(WINDOWS)
     
    451238#endif
    452239#endif /* !defined(USE_JSVALUE64) && !defined(USE_JSVALUE32_64) */
    453 
    454 #if __has_include(<System/pthread_machdep.h>)
    455 #define HAVE_FAST_TLS 1
    456 #endif
    457 
    458 #if COMPILER(GCC_COMPATIBLE)
    459 #define HAVE_COMPUTED_GOTO 1
    460 #endif
    461240
    462241/* FIXME: This name should be more specific if it is only for use with CallFrame* */
     
    466245#endif
    467246
    468 #if CPU(ARM64E) && OS(DARWIN)
    469 #define HAVE_FJCVTZS_INSTRUCTION 1
    470 #endif
    471 
    472 #if PLATFORM(IOS)
    473 #define HAVE_APP_LINKS 1
    474 #endif
    475 
    476247#if PLATFORM(IOS)
    477248#define USE_PASSKIT 1
     
    486257#endif
    487258
    488 #if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST)
    489 #define HAVE_CELESTIAL 1
    490 #endif
    491 
    492 #if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST)
    493 #define HAVE_CORE_ANIMATION_RENDER_SERVER 1
    494 #endif
    495 
    496 #if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST) && !PLATFORM(APPLETV)
    497 #define HAVE_PARENTAL_CONTROLS_WITH_UNBLOCK_HANDLER 1
    498 #endif
    499 
    500259#if PLATFORM(COCOA)
    501260#define USE_AVFOUNDATION 1
     
    506265#endif
    507266
    508 /* FIXME: Enable HAVE_PARENTAL_CONTROLS for watchOS Simulator once rdar://problem/54608386 is resolved */
    509 #if PLATFORM(COCOA) && (!PLATFORM(APPLETV) && (!PLATFORM(WATCHOS) || !PLATFORM(IOS_FAMILY_SIMULATOR)))
    510 #define HAVE_PARENTAL_CONTROLS 1
    511 #endif
    512 
    513 #if PLATFORM(COCOA) && !PLATFORM(APPLETV)
    514 #define HAVE_AVKIT 1
    515 #endif
    516 
    517267#if PLATFORM(COCOA)
    518268#define USE_METAL 1
    519269#endif
    520 
    521270
    522271#if USE(GLIB)
     
    544293#endif
    545294
    546 #if PLATFORM(COCOA)
    547 #define HAVE_AVFOUNDATION_VIDEO_OUTPUT 1
    548 #endif
    549 
    550 #if PLATFORM(COCOA)
    551 #define HAVE_CORE_VIDEO 1
    552 #endif
    553 
    554 #if PLATFORM(COCOA)
    555 #define HAVE_MEDIA_PLAYER 1
    556 #endif
    557 
    558 #if PLATFORM(COCOA)
    559 #define HAVE_AVFOUNDATION_MEDIA_SELECTION_GROUP 1
    560 #endif
    561 
    562 #if PLATFORM(COCOA)
    563 #define HAVE_AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT 1
    564 #endif
    565 
    566 #if PLATFORM(COCOA)
    567 #define HAVE_MEDIA_ACCESSIBILITY_FRAMEWORK 1
    568 #endif
    569 
    570 #if PLATFORM(COCOA)
    571 #define HAVE_AVFOUNDATION_LOADER_DELEGATE 1
    572 #endif
    573 
    574295#if !PLATFORM(WIN)
    575296#define USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR 1
    576297#endif
    577298
    578 #if PLATFORM(MAC) || PLATFORM(MACCATALYST)
    579 #define HAVE_APPLE_GRAPHICS_CONTROL 1
    580 #endif
    581 
    582 #if PLATFORM(MAC) || PLATFORM(MACCATALYST)
    583 #define HAVE_NSCURSOR 1
    584 #endif
    585 
    586299#if PLATFORM(MAC)
    587300#define USE_COREAUDIO 1
     
    592305#endif
    593306
    594 #if !defined(HAVE_QOS_CLASSES) && PLATFORM(COCOA)
    595 #define HAVE_QOS_CLASSES 1
    596 #endif
    597 
    598 #if !defined(HAVE_VOUCHERS) && PLATFORM(COCOA)
    599 #define HAVE_VOUCHERS 1
    600 #endif
    601 
    602307#define USE_GRAMMAR_CHECKING 1
    603308
     
    625330
    626331#if PLATFORM(COCOA)
    627 #define HAVE_AVASSETREADER 1
    628 #endif
    629 
    630 #if PLATFORM(COCOA)
    631332#define USE_AUDIO_SESSION 1
    632 #endif
    633 
    634 #if PLATFORM(COCOA)
    635 #define HAVE_IOSURFACE 1
    636 #endif
    637 
    638 #if PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR)
    639 #define HAVE_IOSURFACE_COREIMAGE_SUPPORT 1
    640 #endif
    641 
    642 #if PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR) && !PLATFORM(MACCATALYST)
    643 #define HAVE_IOSURFACE_ACCELERATOR 1
    644333#endif
    645334
     
    651340#endif
    652341
    653 #if PLATFORM(MAC)
    654 #define HAVE_NS_ACTIVITY 1
    655 #endif
    656 
    657 
    658 /* Set TARGET_OS_IPHONE to 0 by default to allow using it as a guard
     342/* Set TARGET_OS_IPHONE to 0 by default to allow using it as a guard
    659343 * in cross-platform the same way as it is used in OS(DARWIN) code. */
    660344#if !defined(TARGET_OS_IPHONE) && !OS(DARWIN)
     
    672356#if PLATFORM(COCOA) && USE(APPLE_INTERNAL_SDK)
    673357#define USE_OS_STATE 1
    674 #endif
    675 
    676 #if PLATFORM(COCOA)
    677 #define HAVE_SEC_TRUST_SERIALIZATION 1
    678358#endif
    679359
     
    712392
    713393#if PLATFORM(MAC)
    714 #define HAVE_TOUCH_BAR 1
    715 #endif
    716 
    717 #if PLATFORM(MAC)
    718394#define USE_DICTATION_ALTERNATIVES 1
    719 #endif
    720 
    721 
    722 #if PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(MACCATALYST) || USE(GCRYPT)
    723 #define HAVE_RSA_PSS 1
    724395#endif
    725396
     
    728399#endif
    729400
    730 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000)
    731 #define HAVE_HSTS_STORAGE_PATH 1
    732 #endif
    733 
    734 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS) || PLATFORM(MACCATALYST)
    735 #define HAVE_URL_FORMATTING 1
    736 #endif
    737 
    738 #if !OS(WINDOWS)
    739 #define HAVE_STACK_BOUNDS_FOR_NEW_THREAD 1
    740 #endif
    741 
    742 #if PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(MACCATALYST)
    743 #define HAVE_AVCONTENTKEYSESSION 1
    744 #endif
    745 
    746 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS) || PLATFORM(MACCATALYST)
    747 #define HAVE_SEC_KEY_PROXY 1
    748 #endif
    749 
    750401#if PLATFORM(COCOA) && USE(CA)
    751402#define USE_IOSURFACE_CANVAS_BACKING_STORE 1
    752403#endif
    753404
    754 /* FIXME: Should this be enabled or IOS_FAMILY, not just IOS? */
    755 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS)
    756 #define HAVE_FOUNDATION_WITH_SAVE_COOKIES_WITH_COMPLETION_HANDLER 1
    757 #endif
    758 
    759 /* FIXME: Should this be enabled for IOS_FAMILY, not just IOS? */
    760 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS)
    761 #define HAVE_FOUNDATION_WITH_SAME_SITE_COOKIE_SUPPORT 1
    762 #endif
    763 
    764 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED < 101400
    765 #define HAVE_NSHTTPCOOKIESTORAGE__INITWITHIDENTIFIER_WITH_INACCURATE_NULLABILITY 1
    766 #endif
    767 
    768 #if PLATFORM(COCOA)
    769 #define HAVE_CFNETWORK_WITH_CONTENT_ENCODING_SNIFFING_OVERRIDE 1
    770405/* The override isn't needed on iOS family, as the default behavior is to not sniff. */
    771406/* FIXME: This should probably be enabled on 10.13.2 and newer, not just 10.14 and newer. */
     
    773408#define USE_CFNETWORK_CONTENT_ENCODING_SNIFFING_OVERRIDE 1
    774409#endif
    775 #endif
    776 
    777 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(GTK)
    778 #define HAVE_OS_DARK_MODE_SUPPORT 1
    779 #endif
    780 
    781 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
    782 #define HAVE_CG_FONT_RENDERING_GET_FONT_SMOOTHING_DISABLED 1
    783 #endif
    784 
    785 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY)
    786 #define HAVE_CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED 1
    787 #endif
    788 
    789 #ifdef __APPLE__
    790 #define HAVE_FUNC_USLEEP 1
    791 #endif
    792410
    793411#if PLATFORM(MAC) || PLATFORM(WPE)
     
    796414#endif
    797415
    798 #if PLATFORM(MAC)
    799 #define HAVE_WINDOW_SERVER_OCCLUSION_NOTIFICATIONS 1
    800 #endif
    801 
    802 #if PLATFORM(COCOA)
    803 #define HAVE_SEC_ACCESS_CONTROL 1
    804 #endif
    805 
    806 #if PLATFORM(IOS)
    807 /* FIXME: SafariServices.framework exists on macOS. It is only used by WebKit on iOS, so the behavior is correct, but the name is misleading. */
    808 #define HAVE_SAFARI_SERVICES_FRAMEWORK 1
    809 #endif
    810 
    811 #if PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(WATCHOS)
    812 #define HAVE_SAFE_BROWSING 1
    813 #endif
    814 
    815 #if PLATFORM(IOS)
    816 #define HAVE_LINK_PREVIEW 1
    817 #endif
    818 
    819 #if (PLATFORM(IOS_FAMILY) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400))
    820 #define HAVE_ACCESSIBILITY_SUPPORT 1
    821 #endif
    822 
    823 #if PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000 && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130100
    824 #define HAVE_ACCESSIBILITY_BUNDLES_PATH 1
    825 #endif
    826 
    827 #if PLATFORM(IOS_FAMILY) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400)
    828 #define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE 1
    829 #endif
    830 
    831 #if (PLATFORM(MAC) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 && __MAC_OS_X_VERSION_MAX_ALLOWED >= 101404)) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 120000 && __IPHONE_OS_VERSION_MAX_ALLOWED >= 120200) || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    832 #define HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY 1
    833 #endif
    834 
    835 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000)
    836 #define HAVE_CFNETWORK_NSURLSESSION_STRICTRUSTEVALUATE 1
    837 #endif
    838 
    839 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY)
    840 #define HAVE_CFNETWORK_NEGOTIATED_SSL_PROTOCOL_CIPHER 1
    841 #endif
    842 
    843 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101600) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000)
    844 #define HAVE_CFNETWORK_METRICS_APIS_V4 1
    845 #endif
    846 
    847 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500
    848 #define HAVE_CSCHECKFIXDISABLE 1
    849 #endif
    850 
    851 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS_FAMILY)
    852 #define HAVE_SANDBOX_ISSUE_MACH_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN 1
    853 #endif
    854 
    855 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS_FAMILY)
    856 #define HAVE_SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN 1
    857 #endif
    858 
    859 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000)
    860 #define HAVE_MDNS_FAST_REGISTRATION 1
    861 #endif
    862 
    863 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS_FAMILY)
    864 #define HAVE_DISALLOWABLE_USER_INSTALLED_FONTS 1
    865 #endif
    866 
    867 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000)
    868 #define HAVE_CTFONTCREATEFORCHARACTERSWITHLANGUAGEANDOPTION 1
    869 #endif
    870 
    871 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000)
    872 #define HAVE_CTFONTTRANSFORMGLYPHSWITHLANGUAGE 1
    873 #endif
    874 
    875 #if PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000
    876 #define HAVE_ARKIT_QUICK_LOOK_PREVIEW_ITEM 1
    877 #endif
    878 
    879 #if PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000
    880 #define HAVE_UI_WK_DOCUMENT_CONTEXT 1
    881 #endif
    882 
    883 #if PLATFORM(MACCATALYST)
    884 #define HAVE_HOVER_GESTURE_RECOGNIZER 1
    885 #endif
    886 
    887 #if PLATFORM(MACCATALYST)
    888 #define HAVE_UI_PARALLAX_TRANSITION_GESTURE_RECOGNIZER 1
    889 #endif
    890 
    891 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY)
    892 #define HAVE_ALLOWS_SENSITIVE_LOGGING 1
    893 #endif
    894 
    895 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY)
    896 #define HAVE_FAIRPLAYSTREAMING_CENC_INITDATA 1
    897 #endif
    898 
    899 #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    900 #define HAVE_UI_SCROLL_VIEW_INDICATOR_FLASHING_SPI 1
    901 #endif
    902 
    903 #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    904 #define HAVE_APP_LINKS_WITH_ISENABLED 1
    905 #endif
    906 
    907 #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000)
    908 #define HAVE_ROUTE_SHARING_POLICY_LONG_FORM_VIDEO 1
    909 #endif
    910 
    911 #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 120000 && !PLATFORM(IOS_SIMULATOR))
    912 #define HAVE_DEVICE_MANAGEMENT 1
    913 #endif
    914 
    915416#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED < 101500
    916417#define USE_REALPATH_FOR_DLOPEN_PREFLIGHT 1
    917418#endif
    918419
    919 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    920 #define HAVE_NSURLSESSION_WEBSOCKET 1
    921 #endif
    922 
    923 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    924 #define HAVE_AVPLAYER_RESOURCE_CONSERVATION_LEVEL 1
    925 #endif
    926 
    927 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 120000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    928 #define HAVE_CORETEXT_AUTO_OPTICAL_SIZING 1
    929 #endif
    930 
    931 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101500) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED < 130000)
    932 #define HAVE_NSFONT_WITH_OPTICAL_SIZING_BUG 1
    933 #endif
    934 
    935 #if (PLATFORM(IOS) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500))
    936 #define HAVE_APP_SSO 1
    937 #endif
    938 
    939 #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000 || PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) || PLATFORM(MACCATALYST)
    940 #define HAVE_TLS_PROTOCOL_VERSION_T 1
    941 #endif
    942 
    943 #if PLATFORM(IOS) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) || PLATFORM(MACCATALYST)
    944 #define HAVE_SEC_TRUST_EVALUATE_WITH_ERROR 1
    945 #endif
    946 
    947420#if PLATFORM(IOS) || PLATFORM(MACCATALYST)
    948421#define USE_UICONTEXTMENU 1
    949422#endif
    950423
    951 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500
    952 #define HAVE_SUBVIEWS_IVAR_SPI 1
    953 #endif
    954 
    955 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED < 101500
    956 #define HAVE_SUBVIEWS_IVAR_DECLARED_BY_SDK 1
    957 #endif
    958 
    959424#if PLATFORM(MAC) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    960425#define USE_PLATFORM_SYSTEM_FALLBACK_LIST 1
    961426#endif
    962427
    963 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 101500
    964 #define HAVE_AX_CLIENT_TYPE 1
    965 #endif
    966 
    967 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    968 #define HAVE_DESIGN_SYSTEM_UI_FONTS 1
    969 #endif
    970 
    971 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || (PLATFORM(IOS) && !PLATFORM(IOS_SIMULATOR))
    972 #define HAVE_DEVICE_IDENTITY 1
    973 #endif
    974 
    975 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY)
    976 #define HAVE_DATA_PROTECTION_KEYCHAIN 1
    977 #endif
    978 
    979 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR))
    980 #define HAVE_NEAR_FIELD 1
    981 #endif
    982 
    983428#if PLATFORM(IOS_FAMILY) || (!(defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC) && (OS(LINUX) && (PLATFORM(GTK) || PLATFORM(WPE))))
    984429#define USE_BMALLOC_MEMORY_FOOTPRINT_API 1
    985430#endif
    986431
    987 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS_FAMILY)
    988 #define HAVE_OS_SIGNPOST 1
    989 #endif
    990432
    991433
     
    1009451
    1010452
    1011 /* FIXME: The following are currenly positioned at the bottom of this file as they are currently dependent on ENABLE macros. */
     453/* FIXME: The following are currenly positioned at the bottom of this file as they are currently dependent on ENABLE or USE macros. */
     454
     455/* FIXME: The availability of RSA_PSS should not depend on the policy decision to USE(GCRYPT). */
     456#if PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(MACCATALYST) || USE(GCRYPT)
     457#define HAVE_RSA_PSS 1
     458#endif
    1012459
    1013460/* FIXME: Remove dependence on ENABLE(WEB_RTC). */
  • trunk/Source/WTF/wtf/PlatformHave.h

    r254626 r254676  
    11/*
    2  * Copyright (C) 2006-2019 Apple Inc. All rights reserved.
     2 * Copyright (C) 2006-2020 Apple Inc. All rights reserved.
    33 * Copyright (C) 2007-2009 Torch Mobile, Inc.
    44 * Copyright (C) 2010, 2011 Research In Motion Limited. All rights reserved.
     
    2828#pragma once
    2929
    30 /* Include compiler specific macros */
    31 #include <wtf/Compiler.h>
    32 
    33 /* ==== Platform adaptation macros: these describe properties of the target environment. ==== */
    34 
    35 /* CPU() - the target CPU architecture */
    36 #include <wtf/PlatformCPU.h>
    37 
    38 /* OS() - underlying operating system; only to be used for mandated low-level services like
    39    virtual memory, not to choose a GUI toolkit */
    40 #include <wtf/PlatformOS.h>
    41 
    42 /* PLATFORM() - handles OS, operating environment, graphics API, and
    43    CPU. This macro will be phased out in favor of platform adaptation
    44    macros, policy decision macros, and top-level port definitions. */
    45 #include <wtf/PlatformLegacy.h>
    46 
    4730/* HAVE() - specific system features (headers, functions or similar) that are present or not */
    48 #define HAVE(WTF_FEATURE) (defined HAVE_##WTF_FEATURE  && HAVE_##WTF_FEATURE)
    49 
    50 
    51 /* ==== Policy decision macros: these define policy choices for a particular port. ==== */
    52 
    53 /* USE() - use a particular third-party library or optional OS service */
    54 #define USE(WTF_FEATURE) (defined USE_##WTF_FEATURE  && USE_##WTF_FEATURE)
    55 /* ENABLE() - turn on a specific feature of WebKit */
    56 #define ENABLE(WTF_FEATURE) (defined ENABLE_##WTF_FEATURE  && ENABLE_##WTF_FEATURE)
    57 
    58 
    59 #if PLATFORM(COCOA)
    60 #if defined __has_include && __has_include(<CoreFoundation/CFPriv.h>)
    61 #define USE_APPLE_INTERNAL_SDK 1
    62 #endif
    63 #endif
    64 
    65 /* MIPS requires allocators to use aligned memory */
    66 #if CPU(MIPS) || CPU(MIPS64)
    67 #define USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1
    68 #endif
    69 
    70 /*ARMv5TE requires allocators to use aligned memory*/
    71 #if defined(__ARM_ARCH_5E__) || defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__)
    72 #define USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1
    73 #endif
    74 
    75 /*ARMv5TE requires allocators to use aligned memory*/
    76 #if defined(__TARGET_ARCH_5E) || defined(__TARGET_ARCH_5TE) || defined(__TARGET_ARCH_5TEJ)
    77 #define USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1
    78 #endif
     31#define HAVE(WTF_FEATURE) (defined HAVE_##WTF_FEATURE && HAVE_##WTF_FEATURE)
     32
     33
     34#if defined(HAVE_FEATURES_H) && HAVE_FEATURES_H
     35/* If the included features.h is glibc's one, __GLIBC__ is defined. */
     36#include <features.h>
     37#endif
     38
    7939
    8040#if CPU(ARM_NEON)
     
    8848#endif
    8949
    90 
    91 
    92 /* Operating environments */
    93 
    94 
    95 /* FIXME: Rename WTF_CPU_EFFECTIVE_ADDRESS_WIDTH to WTF_OS_EFFECTIVE_ADDRESS_WIDTH, as it is an OS feature, not a CPU feature. */
    96 #if CPU(ADDRESS64)
    97 #if OS(DARWIN) && CPU(ARM64)
    98 #define WTF_CPU_EFFECTIVE_ADDRESS_WIDTH 36
    99 #else
    100 /* We strongly assume that effective address width is <= 48 in 64bit architectures (e.g. NaN boxing). */
    101 #define WTF_CPU_EFFECTIVE_ADDRESS_WIDTH 48
    102 #endif
    103 #else
    104 #define WTF_CPU_EFFECTIVE_ADDRESS_WIDTH 32
    105 #endif
    106 
    107 /* Export macro support. Detects the attributes available for shared library symbol export
    108    decorations. */
    109 #if OS(WINDOWS) || (COMPILER_HAS_CLANG_DECLSPEC(dllimport) && COMPILER_HAS_CLANG_DECLSPEC(dllexport))
    110 #define USE_DECLSPEC_ATTRIBUTE 1
    111 #define USE_VISIBILITY_ATTRIBUTE 0
    112 #elif defined(__GNUC__)
    113 #define USE_DECLSPEC_ATTRIBUTE 0
    114 #define USE_VISIBILITY_ATTRIBUTE 1
    115 #else
    116 #define USE_DECLSPEC_ATTRIBUTE 0
    117 #define USE_VISIBILITY_ATTRIBUTE 0
    118 #endif
    119 
    120 /* Standard libraries */
    121 #if defined(HAVE_FEATURES_H) && HAVE_FEATURES_H
    122 /* If the included features.h is glibc's one, __GLIBC__ is defined. */
    123 #include <features.h>
    124 #endif
    125 
    126 /* FIXME: ASSERT_ENABLED should defined in different, perhaps its own, file. */
    127 /* ASSERT_ENABLED should be true if we want the current compilation unit to
    128    do debug assertion checks unconditionally (e.g. treat a debug ASSERT
    129    like a RELEASE_ASSERT.
    130 */
    131 #ifndef ASSERT_ENABLED
    132 #ifdef NDEBUG
    133 #define ASSERT_ENABLED 0
    134 #else
    135 #define ASSERT_ENABLED 1
    136 #endif
    137 #endif
    138 
    139 
    140 
    141 #if PLATFORM(COCOA)
    142 #define USE_CG 1
    143 #endif
    144 
    145 #if PLATFORM(COCOA)
    146 #define USE_CA 1
    147 #endif
    148 
    149 #if PLATFORM(GTK) || PLATFORM(WPE)
    150 #define USE_GLIB 1
    151 #endif
    152 
    153 #if PLATFORM(GTK) || PLATFORM(WPE)
    154 #define USE_FREETYPE 1
    155 #endif
    156 
    157 #if PLATFORM(GTK) || PLATFORM(WPE)
    158 #define USE_HARFBUZZ 1
    159 #endif
    160 
    161 #if PLATFORM(GTK) || PLATFORM(WPE)
    162 #define USE_SOUP 1
    163 #endif
    164 
    165 #if PLATFORM(GTK) || PLATFORM(WPE)
    166 #define USE_WEBP 1
    167 #endif
    168 
    169 #if PLATFORM(GTK)
    170 #define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_36
    171 #define GDK_VERSION_MIN_REQUIRED GDK_VERSION_3_6
    172 #endif
    173 
    174 #if PLATFORM(WPE)
    175 #define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_40
    176 #endif
    177 
    178 #if USE(SOUP)
    179 #define SOUP_VERSION_MIN_REQUIRED SOUP_VERSION_2_42
    180 #endif
    181 
    182 /* On Windows, use QueryPerformanceCounter by default */
    183 #if OS(WINDOWS)
    184 #define USE_QUERY_PERFORMANCE_COUNTER  1
    185 #endif
    186 
    18750#if PLATFORM(COCOA)
    18851#define HAVE_OUT_OF_PROCESS_LAYER_HOSTING 1
    189 #endif
    190 
    191 #if PLATFORM(COCOA)
    192 #define USE_CF 1
    193 #endif
    194 
    195 #if PLATFORM(COCOA) || (PLATFORM(GTK) || PLATFORM(WPE))
    196 #define USE_FILE_LOCK 1
    197 #endif
    198 
    199 #if PLATFORM(COCOA)
    200 #define USE_FOUNDATION 1
    201 #endif
    202 
    203 #if PLATFORM(COCOA)
    204 #define USE_NETWORK_CFDATA_ARRAY_CALLBACK 1
    205 #endif
    206 
    207 
    208 #if PLATFORM(COCOA)
    209 /* Cocoa defines a series of platform macros for debugging. */
    210 /* Some of them are really annoying because they use common names (e.g. check()). */
    211 /* Disable those macros so that we are not limited in how we name methods and functions. */
    212 #undef __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES
    213 #define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
    21452#endif
    21553
     
    22664#endif
    22765
    228 #if PLATFORM(MAC)
    229 #define USE_APPKIT 1
    230 #endif
    231 
    232 #if PLATFORM(MAC)
    233 #define USE_PASSKIT 1
    234 #endif
    235 
    236 #if PLATFORM(MAC)
    237 #define HAVE_NETWORK_EXTENSION 1
    238 #endif
    239 
    240 #if PLATFORM(MAC)
    241 #define USE_PLUGIN_HOST_PROCESS 1
    242 #endif
    243 
    244 #if PLATFORM(IOS_FAMILY)
     66#if PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
    24567#define HAVE_NETWORK_EXTENSION 1
    24668#endif
     
    24870#if PLATFORM(IOS_FAMILY)
    24971#define HAVE_READLINE 1
    250 #endif
    251 
    252 #if PLATFORM(IOS_FAMILY)
    253 #define USE_UIKIT_EDITING 1
    254 #endif
    255 
    256 #if PLATFORM(IOS_FAMILY)
    257 #define USE_WEB_THREAD 1
    25872#endif
    25973
     
    291105#endif
    292106
    293 
    294107#if !defined(HAVE_ACCESSIBILITY) && (PLATFORM(COCOA) || PLATFORM(WIN) || PLATFORM(GTK) || PLATFORM(WPE))
    295108#define HAVE_ACCESSIBILITY 1
     
    361174#endif
    362175
    363 #if OS(UNIX)
    364 #define USE_PTHREADS 1
    365 #endif
    366 
    367176#if OS(UNIX) && !OS(FUCHSIA)
    368177#define HAVE_RESOURCE_H 1
     
    413222#endif
    414223
    415 #if OS(DARWIN) && !PLATFORM(GTK)
    416 #define USE_ACCELERATE 1
    417 #endif
    418 
    419224#if OS(DARWIN) && !PLATFORM(IOS_FAMILY)
    420225#define HAVE_HOSTED_CORE_ANIMATION 1
    421226#endif
    422227
    423 
    424228#if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || defined(__GLIBC__) || defined(__BIONIC__)) && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)))
    425229#define HAVE_MACHINE_CONTEXT 1
     
    430234#endif
    431235
     236#if (OS(DARWIN) || OS(LINUX)) && PLATFORM(GTK) && defined(__GLIBC__) && !defined(__UCLIBC__) && !CPU(MIPS)
     237#define HAVE_BACKTRACE_SYMBOLS 1
     238#endif
     239
    432240#if OS(DARWIN) || OS(LINUX)
    433 #if PLATFORM(GTK)
    434 #if defined(__GLIBC__) && !defined(__UCLIBC__) && !CPU(MIPS)
    435 #define HAVE_BACKTRACE_SYMBOLS 1
    436 #endif
    437 #endif /* PLATFORM(GTK) */
    438241#define HAVE_DLADDR 1
    439 #endif /* OS(DARWIN) || OS(LINUX) */
    440 
    441 
    442 #if OS(WINDOWS)
    443 #define USE_SYSTEM_MALLOC 1
    444 #endif
    445 
    446 #if !defined(USE_JSVALUE64) && !defined(USE_JSVALUE32_64)
    447 #if CPU(ADDRESS64) || CPU(ARM64)
    448 #define USE_JSVALUE64 1
    449 #else
    450 #define USE_JSVALUE32_64 1
    451 #endif
    452 #endif /* !defined(USE_JSVALUE64) && !defined(USE_JSVALUE32_64) */
     242#endif
    453243
    454244#if __has_include(<System/pthread_machdep.h>)
     
    460250#endif
    461251
    462 /* FIXME: This name should be more specific if it is only for use with CallFrame* */
    463 /* Use __builtin_frame_address(1) to get CallFrame* */
    464 #if COMPILER(GCC_COMPATIBLE) && (CPU(ARM64) || CPU(X86_64))
    465 #define USE_BUILTIN_FRAME_ADDRESS 1
    466 #endif
    467 
    468252#if CPU(ARM64E) && OS(DARWIN)
    469253#define HAVE_FJCVTZS_INSTRUCTION 1
     
    474258#endif
    475259
    476 #if PLATFORM(IOS)
    477 #define USE_PASSKIT 1
    478 #endif
    479 
    480 #if PLATFORM(IOS)
    481 #define USE_QUICK_LOOK 1
    482 #endif
    483 
    484 #if PLATFORM(IOS)
    485 #define USE_SYSTEM_PREVIEW 1
    486 #endif
    487 
    488260#if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST)
    489261#define HAVE_CELESTIAL 1
     
    496268#if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST) && !PLATFORM(APPLETV)
    497269#define HAVE_PARENTAL_CONTROLS_WITH_UNBLOCK_HANDLER 1
    498 #endif
    499 
    500 #if PLATFORM(COCOA)
    501 #define USE_AVFOUNDATION 1
    502 #endif
    503 
    504 #if PLATFORM(COCOA)
    505 #define USE_PROTECTION_SPACE_AUTH_CALLBACK 1
    506270#endif
    507271
     
    516280
    517281#if PLATFORM(COCOA)
    518 #define USE_METAL 1
    519 #endif
    520 
    521 
    522 #if USE(GLIB)
    523 #include <wtf/glib/GTypedefs.h>
    524 #endif
    525 
    526 #if !defined(USE_EXPORT_MACROS) && (PLATFORM(COCOA) || OS(WINDOWS))
    527 #define USE_EXPORT_MACROS 1
    528 #endif
    529 
    530 #if PLATFORM(GTK) || PLATFORM(WPE)
    531 #define USE_UNIX_DOMAIN_SOCKETS 1
    532 #endif
    533 
    534 #if !defined(USE_IMLANG_FONT_LINK2)
    535 #define USE_IMLANG_FONT_LINK2 1
    536 #endif
    537 
    538 #if PLATFORM(COCOA)
    539 #define USE_COREMEDIA 1
    540 #endif
    541 
    542 #if PLATFORM(COCOA)
    543 #define USE_VIDEOTOOLBOX 1
    544 #endif
    545 
    546 #if PLATFORM(COCOA)
    547282#define HAVE_AVFOUNDATION_VIDEO_OUTPUT 1
    548283#endif
     
    570305#if PLATFORM(COCOA)
    571306#define HAVE_AVFOUNDATION_LOADER_DELEGATE 1
    572 #endif
    573 
    574 #if !PLATFORM(WIN)
    575 #define USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR 1
    576307#endif
    577308
     
    584315#endif
    585316
    586 #if PLATFORM(MAC)
    587 #define USE_COREAUDIO 1
    588 #endif
    589 
    590 #if !defined(USE_ZLIB)
    591 #define USE_ZLIB 1
    592 #endif
    593 
    594317#if !defined(HAVE_QOS_CLASSES) && PLATFORM(COCOA)
    595318#define HAVE_QOS_CLASSES 1
     
    600323#endif
    601324
    602 #define USE_GRAMMAR_CHECKING 1
    603 
    604 #if PLATFORM(COCOA) || PLATFORM(GTK)
    605 #define USE_UNIFIED_TEXT_CHECKING 1
    606 #endif
    607 
    608 #if PLATFORM(MAC)
    609 #define USE_AUTOMATIC_TEXT_REPLACEMENT 1
    610 #endif
    611 
    612 #if PLATFORM(MAC)
    613 /* Some platforms provide UI for suggesting autocorrection. */
    614 #define USE_AUTOCORRECTION_PANEL 1
    615 #endif
    616 
    617 #if PLATFORM(COCOA)
    618 /* Some platforms use spelling and autocorrection markers to provide visual cue. On such platform, if word with marker is edited, we need to remove the marker. */
    619 #define USE_MARKER_REMOVAL_UPON_EDITING 1
    620 #endif
    621 
    622 #if PLATFORM(MAC)
    623 #define USE_INSERTION_UNDO_GROUPING 1
    624 #endif
    625 
    626325#if PLATFORM(COCOA)
    627326#define HAVE_AVASSETREADER 1
    628 #endif
    629 
    630 #if PLATFORM(COCOA)
    631 #define USE_AUDIO_SESSION 1
    632327#endif
    633328
     
    644339#endif
    645340
    646 #if COMPILER(MSVC)
    647 #undef __STDC_FORMAT_MACROS
    648 #define __STDC_FORMAT_MACROS
    649 #undef __STDC_LIMIT_MACROS
    650 #define __STDC_LIMIT_MACROS
    651 #endif
    652 
    653341#if PLATFORM(MAC)
    654342#define HAVE_NS_ACTIVITY 1
    655343#endif
    656344
    657 
    658 /* Set TARGET_OS_IPHONE to 0 by default to allow using it as a guard
    659  * in cross-platform the same way as it is used in OS(DARWIN) code. */
    660 #if !defined(TARGET_OS_IPHONE) && !OS(DARWIN)
    661 #define TARGET_OS_IPHONE 0
    662 #endif
    663 
    664 #if PLATFORM(COCOA)
    665 #define USE_MEDIATOOLBOX 1
    666 #endif
    667 
    668 #if PLATFORM(COCOA)
    669 #define USE_OS_LOG 1
    670 #endif
    671 
    672 #if PLATFORM(COCOA) && USE(APPLE_INTERNAL_SDK)
    673 #define USE_OS_STATE 1
    674 #endif
    675 
    676345#if PLATFORM(COCOA)
    677346#define HAVE_SEC_TRUST_SERIALIZATION 1
    678 #endif
    679 
    680 #if !defined(WTF_DEFAULT_EVENT_LOOP)
    681 #define WTF_DEFAULT_EVENT_LOOP 1
    682 #endif
    683 
    684 #if WTF_DEFAULT_EVENT_LOOP
    685 #if USE(GLIB)
    686 /* Use GLib's event loop abstraction. Primarily GTK port uses it. */
    687 #define USE_GLIB_EVENT_LOOP 1
    688 #elif OS(WINDOWS)
    689 /* Use Windows message pump abstraction.
    690  * Even if the port is AppleWin, we use the Windows message pump system for the event loop,
    691  * so that USE(WINDOWS_EVENT_LOOP) && USE(CF) can be true.
    692  * And PLATFORM(WIN) and PLATFORM(GTK) are exclusive. If the port is GTK,
    693  * PLATFORM(WIN) should be false. And in that case, GLib's event loop is used.
    694  */
    695 #define USE_WINDOWS_EVENT_LOOP 1
    696 #elif PLATFORM(COCOA)
    697 /* OS X and IOS. Use CoreFoundation & GCD abstraction. */
    698 #define USE_COCOA_EVENT_LOOP 1
    699 #else
    700 #define USE_GENERIC_EVENT_LOOP 1
    701 #endif
    702 #endif
    703 
    704 #if PLATFORM(COCOA)
    705 #define USE_MEDIAREMOTE 1
    706 #endif
    707 
    708 #if COMPILER(MSVC)
    709 /* Enable strict runtime stack buffer checks. */
    710 #pragma strict_gs_check(on)
    711347#endif
    712348
     
    715351#endif
    716352
    717 #if PLATFORM(MAC)
    718 #define USE_DICTATION_ALTERNATIVES 1
    719 #endif
    720 
    721 
    722 #if PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(MACCATALYST) || USE(GCRYPT)
    723 #define HAVE_RSA_PSS 1
    724 #endif
    725 
    726 #if (PLATFORM(MAC) && USE(APPLE_INTERNAL_SDK) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY)
    727 #define USE_SOURCE_APPLICATION_AUDIT_DATA 1
    728 #endif
    729 
    730353#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000)
    731354#define HAVE_HSTS_STORAGE_PATH 1
     
    746369#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS) || PLATFORM(MACCATALYST)
    747370#define HAVE_SEC_KEY_PROXY 1
    748 #endif
    749 
    750 #if PLATFORM(COCOA) && USE(CA)
    751 #define USE_IOSURFACE_CANVAS_BACKING_STORE 1
    752371#endif
    753372
     
    768387#if PLATFORM(COCOA)
    769388#define HAVE_CFNETWORK_WITH_CONTENT_ENCODING_SNIFFING_OVERRIDE 1
    770 /* The override isn't needed on iOS family, as the default behavior is to not sniff. */
    771 /* FIXME: This should probably be enabled on 10.13.2 and newer, not just 10.14 and newer. */
    772 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
    773 #define USE_CFNETWORK_CONTENT_ENCODING_SNIFFING_OVERRIDE 1
    774 #endif
    775389#endif
    776390
     
    789403#ifdef __APPLE__
    790404#define HAVE_FUNC_USLEEP 1
    791 #endif
    792 
    793 #if PLATFORM(MAC) || PLATFORM(WPE)
    794 /* FIXME: This really needs a descriptive name, this "new theme" was added in 2008. */
    795 #define USE_NEW_THEME 1
    796405#endif
    797406
     
    913522#endif
    914523
    915 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED < 101500
    916 #define USE_REALPATH_FOR_DLOPEN_PREFLIGHT 1
    917 #endif
    918 
    919524#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    920525#define HAVE_NSURLSESSION_WEBSOCKET 1
     
    945550#endif
    946551
    947 #if PLATFORM(IOS) || PLATFORM(MACCATALYST)
    948 #define USE_UICONTEXTMENU 1
    949 #endif
    950 
    951552#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500
    952553#define HAVE_SUBVIEWS_IVAR_SPI 1
     
    957558#endif
    958559
    959 #if PLATFORM(MAC) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    960 #define USE_PLATFORM_SYSTEM_FALLBACK_LIST 1
    961 #endif
    962 
    963560#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 101500
    964561#define HAVE_AX_CLIENT_TYPE 1
     
    981578#endif
    982579
    983 #if PLATFORM(IOS_FAMILY) || (!(defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC) && (OS(LINUX) && (PLATFORM(GTK) || PLATFORM(WPE))))
    984 #define USE_BMALLOC_MEMORY_FOOTPRINT_API 1
    985 #endif
    986 
    987580#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS_FAMILY)
    988581#define HAVE_OS_SIGNPOST 1
    989582#endif
    990 
    991 
    992 
    993 #if USE(APPLE_INTERNAL_SDK) && __has_include(<WebKitAdditions/AdditionalPlatform.h>)
    994 #include <WebKitAdditions/AdditionalPlatform.h>
    995 #endif
    996 
    997 #if USE(APPLE_INTERNAL_SDK) && __has_include(<WebKitAdditions/AdditionalFeatureDefines.h>)
    998 #include <WebKitAdditions/AdditionalFeatureDefines.h>
    999 #endif
    1000 
    1001 /* __PLATFORM_INDIRECT__ ensures that users #include <wtf/Platform.h> rather than wtf/FeatureDefines.h directly. */
    1002 #define __PLATFORM_INDIRECT__
    1003 
    1004 /* Include feature macros */
    1005 #include <wtf/PlatformEnable.h>
    1006 
    1007 #undef __PLATFORM_INDIRECT__
    1008 
    1009 
    1010 
    1011 /* FIXME: The following are currenly positioned at the bottom of this file as they are currently dependent on ENABLE macros. */
    1012 
    1013 /* FIXME: Remove dependence on ENABLE(WEB_RTC). */
    1014 #if PLATFORM(COCOA) && ENABLE(WEB_RTC)
    1015 #define USE_LIBWEBRTC 1
    1016 #endif
    1017 
    1018 /* FIXME: This is used to "turn on a specific feature of WebKit", so should be converted to an ENABLE macro. */
    1019 /* This feature works by embedding the OpcodeID in the 32 bit just before the generated LLint code
    1020    that executes each opcode. It cannot be supported by the CLoop since there's no way to embed the
    1021    OpcodeID word in the CLoop's switch statement cases. It is also currently not implemented for MSVC.
    1022 */
    1023 #if !defined(USE_LLINT_EMBEDDED_OPCODE_ID) && !ENABLE(C_LOOP) && !COMPILER(MSVC) && \
    1024     (CPU(X86) || CPU(X86_64) || CPU(ARM64) || (CPU(ARM_THUMB2) && OS(DARWIN)))
    1025 #define USE_LLINT_EMBEDDED_OPCODE_ID 1
    1026 #endif
    1027 
    1028 
    1029 #if PLATFORM(COCOA)
    1030 #if ENABLE(WEBGL)
    1031 
    1032 /* USE_ANGLE=1 uses ANGLE for the WebGL backend.
    1033    It replaces USE_OPENGL, USE_OPENGL_ES and USE_EGL. */
    1034 #if PLATFORM(MAC) || (PLATFORM(MACCATALYST) && __has_include(<OpenGL/OpenGL.h>))
    1035 #define USE_OPENGL 1
    1036 #define USE_OPENGL_ES 0
    1037 #define USE_ANGLE 0
    1038 #else
    1039 #define USE_OPENGL 0
    1040 #define USE_OPENGL_ES 1
    1041 #define USE_ANGLE 0
    1042 #endif
    1043 
    1044 #ifndef GL_SILENCE_DEPRECATION
    1045 #define GL_SILENCE_DEPRECATION 1
    1046 #endif
    1047 
    1048 #if USE(OPENGL) && !defined(HAVE_OPENGL_4)
    1049 #define HAVE_OPENGL_4 1
    1050 #endif
    1051 
    1052 #if USE(OPENGL_ES) && !defined(HAVE_OPENGL_ES_3)
    1053 #define HAVE_OPENGL_ES_3 1
    1054 #endif
    1055 
    1056 #if USE_ANGLE && (USE_OPENGL || USE_OPENGL_ES)
    1057 #error USE_ANGLE is incompatible with USE_OPENGL and USE_OPENGL_ES
    1058 #endif
    1059 
    1060 #endif /* ENABLE(WEBGL) */
    1061 #endif /* PLATFORM(COCOA) */
    1062 
    1063 #if ENABLE(WEBGL)
    1064 #if !defined(USE_ANGLE)
    1065 #define USE_ANGLE 0
    1066 #endif
    1067 
    1068 #if (USE_ANGLE && (USE_OPENGL || USE_OPENGL_ES || (defined(USE_EGL) && USE_EGL))) && !USE(TEXTURE_MAPPER)
    1069 #error USE_ANGLE is incompatible with USE_OPENGL, USE_OPENGL_ES and USE_EGL
    1070 #endif
    1071 #endif
    1072 
    1073 #if USE(TEXTURE_MAPPER) && ENABLE(GRAPHICS_CONTEXT_GL) && !defined(USE_TEXTURE_MAPPER_GL)
    1074 #define USE_TEXTURE_MAPPER_GL 1
    1075 #endif
    1076 
    1077 /* FIXME: This is used to "turn on a specific feature of WebKit", so should be converted to an ENABLE macro. */
    1078 #if PLATFORM(COCOA) && ENABLE(ACCESSIBILITY)
    1079 #define USE_ACCESSIBILITY_CONTEXT_MENUS 1
    1080 #endif
    1081 
    1082 
    1083 /* FIXME: These calling convention macros should move to their own file. They are at the bottom currently because they depend on FeatureDefines.h */
    1084 
    1085 #if CPU(X86) && COMPILER(MSVC)
    1086 #define JSC_HOST_CALL __fastcall
    1087 #elif CPU(X86) && COMPILER(GCC_COMPATIBLE)
    1088 #define JSC_HOST_CALL __attribute__ ((fastcall))
    1089 #else
    1090 #define JSC_HOST_CALL
    1091 #endif
    1092 
    1093 #if CPU(X86) && OS(WINDOWS)
    1094 #define CALLING_CONVENTION_IS_STDCALL 1
    1095 #ifndef CDECL
    1096 #if COMPILER(MSVC)
    1097 #define CDECL __cdecl
    1098 #else
    1099 #define CDECL __attribute__ ((__cdecl))
    1100 #endif
    1101 #endif
    1102 #else
    1103 #define CALLING_CONVENTION_IS_STDCALL 0
    1104 #endif
    1105 
    1106 #if CPU(X86)
    1107 #define WTF_COMPILER_SUPPORTS_FASTCALL_CALLING_CONVENTION 1
    1108 #ifndef FASTCALL
    1109 #if COMPILER(MSVC)
    1110 #define FASTCALL __fastcall
    1111 #else
    1112 #define FASTCALL  __attribute__ ((fastcall))
    1113 #endif
    1114 #endif
    1115 #else
    1116 #define WTF_COMPILER_SUPPORTS_FASTCALL_CALLING_CONVENTION 0
    1117 #endif
    1118 
    1119 #if ENABLE(JIT) && CALLING_CONVENTION_IS_STDCALL
    1120 #define JIT_OPERATION CDECL
    1121 #else
    1122 #define JIT_OPERATION
    1123 #endif
Note: See TracChangeset for help on using the changeset viewer.