Hi there,

OK, I have sorted out my Linux and Mac installers, raising bug 9949.
Thanks to everyone for their help.

For other readers interest, the most important bit to get the Qt Assistant help 
working on the Mac was to build my own Qt, install it in a non-standard place.  
(i.e. not /usr/lib, /usr/bin), and define a dependency on specific libraries 
like libQtCLucene.
Then when fixup_bundle searches for libraries to include, it will include all 
the Qt ones which on a Mac includes things like the Frameworks and also any 
additional libraries like libQtCLucene.
So, in future, for all my builds, I will probably compile my own Qt.

A few comments below

Many thanks.

Matt


Begin forwarded message:

From: Sascha Zelzer 
<[email protected]<mailto:[email protected]>>
Date: 28 October 2011 17:48:57 GMT+01:00
To: "Clarkson, Matt" <[email protected]<mailto:[email protected]>>
Cc: mitk-users 
<[email protected]<mailto:[email protected]>>
Subject: Re: [mitk-users] Can't install a boost library

Hi,

On 10/27/2011 12:31 PM, Clarkson, Matt wrote:
Hi Sascha,

Im making progress.

I added:

<stuff>/MITK/CMake/PackageDepends/MITK_Boost_Config.cmake

and magically boost seemed to be installed in the right places, and the 
fixup_bundle stuff verifies the app.

I am not quite sure what you mean with "added". The file exists in this 
location for some time now (recently I made some modifications to support 
binary boost libraries). This file is automatically read by the MITK module 
macros if you declare a dependeny to "Boost" in your MITK_CREATE_MODULE() macro 
call.


Well, I was reading a previous email on the mailing list, which suggested 
adding them to the project, so I created my own ones in 
<MyProject>/Code/Gui/MITK/CMakePackageDepends/MITK_Boost_Config.cmake, and made 
my module depend on Boost, so I miss-interpretted your previous email.   Sorry. 
 My approach did not work, as you need to define the variable MITK_USE_BOOST.  
So, I removed this.



However, while I understand that for normal MITK cases on a Mac you would run 
"make package", and then CPack would create a DragNDrop installer, I have been 
running make install, then I have my own script, which bundles up the whole 
installation folder. The reason is because of problems with /usr/bin/hdiutil as 
the package is too big for the default arguments.  So my script calculates the 
size of the required disk image, and adds branding images and a few other 
things. I just tried running "make package", and I got:

Is that something for which we could add a bug report for the 
BundleUtilities.cmake script?


Yes, probably, effectively what I do is:

# Calculate required size of disk image
echo "Calculating required size"
initial_size=`du -ks ${EFFECTIVE_ROOT} | awk '{print $1}'`
SIZE=$(($initial_size+2000))
echo "Size of directory to mount=${SIZE}k"

# Create the disk image
echo "Creating disk image"
hdiutil create -srcfolder "${EFFECTIVE_ROOT}" -volname "${BASE_NAME}" -fs HFS+ 
-fsargs "-c c=64,a=16,e=16" -format UDRW -size ${SIZE}k ${TMP_OUTPUT_DMG}



I raised bug 9949.



CPack Error: Error executing: /usr/bin/hdiutil create -ov -srcfolder 
"/Users/mattclarkson/build/UCLToolkit-SuperBuildRelease/UCLToolkit-build/_CPack_Packages/Darwin-i386/DragNDrop/ALL_IN_ONE"
 -volname "ucltk-2.5.0" -format UDRW 
"/Users/mattclarkson/build/UCLToolkit-SuperBuildRelease/UCLToolkit-build/_CPack_Packages/Darwin-i386/DragNDrop/temp.dmg"
CPack Error: Error generating temporary disk image.
CPack Error: Problem compressing the directory

which I expected.

So, my script seems OK, except for the fact that when installed on a completely 
separate Mac, the help files are not registered, which I assume is due to the 
lack of QtAssistant on the target machine.

That is very likely the reason.

QtAssistant is also not created within the CPack directory structure (that gets 
created before it's all zipped up), so I assume it would be missing even if 
"make package" was working.

So, next Question:  Where and How does QtAssistant get installed on a Mac?


Usually, you have a line like

https://github.com/MITK/MITK-ProjectTemplate/blob/master/CMakeLists.txt#L361

in your projects CMakeLists.txt. Then

https://github.com/MITK/MITK/blob/master/CMake/mitkInstallRules.cmake#L17

takes care of installing QtAssistant. The QT_ASSISTANT_EXECUTABLE CMake 
variable is set in

https://github.com/MITK/MITK/blob/master/BlueBerry/CMakeLists.txt#L64

so my guess is that you either have no QtAssistant executable, or it is named 
differently on MacOS.

Best,
Sascha


I had to add:
MITK_INSTALL_HELPER_APP(EXECUTABLES "${QT_ASSISTANT_EXECUTABLE}" )

to my CMakeLists.txt for my app. Then also there were Qt problems.  The 
Assistant app requires libQtCLucene.so.4 at run time, which is not included by 
fixup_bundle if this library is installed in a system place.  So I had to build 
my own Qt version, and install it in a non-standard place, and also 
specifically define a dependency on QtCLucene.

------------------------------------------------------------------------------
Get your Android app more play: Bring it to the BlackBerry PlayBook 
in minutes. BlackBerry App World&#153; now supports Android&#153; Apps 
for the BlackBerry&reg; PlayBook&#153;. Discover just how easy and simple 
it is! http://p.sf.net/sfu/android-dev2dev
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to