Opened 12 years ago

Closed 12 years ago

Last modified 18 months ago

#37662 closed defect (fixed)

qt4-mac QtGui resources

Reported by: chris.pike@… Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc:
Port: qt4-mac

Description

QtGui resources installed in /opt/local/ /opt/local/lib/libQtGui.dylib

The location of QtGui framework resources (qt_menu.nib) cannot be obtained using pkg-config, due to the way that /opt/local/lib/libQtGui.dylib links to /opt/local/Library/Frameworks/QtGui.framework/QtGui. A script I have to create an .app bundle, which uses Qt GUI resources, fails with a Mac Ports install of Qt because qt_menu.nib cannot be found in the usual way. It looks in /opt/local/lib/Resources instead of /opt/local/Library/Frameworks/QtGui.framework/Resources. Can this be fixed somehow?

Attachments (1)

qt4-mac-Resources-fix.diff (668 bytes) - added by michaelld (Michael Dickens) 12 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: changed from macports-tickets@… to michaelld@…

comment:2 Changed 12 years ago by michaelld (Michael Dickens)

Can you post your script, so I have a better understanding?

comment:3 Changed 12 years ago by chris.pike@…

I am installing the SoundScape Renderer project (https://dev.qu.tu-berlin.de/projects/ssr/files) - version 0.3.4. I followed the procedure outlined here: https://dev.qu.tu-berlin.de/projects/ssr/wiki/SSR_for_MacOSX#Building-the-SSR-on-Mac-OS-X

When building an application bundle:

./configure JACK_LIBS="-L/usr/local/lib -ljack" JACK_CFLAGS=-I/usr/local/include/jack --enable-app-bundle
make dmg

It fails with error:

cp -r /opt/local/lib/Resources/qt_menu.nib /Users/chrisp/Documents/Code/BBC/SpatialAudio/ssr-0.3.4-bbc/MacOSX-App-Bundle/SoundScapeRenderer-0.3.4/SoundScapeRenderer.app/Contents/Resources/
cp: /opt/local/lib/Resources/qt_menu.nib: No such file or directory

This error occurs when the Makefile is copying the QtGui resources across into the .app bundle. The instruction to perform this step is at path/to/ssr-0.3.4/data/MacOSX/Makefile.am:46

cp -r $(QTLIBDIR)/Resources/qt_menu.nib $(DESTDIR)$(pkgdatadir)/

and QTLIBDIR is obtained from pkg-config (path/to/ssr-0.3.4/configure.ac:479)

QTLIBDIR=`$PKG_CONFIG --variable=libdir QtGui`

comment:4 Changed 12 years ago by michaelld (Michael Dickens)

I see; let me look into this a bit.

Changed 12 years ago by michaelld (Michael Dickens)

Attachment: qt4-mac-Resources-fix.diff added

comment:5 Changed 12 years ago by michaelld (Michael Dickens)

I just attached a patch to the qt4-mac Portfile which I think will fix this issue. I'll try to get qt4-mac (re)built over the weekend so I can test the "destroot" phase, which is where this change takes place. You can also test this patch, if you want to.

comment:6 Changed 12 years ago by michaelld (Michael Dickens)

Resolution: fixed
Status: newclosed

Done in r102010.

comment:7 in reply to:  5 Changed 18 months ago by barracuda156

Replying to michaelld:

I just attached a patch to the qt4-mac Portfile which I think will fix this issue. I'll try to get qt4-mac (re)built over the weekend so I can test the "destroot" phase, which is where this change takes place. You can also test this patch, if you want to.

I just got the same error:

-- Installing: /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_eiskaltdcpp/eiskaltdcpp/work/destroot/opt/local/eiskaltdcpp.app/Contents/Resources/client-res/default.rcc
CMake Error at eiskaltdcpp-qt/cmake_install.cmake:89 (file):
  file INSTALL cannot find
  "/opt/local/libexec/qt4/lib/QtGui.framework/Resources/qt_menu.nib": No such
  file or directory.
Call Stack (most recent call first):
  cmake_install.cmake:46 (include)


make: *** [install/fast] Error 1
make: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_eiskaltdcpp/eiskaltdcpp/work/build'

comment:8 Changed 18 months ago by barracuda156

I see what happened, the patch forgot about QtGui.framework directory, linking instead Resources directly.

Note: See TracTickets for help on using tickets.