[CMake] Re: [Paraview] December snapshot of ParaView III

Mike Jackson mike.jackson at imts.us
Tue Dec 19 13:32:28 EST 2006


Cross posting to the CMake list as that is the more appropriate place:

Here the patch that I have for the Darwin.cmake file. Starting around  
line 54 in the CMake 2.4.3 distribution.

OPTION(OSX_EMBEDDED_LIBRARY OFF)
IF ( OSX_EMBEDDED_LIBRARY )
   SET(OSX_EMBEDDED_LIBRARY_FOLDER "PlugIns" CACHE STRING "The Name  
of the Folder within the *.app/Contents/ package." FORCE)
ENDIF ( OSX_EMBEDDED_LIBRARY )

IF ( OSX_EMBEDDED_LIBRARY )
   SET (OSX_CUSTOM_RPATH "@executable_path/../$ 
{OSX_EMBEDDED_LIBRARY_FOLDER}/")
   SET(CMAKE_C_CREATE_SHARED_LIBRARY
     "<CMAKE_C_COMPILER> <LANGUAGE_COMPILE_FLAGS>  
<CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> <LINK_FLAGS> -o <TARGET> - 
install_name ${OSX_CUSTOM_RPATH}<TARGET_SONAME> <OBJECTS>  
<LINK_LIBRARIES>")
   SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
     "<CMAKE_CXX_COMPILER> <LANGUAGE_COMPILE_FLAGS>  
<CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <LINK_FLAGS> -o <TARGET> - 
install_name ${OSX_CUSTOM_RPATH}<TARGET_SONAME> <OBJECTS>  
<LINK_LIBRARIES>")
ELSE ( OSX_EMBEDDED_LIBRARY )
   SET(CMAKE_C_CREATE_SHARED_LIBRARY
     "<CMAKE_C_COMPILER> <LANGUAGE_COMPILE_FLAGS>  
<CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> <LINK_FLAGS> -o <TARGET> - 
install_name <TARGET_INSTALLNAME_DIR><TARGET_SONAME> <OBJECTS>  
<LINK_LIBRARIES>")
   SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
     "<CMAKE_CXX_COMPILER> <LANGUAGE_COMPILE_FLAGS>  
<CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <LINK_FLAGS> -o <TARGET> - 
install_name <TARGET_INSTALLNAME_DIR><TARGET_SONAME> <OBJECTS>  
<LINK_LIBRARIES>")
ENDIF ( OSX_EMBEDDED_LIBRARY )


Yes? No? Not Really?
-- 
Mike Jackson   Senior Research Engineer
Innovative Management & Technology Services


On Dec 19, 2006, at 1:08 PM, Mike Jackson wrote:

> I finally was able to take a look at that script... Wouldn't this  
> be a _lot_ easier if CMake just supported a custom RPATH? Then the  
> only thing you have to worry about is the Qt Libs...
>
> Way down in /usr/local/share/CMake/Modules/Platform/Darwin.cmake,  
> couldn't there be something like:
>
>
> IF ( OSX_EMBEDDED_SHARED_LIBRARY )
>
>   SET(CMAKE_C_CREATE_SHARED_LIBRARY
>     "<CMAKE_C_COMPILER> <LANGUAGE_COMPILE_FLAGS>  
> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> <LINK_FLAGS> -o <TARGET> - 
> install_name <OSX_CUSTOM_RPATH><TARGET_SONAME> <OBJECTS>  
> <LINK_LIBRARIES>")
>   SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
>     "<CMAKE_CXX_COMPILER> <LANGUAGE_COMPILE_FLAGS>  
> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <LINK_FLAGS> -o <TARGET> - 
> install_name <OSX_CUSTOM_RPATH><TARGET_SONAME> <OBJECTS>  
> <LINK_LIBRARIES>")
>
> ELSE ( OSX_EMBEDDED_SHARED_LIBRARY )
>
>   SET(CMAKE_C_CREATE_SHARED_LIBRARY
>     "<CMAKE_C_COMPILER> <LANGUAGE_COMPILE_FLAGS>  
> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> <LINK_FLAGS> -o <TARGET> - 
> install_name <TARGET_INSTALLNAME_DIR><TARGET_SONAME> <OBJECTS>  
> <LINK_LIBRARIES>")
>   SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
>     "<CMAKE_CXX_COMPILER> <LANGUAGE_COMPILE_FLAGS>  
> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <LINK_FLAGS> -o <TARGET> - 
> install_name <TARGET_INSTALLNAME_DIR><TARGET_SONAME> <OBJECTS>  
> <LINK_LIBRARIES>")
>
> ENDIF ( OSX_EMBEDDED_SHARED_LIBRARY )
>
> and then present the user in ccmake with the option of setting the  
> embedded rpath to PlugIns or Frameworks or whatever?
>
> Just curious..
> -- 
> Mike Jackson   Senior Research Engineer
> Innovative Management & Technology Services
>
>
> On Dec 13, 2006, at 1:41 PM, Berk Geveci wrote:
>
>>> Are you saying that there is a script that creates the application
>>> bundle with all the RPATHS set correctly for OS X? I'd be happy to
>>> start digging through that to see what I can offer.. I have been
>>> waiting for this for a loooooong time..
>>
>> Yup. Andy wrote it. It is
>> ParaView3/Applications/Client/CreateBundle.sh.in.  It gets configured
>> into the build tree as CreateaBundle.sh under the same location.
>> Eventually, it will become a cmake script.
>>
>>> BTW.. the Intel build of ParaView III is correct. It works fine and
>>> all the libraries have all the RPATHS set correctly..
>>
>> I know. I test the intel build on my machine at home. I don't test  
>> the
>> ppc build on anything other than the one I build on. When running the
>> script, I see warning but I assumed that it was still working.  
>> Looking
>> at the output of otool -L paraview, everything looks normal. I can
>> also run it without problems on that machine. Looking at the  
>> error, it
>> looks like assistant's paths are not being modified correctly.  otool
>> -L on assistant shows wrong paths whereas on intel, they are fine.
>>
>> -berk
>
>
> _______________________________________________
> ParaView mailing list
> ParaView at paraview.org
> http://www.paraview.org/mailman/listinfo/paraview




More information about the CMake mailing list