Bug 42796 - Add Xcode support for compiling WebKit against iOS SDKs.
Summary: Add Xcode support for compiling WebKit against iOS SDKs.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other OS X 10.5
: P2 Normal
Assignee: Andy Estes
URL:
Keywords:
Depends on: 26630
Blocks: 43300
  Show dependency treegraph
 
Reported: 2010-07-21 17:19 PDT by Andy Estes
Modified: 2010-07-31 09:02 PDT (History)
4 users (show)

See Also:


Attachments
patch (63.06 KB, patch)
2010-07-30 13:08 PDT, Andy Estes
ddkilzer: review+
ddkilzer: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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>.