[MacPorts] #27558: qt4-mac @4.7.1 adding 'framework' variants

MacPorts noreply at macports.org
Tue Dec 7 08:12:59 PST 2010


#27558: qt4-mac @4.7.1 adding 'framework' variants
------------------------------------+---------------------------------------
 Reporter:  youngtaek.oh@…          |       Owner:  michaelld@…           
     Type:  enhancement             |      Status:  new                   
 Priority:  Normal                  |   Milestone:                        
Component:  ports                   |     Version:  1.9.2                 
 Keywords:                          |        Port:  qt4-mac               
------------------------------------+---------------------------------------

Comment(by michaelld@…):

 OK; interesting, and confusing too.  I think you're saying that you've
 installed "qt4-mac +debug +framework" in order to get both release and
 debug libraries for linking -- yes, you prefer the +framework version; I'm
 just trying to understand your setup so I can provide good feedback.
 Since pyqt4 doesn't have a +debug variant, it must link to the release
 libraries.  Your Qt/Python application, in order to do debug and if
 qt4-mac were NOT installed with +framework, would use the debug libraries
 -- which would cause a conflict when loading because both the release and
 debug libraries are used.  Is the above correct?

 Questions:

 * Since both your Qt/Python application and pyqt4 are linked to the
 release framework, do you use the DYLD_IMAGE_SUFFIX variable to access the
 debug version?  And, in doing so, you don't get the release / debug
 version conflict (since your application wants the debug version while
 pyqt4 wants the release version)?  Does this not happen correctly when not
 using frameworks -- meaning that for frameworks the DYLD will load just
 whichever library is found via DYLD_IMAGE_SUFFIX but for non-frameworks
 both libraries are loaded?

 * Have you tried setting DYLD_IMAGE_SUFFIX when using the non-framework
 install of qt4-mac?  It is supposed to override the actual load libraries
 no matter if they are installed as a framework or not.  In my limited
 testing, once the system debug libraries are installed, most of the time
 setting this environment variable worked as expected.  Using this variable
 allowed me to access just the "_debug" installed libraries, no matter that
 my application was linked to the release version.  It might work for you
 in the same way, which would then resolve your dual debug/release load
 conflict.

 * Might one option be to create a +debug version of pyqt4, and then make
 sure your application's variant matches that of pyqt4?  Seems like you'd
 want to do that anyway, no matter if using +framework or not.  Shouldn't
 be too difficult, since pyqt4 uses QMake build files to do its work.

-- 
Ticket URL: <https://trac.macports.org/ticket/27558#comment:8>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list