blob: d477be356497da98d0883880863bdd7432489698 [file] [log] [blame] [edit]
// Copyright (C) 2009-2026 Apple Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "../../../../Configurations/Version.xcconfig"
EXCLUDED_SOURCE_FILE_NAMES = $(EXCLUDED_SOURCE_FILE_NAMES_$(WK_COCOA_TOUCH));
EXCLUDED_SOURCE_FILE_NAMES_cocoatouch = *.defs *.xib *.pdf *.tiff PopupMenuMac.* SearchPopupMenuMac.* WebClipView.* WebDynamicScrollBarsView.* WebEventRegion.h WebIconDatabase.* WebInspectorClient.* WebJavaScriptTextInputPanel.* WebNSEventExtras.* WebNSPasteboardExtras.* WebNSWindowExtras.* WebPanelAuthenticationHandler.* WebPluginsPrivate.* WebStringTruncator.* WebTextCompletionController.*;
EXCLUDED_SOURCE_FILE_NAMES_ = *IOS.mm AbstractPasteboard.h DOMHTMLTextAreaElementPrivate.h DOMUIKitExtensions.h KeyEventCodesIOS.h WAKAppKitStubs.h WAKResponder.h WAKView.h WAKWindow.h WebCaretChangeListener.h WebCoreThread.h WebCoreThreadMessage.h WebCoreThreadRun.h WebEvent.h WebEventRegion.h WebFixedPositionContent.h WebFrameIOS.h WebFrameIPhone.h WebGeolocationCoreLocationProvider.h WebGeolocationPrivate.h WebGeolocationProviderIOS.h WebItemProviderPasteboard.h WebMIMETypeRegistry.h WebNSStringExtrasIOS.h WebNSStringExtrasIPhone.h WebPDFViewIOS.h WebPDFViewIPhone.h WebPDFViewPlaceholder.h WebSelectionRect.h WebUIKitDelegate.h WebUIKitSupport.h WebVisiblePosition.h WKContentObservation.h WKGraphics.h WKTypes.h;
INCLUDED_SOURCE_FILE_NAMES = $(INCLUDED_MIGRATED_HEADERS_$(USE_INTERNAL_SDK)_$(WK_COCOA_TOUCH)) $(INCLUDED_MIGRATED_HEADERS_$(ENABLE_IOS_TOUCH_EVENTS));
// WebEventRegion.h is migrated when building for an iOS family target with an internal SDK...
INCLUDED_MIGRATED_HEADERS_YES_cocoatouch = WebEventRegion.h;
// ...or when --ios-touch-events was passed to build-webkit manually.
INCLUDED_MIGRATED_HEADERS_ENABLE_IOS_TOUCH_EVENTS = WebEventRegion.h;
EXPORTED_SYMBOLS_FILE = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp;
FRAMEWORK_SEARCH_PATHS[sdk=embedded*] = $(BUILT_PRODUCTS_DIR);
FRAMEWORK_SEARCH_PATHS[sdk=macosx*] = $(WK_QUOTED_OVERRIDE_FRAMEWORKS_DIR) "$(PRODUCTION_PUBLIC_FRAMEWORKS_DIR)/WebKit.framework/Versions/A/Frameworks";
SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) $(WK_PRIVATE_SDK_DIR)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks;
OTHER_CFLAGS = $(inherited) $(OTHER_CFLAGS_COCOA_TOUCH) $(WK_CFLAGS_BUILD_FOR_TESTING_$(WK_BUILD_FOR_TESTING));
OTHER_CFLAGS_COCOA_TOUCH = $(OTHER_CFLAGS_COCOA_TOUCH_$(WK_IS_COCOA_TOUCH));
OTHER_CFLAGS_COCOA_TOUCH_NO = -iframework $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/WebKit.framework/Frameworks;
WK_CFLAGS_BUILD_FOR_TESTING_YES = -DENABLE_BUILD_FOR_TESTING;
DEBUG_DEFINES[config=Debug] = $(inherited) ENABLE_WEBKIT_UNSET_DYLD_FRAMEWORK_PATH;
DEBUG_DEFINES[config=Release] = $(inherited) ENABLE_WEBKIT_UNSET_DYLD_FRAMEWORK_PATH;
GCC_PREFIX_HEADER = mac/WebKitPrefix.h;
GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) $(ENABLE_PDFJS) BUILDING_WEBKIT FRAMEWORK_NAME=WebKitLegacy $(inherited);
HEADER_SEARCH_PATHS = "$(WEBCORE_PRIVATE_HEADERS_DIR)/ForwardingHeaders" "$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy" "$(BUILT_PRODUCTS_DIR)$(WK_LIBRARY_HEADERS_FOLDER_PATH)" $(WEBGPU_HEADER_SEARCH_PATHS) $(WEBKITADDITIONS_HEADER_SEARCH_PATHS) $(LIBWEBRTC_HEADER_SEARCH_PATHS) $(LIBWEBM_HEADER_SEARCH_PATHS) $(HEADER_SEARCH_PATHS) $(SRCROOT);
SYSTEM_HEADER_SEARCH_PATHS = $(WK_PRIVATE_SDK_DIR)$(WK_ALTERNATE_WEBKIT_SDK_PATH)$(WK_LIBRARY_HEADERS_FOLDER_PATH) $(inherited);
INFOPLIST_FILE = mac/Info.plist;
INSTALL_PATH = $(UMBRELLA_FRAMEWORKS_DIR);
DYLIB_INSTALL_NAME_BASE = $(NORMAL_UMBRELLA_FRAMEWORKS_DIR);
INSTALLHDRS_COPY_PHASE = YES;
INSTALLHDRS_SCRIPT_PHASE = YES;
APPLY_RULES_IN_COPY_HEADERS = YES;
CRYPTEX_SYMLINK_PATH[sdk=iphone*] = $(SYSTEM_LIBRARY_DIR)/PrivateFrameworks;
CRYPTEX_SYMLINK_PATH[sdk=macosx*] = $(CRYPTEX_SYMLINK_PATH_$(WK_USE_ALTERNATE_FRAMEWORKS_DIR));
CRYPTEX_SYMLINK_PATH_YES = $(WK_ALTERNATE_FRAMEWORKS_DIR)/$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks;
OUTPUT_CRYPTEX_SYMLINK_PATH[sdk=iphone*] = $(OUTPUT_CRYPTEX_SYMLINK_PATH_$(USE_SYSTEM_CONTENT_PATH));
OUTPUT_CRYPTEX_SYMLINK_PATH_YES[sdk=iphone*] = $(DSTROOT)$(CRYPTEX_SYMLINK_PATH)/$(FULL_PRODUCT_NAME);
OUTPUT_CRYPTEX_SYMLINK_PATH[sdk=macosx*] = $(OUTPUT_CRYPTEX_SYMLINK_PATH_$(USE_SYSTEM_CONTENT_PATH)_$(WK_USE_ALTERNATE_FRAMEWORKS_DIR));
OUTPUT_CRYPTEX_SYMLINK_PATH_YES_YES[sdk=macosx*] = $(DSTROOT)$(CRYPTEX_SYMLINK_PATH)/$(FULL_PRODUCT_NAME);
PRODUCT_NAME = WebKitLegacy;
PRODUCT_BUNDLE_IDENTIFIER = com.apple.$(PRODUCT_NAME:rfc1034identifier);
WK_APPKIT_LDFLAGS = $(WK_APPKIT_LDFLAGS_$(WK_PLATFORM_NAME));
WK_APPKIT_LDFLAGS_macosx = -framework AppKit;
WK_CARBON_LDFLAGS = $(WK_CARBON_LDFLAGS_$(WK_PLATFORM_NAME));
WK_CARBON_LDFLAGS_macosx = -framework Carbon;
WK_GRAPHICS_SERVICES_LDFLAGS = $(WK_GRAPHICS_SERVICES_LDFLAGS_$(WK_COCOA_TOUCH));
WK_GRAPHICS_SERVICES_LDFLAGS_cocoatouch = -framework GraphicsServices;
WK_MOBILE_CORE_SERVICES_LDFLAGS = $(WK_MOBILE_CORE_SERVICES_LDFLAGS_$(WK_COCOA_TOUCH));
WK_MOBILE_CORE_SERVICES_LDFLAGS_cocoatouch = -framework MobileCoreServices;
WK_MOBILE_GESTALT_LDFLAGS = $(WK_MOBILE_GESTALT_LDFLAGS_$(WK_COCOA_TOUCH));
WK_MOBILE_GESTALT_LDFLAGS_cocoatouch = -lMobileGestalt;
WK_SECURITY_INTERFACE_LDFLAGS = $(WK_SECURITY_INTERFACE_LDFLAGS_$(WK_PLATFORM_NAME));
WK_SECURITY_INTERFACE_LDFLAGS_macosx = -framework SecurityInterface;
WK_WEBINSPECTORUI_LDFLAGS = $(WK_WEBINSPECTORUI_LDFLAGS_$(WK_PLATFORM_NAME));
WK_WEBINSPECTORUI_LDFLAGS_macosx = -weak_framework WebInspectorUI;
WK_ERROR_WHEN_LINKING_WITH_STATIC_INITIALIZERS = -Xlinker -no_inits;
WK_NO_STATIC_INITIALIZERS = $(WK_NO_STATIC_INITIALIZERS_$(CONFIGURATION)_$(WK_ANY_SANITIZER_ENABLED)_$(ENABLE_LLVM_PROFILE_GENERATION));
WK_NO_STATIC_INITIALIZERS_Release__ = $(WK_ERROR_WHEN_LINKING_WITH_STATIC_INITIALIZERS);
WK_NO_STATIC_INITIALIZERS_Release_NO_ = $(WK_ERROR_WHEN_LINKING_WITH_STATIC_INITIALIZERS);
WK_NO_STATIC_INITIALIZERS_Production__ = $(WK_ERROR_WHEN_LINKING_WITH_STATIC_INITIALIZERS);
WK_NO_STATIC_INITIALIZERS_Production_NO_ = $(WK_ERROR_WHEN_LINKING_WITH_STATIC_INITIALIZERS);
OTHER_LDFLAGS = $(inherited) -lobjc -lsqlite3 -framework CFNetwork -framework CoreFoundation -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework IOKit -framework UniformTypeIdentifiers $(WK_APPKIT_LDFLAGS) $(WK_CARBON_LDFLAGS) $(WK_GRAPHICS_SERVICES_LDFLAGS) $(WK_MOBILE_CORE_SERVICES_LDFLAGS) $(WK_MOBILE_GESTALT_LDFLAGS) $(WK_SECURITY_INTERFACE_LDFLAGS) $(WK_WEBINSPECTORUI_LDFLAGS) $(SOURCE_VERSION_LDFLAGS) $(WK_NO_STATIC_INITIALIZERS);
SECTORDER_FLAGS = $(SECTORDER_FLAGS_$(CONFIGURATION));
SECTORDER_FLAGS_Production[sdk=macosx*] = -Wl,-order_file,mac/WebKit.order;
SUPPORTS_TEXT_BASED_API = $(OVERRIDE_SUPPORTS_TEXT_BASED_API:default=YES);
TAPI_USE_SRCROOT = YES;
TAPI_VERIFY_MODE = Pedantic;
WK_AUDIT_SPI_ALLOWLISTS = $(SRCROOT)/mac/Configurations/AllowedSPI.toml $(SRCROOT)/mac/Configurations/AllowedSPI-legacy.toml $(WK_AUDIT_SPI_ALLOWLISTS_$(USE_INTERNAL_SDK));
WK_AUDIT_SPI_ALLOWLISTS_YES = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/AllowedSPI/AllowedSPI-WebKitLegacy.toml;
// FIXME: Replace -extra-*-header and -exclude-*-header flags with build setting equivalents once rdar://99885053 is completed in all needed toolchains.
OTHER_TAPI_FLAGS = $(inherited) $(WK_CFLAGS_BUILD_FOR_TESTING_$(WK_BUILD_FOR_TESTING)) -DRELEASE_WITHOUT_OPTIMIZATIONS -extra-private-header $(SOURCE_ROOT)/mac/TestingFunctions.h -extra-private-header $(SOURCE_ROOT)/mac/ExtraPrivateSymbolsForTAPI.h -Xparser -include -Xparser mac/WebKitPrefix.h $(OTHER_TAPI_FLAGS_102197642_WORKAROUND);
// This unfortunate mess of arguments mirrors the EXCLUDED_ and INCLUDED_SOURCE_FILE_NAMES logic above for migrated headers. It needs to be kept in sync to avoid TAPI errors.
// FIXME: Convert to a filelist generated by xcfilelist-copy.py once rdar://102197642 is completed.
OTHER_TAPI_FLAGS_102197642_WORKAROUND = $(OTHER_TAPI_FLAGS_102197642_WORKAROUND_$(WK_COCOA_TOUCH)) -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WebKitAvailability.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WebScriptObject.h;
OTHER_TAPI_FLAGS_102197642_WORKAROUND_cocoatouch = $(OTHER_TAPI_FLAGS_102197642_WORKAROUND_cocoatouch_$(USE_INTERNAL_SDK)) $(OTHER_TAPI_FLAGS_102197642_WORKAROUND_$(ENABLE_IOS_TOUCH_EVENTS)) -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/AbstractPasteboard.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/KeyEventCodesIOS.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WAKAppKitStubs.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WAKResponder.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WAKView.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WAKWindow.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WebCoreThread.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WebCoreThreadMessage.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WebCoreThreadRun.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WebEvent.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WebItemProviderPasteboard.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WKContentObservation.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WKGraphics.h -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WKTypes.h;
OTHER_TAPI_FLAGS_102197642_WORKAROUND_cocoatouch_YES = $(OTHER_TAPI_FLAGS_102197642_WORKAROUND_ENABLE_IOS_TOUCH_EVENTS);
OTHER_TAPI_FLAGS_102197642_WORKAROUND_ENABLE_IOS_TOUCH_EVENTS = -extra-private-header $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)/WebEventRegion.h;
DEFINES_MODULE = $(DEFINES_MODULE_COCOA_TOUCH_$(WK_IS_COCOA_TOUCH));
DEFINES_MODULE_COCOA_TOUCH_YES = YES;
CLANG_MODULES_ENABLE_VERIFIER_TOOL = $(CLANG_MODULES_ENABLE_VERIFIER_TOOL_COCOA_TOUCH_$(WK_IS_COCOA_TOUCH)_$(USE_INTERNAL_SDK));
CLANG_MODULES_ENABLE_VERIFIER_TOOL_COCOA_TOUCH_YES_YES = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_13_1_$(XCODE_VERSION_MAJOR)));
MODULEMAP_FILE = $(MODULEMAP_FILE_COCOA_TOUCH_$(WK_IS_COCOA_TOUCH));
MODULEMAP_FILE_COCOA_TOUCH_YES = $(SRCROOT)/Modules/WebKitLegacy.modulemap;
MODULEMAP_PRIVATE_FILE = $(MODULEMAP_PRIVATE_FILE_COCOA_TOUCH_$(WK_IS_COCOA_TOUCH));
MODULEMAP_PRIVATE_FILE_COCOA_TOUCH_YES = $(SRCROOT)/Modules/WebKitLegacy.private.modulemap;