[Paraview] Packaging branded binary

Eric E. Monson emonson at cs.duke.edu
Fri Jan 15 13:54:56 EST 2010


Thanks, that gets the Qt libraries in the proper place.

If you created a ThirdPartyRuntimes component would that automatically pick up dependencies like the libaudio? 

The Ubuntu I'm using has only been used to build ParaView CVS from source, and so the only non-standard apt-get installs I've done before building PV were based on the list for Debian on the PV Wiki: cvs libphonon-dev libphonon4 libqt4-assistant qt4-dev-tools libqt4-core libqt4-gui qt4-qmake libxt-dev g++ gcc cmake-curses-gui libqt4-opengl-dev openmpi-common openmpi-bin libopenmpi-dev python2.6-dev

But, it would be great if my binary package could run on a "clean" system since I don't know what my users will have installed. I guess if I knew where libaudio came in, I could have them install that package, but it would be cleaner if I didn't have to...

I'll send a separate email with my OS X issues... Something for you to look forward to. :)

Thanks,
-Eric


On Jan 15, 2010, at 11:27 AM, Utkarsh Ayachit wrote:

> Eric,
> 
> If your application wants to install Qt libs, use the following:
> 
> #-------------------------------------------------------------------
> SET (qtliblist QTCORE QTGUI QTNETWORK QTXML QTSQL QTHELP QTWEBKIT
> QTCLUCENE PHONON QTXMLPATTERNS)
> # QTDBUS is Unix only
> IF(NOT WIN32)
>  LIST(APPEND qtliblist QTDBUS)
> ENDIF(NOT WIN32)
> 
> IF (NOT WIN32)
>  SET (PV_INSTALL_LIB_DIR
> "lib/paraview-${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}")
> ELSE (NOT WIN32)
>  SET (PV_INSTALL_LIB_DIR "bin")
> ENDIF (NOT WIN32)
> 
> # You can set PV_INSTALL_LIB_DIR to "lib/yourapp-version" if you want
> to put the qt libraries there.
> 
> install_qt_libs("${qtliblist}" BrandedRuntime)
> #-------------------------------------------------------------------
> 
> I think I may change install_qt_libs to take the location where to
> install them so that you don't have set the PV_INSTALL_LIB_DIR
> variable.
> 
> Don't copy the install rule for .plugins since that doesn't make sense
> for custom applications.
> 
> I am pondering creating a new install component "ThirdPartyRuntimes"
> that the custom app can pick to install and then Qt and FFMPEG (if
> applicable) will get installed automatically.
> 
> Utkarsh
> 
> 
> On Fri, Jan 15, 2010 at 11:11 AM, Eric E. Monson <emonson at cs.duke.edu> wrote:
>> Hey Utkarsh,
>> 
>> We're getting closer... Your new instructions got me past a lot of the problems, but I was still missing the Qt libraries. I copied the "Add install rules..." section from Applications/ParaView/CMakeLists.txt so I would have an example for the install_qt_libs() macro, and it sort of worked, but in my binary package it put all of the Qt libraries in the package root rather than in {package_root}/lib/paraview-3.7/. After I moved the Qt libraries to that spot, all it was missing was libaudio.so.2 (which is a link to libaudio.so.2.4 on my system). If I also copy that to the correct package lib directory it runs on a clean Ubuntu system!
>> 
>> So, if you know how to get the Qt libraries to end up in the correct spot, and how to get libaudio to show up, too, let me know.
>> 
>> Oh, and when I copied the whole "Add install rules" section, cmake complained when it ran into the "Install the .plugins configuration file" section, saying "install FILES given no DESTINATION!". I guess maybe it doesn't know the ${PV_INSTALL_LIB_DIR} variable, but I'm not sure if I'll need that, or what to replace it with in my script.
>> 
>> Next I need to see if I can get my plugins to compile and install along with my branded app. As you can tell, I'm not exactly a CMake master! :)
>> 
>> Thanks again for all the help,
>> -Eric
>> 
>> 
>> On Jan 14, 2010, at 5:08 PM, Utkarsh Ayachit wrote:
>> 
>>> Eric,
>>> 
>>> I've updated the Wiki:
>>> 
>>> http://www.paraview.org/Wiki/Writing_Custom_Applications#Packaging
>>> 
>>> Here are the highlights:
>>> * Build ParaView with VTK_USE_RPATH:OFF and BUILD_SHARED: ON
>>> * Build your app with CMAKE_SKIP_RPATH:ON and BUILD_SHARED: ON
>>> 
>>> Utkarsh
>>> 
>>> On Thu, Jan 14, 2010 at 5:06 PM, Eric E. Monson <emonson at cs.duke.edu> wrote:
>>>> Hey Utkarsh,
>>>> 
>>>> Thanks for the quick response -- that worked perfectly for generating the package.
>>>> 
>>>> The problem I'm running into now, on Ubuntu at least (which is probably a generic install/package problem, not specific to the branding) is that the executable can't find the proper libraries. I can run from the {package}/build directory if I make a source package, but that seems to be because it's still finding the libraries in my original ParaView build -- ldd on the executable lists the original library build location, not the new {package}/lib/paraview-3.7 library location. I tried building ParaView with VTK_USE_RPATH turned OFF, too, but that didn't seem to solve it.
>>>> 
>>>> Sorry for the ignorance on this part -- I usually just build and run in place rather than doing an "install".
>>>> 
>>>> Thanks again,
>>>> -Eric
>>>> 
>>>> 
>>>> On Jan 14, 2010, at 4:25 PM, Utkarsh Ayachit wrote:
>>>> 
>>>>> Eric,
>>>>> 
>>>>> That's something that needs to be fixed. For now, you can do this:
>>>>> 
>>>>> cpack -G TGZ --config CPack{PackageName}Config.cmake
>>>>> 
>>>>> You can change the generator (-G) suitable for your platform. Look at
>>>>> cpack --help for details.
>>>>> 
>>>>> Note: this is still under development. I committed this code just
>>>>> yesterday :), so there may be issues. But we'd love any feedback that
>>>>> we can get.
>>>>> 
>>>>> Utkarsh
>>>>> 
>>>>> On Thu, Jan 14, 2010 at 4:16 PM, Eric E. Monson <emonson at cs.duke.edu> wrote:
>>>>>> Hello,
>>>>>> 
>>>>>> I've never tried to package PV binaries before, but I've been enjoying exploring the new branding capabilities and started trying to see if I could package my custom PV to supply for my users. I added the appropriate lines to my CMakeList.txt file by looking at the one for the Spreadsheet app. I'm building out of the PV source tree, and the build goes fine.
>>>>>> 
>>>>>> Even though there were cpack options when configuring in ccmake for both binary and source packaging, I can run "make package_source" after my build but there is no target for "make package". Is there some other configuration I can do to package the binaries without all of the source files?
>>>>>> 
>>>>>> (I'm building 64-bit versions with CVS CMake and ParaView, and Qt 4.6.0 on both Mac OS X 10.6.2 and Ubuntu 9.10)
>>>>>> 
>>>>>> Thanks for the help,
>>>>>> -Eric
>>>>>> 
>>>>>> ------------------------------------------------------
>>>>>> Eric E Monson
>>>>>> Duke Visualization Technology Group
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Powered by www.kitware.com
>>>>>> 
>>>>>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>>>>> 
>>>>>> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>>>>>> 
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>>>> 
>>>> 
>>>> 
>> 
>> 



More information about the ParaView mailing list