[KDE/Mac] QStandardPaths possible solution

Jeremy Whiting jpwhiting at kde.org
Fri Jan 9 15:04:13 UTC 2015


Also, here's my updated patch. I think it should apply cleanly to 5.4
branch, when I did git pull and git submodule update etc. to switch from
5.4 to dev I got no complaints from git about my local changes.

On Fri, Jan 9, 2015 at 8:02 AM, Jeremy Whiting <jpwhiting at kde.org> wrote:

> Trying again with less log so it will get through moderation. I'm getting
> an error every time I try to build Qt dev branch in webkit (I think I got
> the same errors in 5.4 also though). Is this a missing dependency not
> reported by configure, or is WebKit just not able to build on OS X for some
> reason?
>
> thanks,
>
> Jeremy
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.cpp:36:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.h:38:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/dom/IconURL.h:34:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/KURL.h:30:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashMap.h:24:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashTable.h:28:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashTraits.h:24:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashFunctions.h:24:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/RefPtr.h:29:
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/PassRefPtr.h:44:16:
> error: member access into incomplete type
>
>       'WebCore::Archive'
>
>             ptr->deref();
>
>                ^
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/PassRefPtr.h:57:39:
> note: in instantiation of function template specialization
>
>       'WTF::derefIfNotNull<WebCore::Archive>' requested here
>
>         ALWAYS_INLINE ~PassRefPtr() { derefIfNotNull(m_ptr); }
>
>                                       ^
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.cpp:852:39:
> note: in instantiation of member function
>
>       'WTF::PassRefPtr<WebCore::Archive>::~PassRefPtr' requested here
>
>     RefPtr<Archive> subframeArchive =
> activeDocumentLoader()->popArchiveForSubframe(childFrame->tree()->uniqueName(),
> url);
>
>                                       ^
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.h:51:7:
> note: forward declaration of 'WebCore::Archive'
>
> class Archive;
>
>       ^
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.cpp:36:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.h:38:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/dom/IconURL.h:34:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/KURL.h:30:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashMap.h:24:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashTable.h:28:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashTraits.h:24:
>
> In file included from
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashFunctions.h:24:
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/RefPtr.h:62:35: error:
> no matching function for call to 'derefIfNotNull'
>
>         ALWAYS_INLINE ~RefPtr() { derefIfNotNull(m_ptr); }
>
>                                   ^~~~~~~~~~~~~~
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.cpp:852:39:
> note: in instantiation of member function
>
>       'WTF::RefPtr<WebCore::Archive>::~RefPtr' requested here
>
>     RefPtr<Archive> subframeArchive =
> activeDocumentLoader()->popArchiveForSubframe(childFrame->tree()->uniqueName(),
> url);
>
>                                       ^
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/PassRefPtr.h:41:45:
> note: candidate template ignored: substitution failure
>
>       [with T = WebCore::Archive]
>
>     template<typename T> ALWAYS_INLINE void derefIfNotNull(T* ptr)
>
>                                             ^
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/PassRefPtr.h:38:16:
> error: member access into incomplete type
>
>       'WebCore::Archive'
>
>             ptr->ref();
>
>                ^
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/PassRefPtr.h:50:43:
> note: in instantiation of function template specialization
>
>       'WTF::refIfNotNull<WebCore::Archive>' requested here
>
>         PassRefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); }
>
>                                           ^
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.cpp:890:32:
> note: in instantiation of member function
>
>       'WTF::PassRefPtr<WebCore::Archive>::PassRefPtr' requested here
>
>     documentLoader->setArchive(archive.get());
>
>                                ^
>
> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.h:51:7:
> note: forward declaration of 'WebCore::Archive'
>
> class Archive;
>
>       ^
>
> 6 errors generated.
>
> make[3]: *** [.obj/loader/FrameLoader.o] Error 1
>
> make[3]: *** Waiting for unfinished jobs....
>
> make[2]: *** [sub-Target-pri-make_first-ordered] Error 2
>
> make[1]: *** [sub-Source-WebCore-WebCore-pro-make_first-ordered] Error 2
>
> make: *** [module-qtwebkit-make_first] Error 2
>
> On Fri, Jan 9, 2015 at 7:54 AM, Jeremy Whiting <jpwhiting at kde.org> wrote:
>
>> Unfortunately I can't build Qt 5.4 or dev on OS X lately, I'm getting
>> this error in QtWebKit:
>>
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
>> -c -pipe -iwithsysroot /usr/include/libxslt -iwithsysroot
>> /usr/include/libxml2 -g -fPIC -isysroot
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
>> -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7 -fvisibility=hidden
>> -fvisibility-inlines-hidden -fno-exceptions -MMD -DQT_NO_MTDEV
>> -DQT_NO_LIBUDEV -DQT_NO_EVDEV -DQT_NO_TSLIB
>> -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0 -DBUILDING_QT__=1
>> -DENABLE_3D_RENDERING=1 -DENABLE_ACCELERATED_2D_CANVAS=1 -DENABLE_BLOB=1
>> -DENABLE_CANVAS_PATH=1 -DENABLE_CHANNEL_MESSAGING=1
>> -DENABLE_CSS_BOX_DECORATION_BREAK=1 -DENABLE_CSS_COMPOSITING=1
>> -DENABLE_CSS_EXCLUSIONS=1 -DENABLE_CSS_FILTERS=1 -DENABLE_CSS_IMAGE_SET=1
>> -DENABLE_CSS_REGIONS=1 -DENABLE_CSS_SHAPES=1 -DENABLE_CSS_STICKY_POSITION=1
>> -DENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=1 -DENABLE_DATALIST_ELEMENT=1
>> -DENABLE_DETAILS_ELEMENT=1 -DENABLE_DEVICE_ORIENTATION=1
>> -DENABLE_DOWNLOAD_ATTRIBUTE=1 -DENABLE_FAST_MOBILE_SCROLLING=1
>> -DENABLE_FILTERS=1 -DENABLE_FTPDIR=1 -DENABLE_FULLSCREEN_API=1
>> -DENABLE_GEOLOCATION=1 -DENABLE_GESTURE_EVENTS=1 -DENABLE_ICONDATABASE=1
>> -DENABLE_IFRAME_SEAMLESS=1 -DENABLE_INDEXED_DATABASE=1
>> -DENABLE_INPUT_TYPE_COLOR=1 -DENABLE_INSPECTOR=1
>> -DENABLE_INSPECTOR_SERVER=1 -DENABLE_JAVASCRIPT_DEBUGGER=1
>> -DENABLE_LEGACY_NOTIFICATIONS=1 -DENABLE_LEGACY_VIEWPORT_ADAPTION=1
>> -DENABLE_LEGACY_VENDOR_PREFIXES=1 -DENABLE_LEGACY_WEB_AUDIO=1
>> -DENABLE_LINK_PREFETCH=1 -DENABLE_METER_ELEMENT=1 -DENABLE_MHTML=1
>> -DENABLE_NOTIFICATIONS=1 -DENABLE_ORIENTATION_EVENTS=1
>> -DENABLE_PAGE_VISIBILITY_API=1 -DENABLE_PROGRESS_ELEMENT=1
>> -DENABLE_RESOLUTION_MEDIA_QUERY=1 -DENABLE_REQUEST_ANIMATION_FRAME=1
>> -DENABLE_SHARED_WORKERS=1 -DENABLE_SMOOTH_SCROLLING=1
>> -DENABLE_SQL_DATABASE=1 -DENABLE_SUBPIXEL_LAYOUT=1 -DENABLE_SVG=1
>> -DENABLE_SVG_FONTS=1 -DENABLE_TOUCH_ADJUSTMENT=1 -DENABLE_TOUCH_EVENTS=1
>> -DENABLE_VIDEO_TRACK=1 -DENABLE_VIEW_MODE_CSS_MEDIA=1
>> -DENABLE_WEB_SOCKETS=1 -DENABLE_WEB_TIMING=1 -DENABLE_WORKERS=1
>> -DENABLE_XHR_TIMEOUT=1 -DWTF_USE_TILED_BACKING_STORE=1
>> -DWTF_USE_CROSS_PLATFORM_CONTEXT_MENUS=1 -DHAVE_QTQUICK=1
>> -DHAVE_QTPRINTSUPPORT=1 -DHAVE_QSTYLE=1 -DHAVE_QTTESTLIB=1
>> -DHAVE_QTPOSITIONING=1 -DHAVE_QTSENSORS=1 -DWTF_USE_LIBXML2=1
>> -DENABLE_XSLT=1 -DWTF_USE_ZLIB=1 -DENABLE_NETSCAPE_PLUGIN_API=1
>> -DPLUGIN_ARCHITECTURE_UNSUPPORTED=1 -DWTF_USE_3D_GRAPHICS=1
>> -DENABLE_WEBGL=1 -DENABLE_VIDEO=1 -DWTF_USE_QT_MULTIMEDIA=1
>> -DHAVE_SQLITE3=1 -DWTF_USE_GRAPHICS_SURFACE=1 -DENABLE_TOUCH_SLIDER=1
>> -DWTF_USE_LEVELDB=1 -DWTF_USE_LIBJPEG=1 -DWTF_USE_LIBPNG=1
>> -DENABLE_BATTERY_STATUS=0 -DENABLE_CANVAS_PROXY=0 -DENABLE_CSP_NEXT=0
>> -DENABLE_CSS_GRID_LAYOUT=0 -DENABLE_CSS_HIERARCHIES=0
>> -DENABLE_CSS_IMAGE_ORIENTATION=0 -DENABLE_CSS_IMAGE_RESOLUTION=0
>> -DENABLE_CSS_SHADERS=0 -DENABLE_CSS_VARIABLES=0
>> -DENABLE_CSS3_CONDITIONAL_RULES=0 -DENABLE_CSS3_TEXT=0
>> -DENABLE_CSS3_TEXT_LINE_BREAK=0 -DENABLE_DASHBOARD_SUPPORT=0
>> -DENABLE_DATAGRID=0 -DENABLE_DATA_TRANSFER_ITEMS=0
>> -DENABLE_DIRECTORY_UPLOAD=0 -DENABLE_FILE_SYSTEM=0
>> -DENABLE_FONT_LOAD_EVENTS=0 -DENABLE_GAMEPAD=0 -DENABLE_HIGH_DPI_CANVAS=0
>> -DENABLE_INPUT_SPEECH=0 -DENABLE_INPUT_TYPE_DATE=0
>> -DENABLE_INPUT_TYPE_DATETIME_INCOMPLETE=0
>> -DENABLE_INPUT_TYPE_DATETIMELOCAL=0 -DENABLE_INPUT_TYPE_MONTH=0
>> -DENABLE_INPUT_TYPE_TIME=0 -DENABLE_INPUT_TYPE_WEEK=0
>> -DENABLE_LEGACY_CSS_VENDOR_PREFIXES=0 -DENABLE_MATHML=0
>> -DENABLE_MEDIA_SOURCE=0 -DENABLE_MEDIA_STATISTICS=0 -DENABLE_MEDIA_STREAM=0
>> -DENABLE_MICRODATA=0 -DENABLE_MOUSE_CURSOR_SCALE=0
>> -DENABLE_NAVIGATOR_CONTENT_UTILS=0 -DENABLE_NETWORK_INFO=0
>> -DENABLE_NOSNIFF=0 -DENABLE_PROXIMITY_EVENTS=0 -DENABLE_QUOTA=0
>> -DENABLE_RESOURCE_TIMING=0 -DENABLE_SCRIPTED_SPEECH=0
>> -DENABLE_SECCOMP_FILTERS=0 -DENABLE_SHADOW_DOM=0 -DENABLE_STYLE_SCOPED=0
>> -DENABLE_TEMPLATE_ELEMENT=0 -DENABLE_TEXT_AUTOSIZING=0
>> -DENABLE_THREADED_HTML_PARSER=0 -DENABLE_TOUCH_ICON_LOADING=0
>> -DENABLE_USER_TIMING=0 -DENABLE_VIBRATION=0 -DENABLE_WEB_AUDIO=0
>> -DSTATICALLY_LINKED_WITH_ANGLE -DSTATICALLY_LINKED_WITH_leveldb
>> -DSTATICALLY_LINKED_WITH_JavaScriptCore -DSTATICALLY_LINKED_WITH_WTF
>> -DBUILDING_WebCore -DBUILDING_WEBKIT -DQT_ASCII_CAST_WARNINGS
>> -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE
>> -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB
>> -DQT_SENSORS_LIB -DQT_CORE_LIB
>> -I/Users/jeremy/devel/kde/src/qt5/qtbase/mkspecs/macx-clang
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/icu
>> -I/opt/local/include/dbus-1.0 -I/opt/local/include
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/Modules/filesystem
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/Modules/geolocation
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/Modules/indexeddb
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/Modules/navigatorcontentutils
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/Modules/notifications
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/Modules/proximity
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/Modules/quota
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/Modules/webaudio
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/Modules/webdatabase
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/Modules/websockets
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/accessibility
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/bindings
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/bindings/generic
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/bridge
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/bridge/qt
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/css
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/dom
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/dom/default
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/editing
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/fileapi
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/history
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/html
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/html/canvas
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/html/forms
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/html/parser
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/html/shadow
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/html/track
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/inspector
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/appcache
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/archive
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/cache
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/icon
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/mathml
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/page
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/page/animation
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/page/qt
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/page/scrolling
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/page/scrolling/coordinatedgraphics
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/animation
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/audio
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/cpu/arm
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/cpu/arm/filters
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/filters
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/filters/texmap
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/opengl
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/opentype
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/qt
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/surfaces
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/texmap
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/texmap/coordinated
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/transforms
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/image-decoders
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/image-decoders/bmp
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/image-decoders/ico
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/image-decoders/gif
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/image-decoders/jpeg
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/image-decoders/png
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/image-decoders/webp
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/leveldb
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/mock
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/network
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/network/qt
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/qt
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/sql
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/text
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/text/transcoder
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/plugins
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/rendering
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/rendering/mathml
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/rendering/shapes
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/rendering/style
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/rendering/svg
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/storage
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/svg
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/svg/animation
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/svg/graphics
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/svg/graphics/filters
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/svg/properties
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/testing
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/websockets
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/workers
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/xml
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/xml/parser
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/ThirdParty
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/bridge/jsc
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/bindings/js
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/bridge/c
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/testing/js
>> -Igenerated
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/mac
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/icu
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/gpu
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/graphics/gpu
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/archive/mhtml
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source -I../include
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/ThirdParty/ANGLE/include/GLSLANG
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/ThirdParty/ANGLE/include/KHR
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/ThirdParty/leveldb/include
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/ThirdParty/leveldb
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/assembler
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/bytecode
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/bytecompiler
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/heap
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/dfg
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/debugger
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/disassembler
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/interpreter
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/jit
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/llint
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/parser
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/profiler
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/runtime
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/tools
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/yarr
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/API
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/JavaScriptCore/ForwardingHeaders
>> -I../JavaScriptCore/generated
>> -I/Users/jeremy/devel/kde/src/qt5build/qtwebkit/Source/JavaScriptCore/generated/LLIntOffsetsExtractor
>> -I../JavaScriptCore/generated/debug
>> -I/Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include/QtGui/5.5.0
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include/QtGui/5.5.0/QtGui
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include/QtMultimedia
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include/QtGui
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include/QtNetwork
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include/QtSql
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include/QtCore/5.5.0
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include/QtCore/5.5.0/QtCore
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include/QtSensors
>> -I/Users/jeremy/devel/kde/src/qt5build/qtbase/include/QtCore -I.moc
>> -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers
>> -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/AGL.framework/Headers
>> -I. -o .obj/loader/SubframeLoader.o
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/SubframeLoader.cpp
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.cpp:36:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.h:38:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/dom/IconURL.h:34:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/KURL.h:30:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashMap.h:24:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashTable.h:28:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashTraits.h:24:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashFunctions.h:24:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/RefPtr.h:29:
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/PassRefPtr.h:44:16:
>> error: member access into incomplete type
>>
>>       'WebCore::Archive'
>>
>>             ptr->deref();
>>
>>                ^
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/PassRefPtr.h:57:39:
>> note: in instantiation of function template specialization
>>
>>       'WTF::derefIfNotNull<WebCore::Archive>' requested here
>>
>>         ALWAYS_INLINE ~PassRefPtr() { derefIfNotNull(m_ptr); }
>>
>>                                       ^
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.cpp:852:39:
>> note: in instantiation of member function
>>
>>       'WTF::PassRefPtr<WebCore::Archive>::~PassRefPtr' requested here
>>
>>     RefPtr<Archive> subframeArchive =
>> activeDocumentLoader()->popArchiveForSubframe(childFrame->tree()->uniqueName(),
>> url);
>>
>>                                       ^
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.h:51:7:
>> note: forward declaration of 'WebCore::Archive'
>>
>> class Archive;
>>
>>       ^
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.cpp:36:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.h:38:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/dom/IconURL.h:34:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/platform/KURL.h:30:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashMap.h:24:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashTable.h:28:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashTraits.h:24:
>>
>> In file included from
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/HashFunctions.h:24:
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/RefPtr.h:62:35: error:
>> no matching function for call to 'derefIfNotNull'
>>
>>         ALWAYS_INLINE ~RefPtr() { derefIfNotNull(m_ptr); }
>>
>>                                   ^~~~~~~~~~~~~~
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.cpp:852:39:
>> note: in instantiation of member function
>>
>>       'WTF::RefPtr<WebCore::Archive>::~RefPtr' requested here
>>
>>     RefPtr<Archive> subframeArchive =
>> activeDocumentLoader()->popArchiveForSubframe(childFrame->tree()->uniqueName(),
>> url);
>>
>>                                       ^
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/PassRefPtr.h:41:45:
>> note: candidate template ignored: substitution failure
>>
>>       [with T = WebCore::Archive]
>>
>>     template<typename T> ALWAYS_INLINE void derefIfNotNull(T* ptr)
>>
>>                                             ^
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/PassRefPtr.h:38:16:
>> error: member access into incomplete type
>>
>>       'WebCore::Archive'
>>
>>             ptr->ref();
>>
>>                ^
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WTF/wtf/PassRefPtr.h:50:43:
>> note: in instantiation of function template specialization
>>
>>       'WTF::refIfNotNull<WebCore::Archive>' requested here
>>
>>         PassRefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); }
>>
>>                                           ^
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.cpp:890:32:
>> note: in instantiation of member function
>>
>>       'WTF::PassRefPtr<WebCore::Archive>::PassRefPtr' requested here
>>
>>     documentLoader->setArchive(archive.get());
>>
>>                                ^
>>
>> /Users/jeremy/devel/kde/src/qt5/qtwebkit/Source/WebCore/loader/FrameLoader.h:51:7:
>> note: forward declaration of 'WebCore::Archive'
>>
>> class Archive;
>>
>>       ^
>>
>> 6 errors generated.
>>
>> make[3]: *** [.obj/loader/FrameLoader.o] Error 1
>>
>> make[3]: *** Waiting for unfinished jobs....
>>
>> make[2]: *** [sub-Target-pri-make_first-ordered] Error 2
>>
>> make[1]: *** [sub-Source-WebCore-WebCore-pro-make_first-ordered] Error 2
>>
>> make: *** [module-qtwebkit-make_first] Error 2
>>
>>
>> Am I missing some dependency that configure doesn't catch like webengine,
>> or is WebKit just unbuildable on OS X for some reason?
>>
>>
>> Jeremy
>>
>> On Fri, Jan 9, 2015 at 7:00 AM, Jeremy Whiting <jpwhiting at kde.org> wrote:
>>
>>> np, /me switches to dev to do just that. Thanks for letting me know.
>>>
>>> On Fri, Jan 9, 2015 at 6:57 AM, David Faure <faure at kde.org> wrote:
>>>
>>>> "Bad" news - my patch for QStandardPaths (*) in dev just went in (which
>>>> is
>>>> good news for me), but it means you'll need to rebase your patch on top
>>>> of
>>>> origin/dev before submitting it in gerrit.
>>>>
>>>> (*) https://codereview.qt-project.org/102960
>>>>
>>>> --
>>>> David Faure, faure at kde.org, http://www.davidfaure.fr
>>>> Working on KDE Frameworks 5
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-mac/attachments/20150109/8e569aa3/attachment-0001.html>
-------------- next part --------------
diff --git a/src/corelib/io/qstandardpaths_mac.mm b/src/corelib/io/qstandardpaths_mac.mm
index 01d1c01..40c7f5f 100644
--- a/src/corelib/io/qstandardpaths_mac.mm
+++ b/src/corelib/io/qstandardpaths_mac.mm
@@ -38,6 +38,7 @@
 
 #ifndef QT_BOOTSTRAPPED
 #include <qcoreapplication.h>
+#include <qlibraryinfo.h>
 #endif
 
 #include <CoreFoundation/CoreFoundation.h>
@@ -177,6 +178,60 @@ QString QStandardPaths::writableLocation(StandardLocation type)
     }
 }
 
+static void normalizeDirs(QStringList &dirs) {
+    // Normalize paths, skip relative paths
+    QMutableListIterator<QString> it(dirs);
+    while (it.hasNext()) {
+        const QString dir = it.next();
+        if (!dir.startsWith(QLatin1Char('/')))
+            it.remove();
+        else
+            it.setValue(QDir::cleanPath(dir));
+    }
+
+    // Remove duplicates from the list, there's no use for duplicated
+    // paths in XDG_CONFIG_DIRS - if it's not found in the given
+    // directory the first time, it won't be there the second time.
+    // Plus duplicate paths causes problems for example for mimetypes,
+    // where duplicate paths here lead to duplicated mime types returned
+    // for a file, eg "text/plain,text/plain" instead of "text/plain"
+    dirs.removeDuplicates();
+}
+
+static QStringList xdgConfigDirs()
+{
+    QStringList dirs;
+    // http://standards.freedesktop.org/basedir-spec/latest/
+    QString xdgConfigDirsEnv = QFile::decodeName(qgetenv("XDG_CONFIG_DIRS"));
+    if (xdgConfigDirsEnv.isEmpty()) {
+#ifndef QT_BOOTSTRAPPED
+        dirs.append(QLibraryInfo::location(QLibraryInfo::PrefixPath) + QString::fromLatin1("/config"));
+#endif
+    } else {
+        dirs = xdgConfigDirsEnv.split(QLatin1Char(':'), QString::SkipEmptyParts);
+
+        normalizeDirs(dirs);
+    }
+    return dirs;
+}
+
+static QStringList xdgDataDirs()
+{
+    QStringList dirs;
+    // http://standards.freedesktop.org/basedir-spec/latest/
+    QString xdgDataDirsEnv = QFile::decodeName(qgetenv("XDG_DATA_DIRS"));
+    if (xdgDataDirsEnv.isEmpty()) {
+#ifndef QT_BOOTSTRAPPED
+        dirs.append(QLibraryInfo::location(QLibraryInfo::PrefixPath) + QString::fromLatin1("/share"));
+#endif
+    } else {
+        dirs = xdgDataDirsEnv.split(QLatin1Char(':'), QString::SkipEmptyParts);
+
+        normalizeDirs(dirs);
+    }
+    return dirs;
+}
+
 QStringList QStandardPaths::standardLocations(StandardLocation type)
 {
     QStringList dirs;
@@ -187,7 +242,18 @@ QStringList QStandardPaths::standardLocations(StandardLocation type)
             dirs.append(path);
     }
 
+    if (type == GenericDataLocation)
+        dirs.append(xdgDataDirs());
+
+    if (type == GenericConfigLocation || type == ConfigLocation)
+        dirs.append(xdgConfigDirs());
+
     if (type == AppDataLocation || type == AppLocalDataLocation) {
+        QStringList xdgDirs = xdgDataDirs();
+        for (int i = 0; i < xdgDirs.count(); ++i)
+            appendOrganizationAndApp(xdgDirs[i]);
+        dirs.append(xdgDirs);
+
         CFBundleRef mainBundle = CFBundleGetMainBundle();
         if (mainBundle) {
             CFURLRef bundleUrl = CFBundleCopyBundleURL(mainBundle);


More information about the kde-mac mailing list