[Paraview] Packaging branded binary
Eric E. Monson
emonson at cs.duke.edu
Fri Jan 15 15:07:33 EST 2010
Hey Utkarsh,
Am I pushing on the branding packaging a bit too soon? I had forgotten the exchanges of last month with the "cpack not adapted yet to branding commit?" thread.
I'm excited that it's getting so easy to supply my users with a customized version of PV, but I can wait on this a bit if you're still working on the install/packaging stuff.
Thanks,
-Eric
On Jan 15, 2010, at 1:54 PM, Eric E. Monson wrote:
> 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
>>>>>>>
>>>>>
>>>>>
>>>
>>>
>
> _______________________________________________
> 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