> How does a launched application find the Qt frameworks that were installed by 
> the SDK? And how do those frameworks find the plugins?

"Phase I" changes does not change workflow, so all apps built with Qt find Qt 
libraries as before. Since all Qt libraries are now using @rpath id prefix they 
will be referenced w/o absolute (real) paths:

$ otool -L qtbase/bin/qdoc
qtbase/bin/qdoc:
        @rpath/QtXml.framework/Versions/5/QtXml (compatibility version 5.4.0, 
current version 5.4.0)
        @rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.4.0, 
current version 5.4.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 
120.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 1213.0.0)

While binary itself is built with -Wl,-rpath,<QT_LIBS_PATH>.

$ otool -l /tmp/test | grep -A 2 LC_RPATH
          cmd LC_RPATH
      cmdsize 40
         path /Applications/Qt/5.4/clang_64/lib (offset 12)

NOTE: Qt SDK internal tools binaries carry relative paths to libraries, while 
user built binaries have full path to Qt in rpath, i.e.:

$ otool -l qtbase/bin/qdoc | grep -A 2 LC_RPATH
          cmd LC_RPATH
      cmdsize 40
         path @executable_path/../lib (offset 12)

> Doesn't DYLD_LIBRARY_PATH and 
> DYLD_FRAMEWORK_PATH need to be set? Is the Creator modification one of those 
> changes?

None of these needed. There are no workflow changes. Built binary still holds 
path to Qt, however none of the Qt frameworks have any absolute paths embedded 
anymore, therefore we don't need to touch (rewrite) Qt libraries anymore.

During deployment macdeployqt is about replace LC_RPATH pointing to absolute Qt 
libraries path with @executable_path/../Frameworks, since libraries will be 
copied into Frameworks bundle folder.

> Also, how does QtCore find the plugins on behalf of every library? For 
> example, 
> when QtGui requests the cocoa platform plugin, what is the search logic?

Nothing has changed. It works like before.

Regards,
-- 
Adam
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to