Bug 42796

Summary: Add Xcode support for compiling WebKit against iOS SDKs.
Product: WebKit Reporter: Andy Estes <aestes>
Component: New BugsAssignee: Andy Estes <aestes>
Status: RESOLVED FIXED    
Severity: Normal CC: aestes, ddkilzer, joepeck, mrowe
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Other   
OS: OS X 10.5   
Bug Depends on: 26630    
Bug Blocks: 43300    
Attachments:
Description Flags
patch ddkilzer: review+, ddkilzer: commit-queue-

Description Andy Estes 2010-07-21 17:19:19 PDT
Add support for compiling JavaScriptCore against iOS SDKs.
Comment 1 Andy Estes 2010-07-30 13:08:41 PDT
Created attachment 63094 [details]
patch

This patch makes the necessary changes to Xcode config files in JavaScriptCore, WebCore and WebKit to support compiling against iOS and iOS Simulator platforms.
Comment 2 David Kilzer (:ddkilzer) 2010-07-30 14:38:49 PDT
Comment on attachment 63094 [details]
patch

WebCore/Configurations/WebCore.xcconfig:39
 +  FRAMEWORK_SEARCH_PATHS_macosx = $(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Frameworks $(SYSTEM_LIBRARY_DIR)/Frameworks/ApplicationServices.framework/Frameworks $(FRAMEWORK_SEARCH_PATHS);

I've been trying to put *_macosx macros after *_iphoneos and *_iphonesimulator macros.


WebCore/Configurations/WebCore.xcconfig:41
 +  FRAMEWORK_SEARCH_PATHS_iphonesimulator = $(FRAMEWORK_SEARCH_PATHS_iphoneos_$(CONFIGURATION));

This should come after the *_iphoneos macro.


WebCore/Configurations/WebCore.xcconfig:53
 +  UMBRELLA_LDFLAGS = -umbrella WebKit;

I would just inline this variable into OTHER_LDFLAGS_macosx since it's only used once.


WebCore/Configurations/WebCore.xcconfig:81
 +  EXCLUDED_SOURCE_FILE_NAMES_iphoneos = *.tiff *Cursor.png localizedStrings.js AccessibilityObjectMac.mm AccessibilityObjectWrapper.mm AXObjectCacheMac.mm ClipboardMac.mm ColorMac.mm CursorMac.mm EditorMac.mm EventHandlerMac.mm EventLoopMac.mm FontMacATSUI.mm GeolocationServiceMac.mm IconDatabase.cpp IconMac.mm KeyEventMac.mm LocalCurrentGraphicsContext.mm LocalizedStringsMac.mm MIMETypeRegistryMac.mm MediaPlayerPrivateQTKit.mm NetworkStateNotifierMac.cpp PasteboardMac.mm PlatformMouseEventMac.mm PlatformScreenMac.mm PluginMainThreadScheduler.cpp PopupMenuMac.mm ScriptObjectQuarantine.cpp ScrollViewMac.mm ScrollbarThemeMac.mm SharedTimerMac.mm SoundMac.mm SystemTimeMac.cpp ThemeMac.mm ThreadCheck.mm WebCoreSystemInterface.mm WebCoreURLResponse.mm WebCoreView.m WebFontCache.mm WheelEventMac.mm WidgetMac.mm;

Please remove source files (*.mm, *.cpp) files from this list.  Long term, I think we want to use #if PLATFORM(IPHONE)/#endif and #if PLATFORM(MAC)/#endif macros around the source files and "compile everything".


WebCore/Configurations/WebCore.xcconfig:83
 +  EXCLUDED_SOURCE_FILE_NAMES_macosx = ;

This variable may be removed since it's empty.


WebKit/mac/Configurations/DebugRelease.xcconfig:55
 +  WEBKIT_SYSTEM_INTERFACE_LIBRARY_macosx = $(WEBKIT_SYSTEM_INTERFACE_LIBRARY_macosx_$(MAC_OS_X_VERSION_MAJOR));

This should use TARGET_MAC_OS_X_VERSION_MAJOR.


WebKit/mac/Configurations/DebugRelease.xcconfig:60
 +  WEBKIT_SYSTEM_INTERFACE_LIBRARY_1070 = WebKitSystemInterfaceSnowLeopard;

This needs to be named WEBKIT_SYSTEM_INTERFACE_LIBRARY_macosx_1070.


WebKit/mac/Configurations/WebKit.xcconfig:28
 +  EXCLUDED_SOURCE_FILE_NAMES_iphoneos = *.nib *.tiff CarbonUtils.m CarbonWindowAdapter.mm CarbonWindowContentView.m CarbonWindowFrame.m HIViewAdapter.m HIWebView.mm MainThreadObjectDeallocator.mm WebClipView.m WebDragClient.mm WebDynamicScrollBarsView.mm WebInspector.mm WebInspectorClient.mm WebNetscapeContainerCheckContextInfo.mm WebNetscapeContainerCheckPrivate.mm WebNodeHighlight.mm WebNodeHighlightView.mm WebRenderNode.mm WebStringTruncator.mm WebTextCompletionController.mm;

Please remove source file names (*.m, *.mm, *.cpp) from this list.  As mentioned previously, we want to handle this using #if PLATFORM(IPHONE)/#endif and #if PLATFORM(MAC)/#endif macros instead.


WebKit/mac/Configurations/WebKit.xcconfig:30
 +  EXCLUDED_SOURCE_FILE_NAMES_macosx = ;

This line may be removed since it's blank.


Nice job.  I know that was a lot of work!  r=me with the fixes above.
Comment 3 Andy Estes 2010-07-30 17:30:19 PDT
Committed <http://trac.webkit.org/changeset/64390>.