<font color='black' size='2' face='arial'><font color="black" face="arial" size="2">
<div> <br>
</div>
<div> <br>
</div>
<div> <br>
</div>
<div style="font-family:arial,helvetica;font-size:10pt;color:black">-----Original Message-----<br>
From: Alexander Neundorf <a.neundorf-work@gmx.net><br>
To: David Cole <dlrdave@aol.com><br>
Cc: cmake <cmake@cmake.org><br>
Sent: Tue, Feb 5, 2013 2:50 pm<br>
Subject: Re: [CMake] When should I use add_subdirectory and when ExternalProject?<br>
<br>
<div id="AOLMsgPart_0_852c4b26-5561-44f2-9405-99be0c1ba1f1" style="margin: 0px;font-family: Tahoma, Verdana, Arial, Sans-Serif;font-size: 12px;color: #000;background-color: #fff;">
<pre style="font-size: 9pt;"><tt>On Tuesday 05 February 2013, David Cole wrote:
> -----Original Message-----
> From: Alexander Neundorf <<a href="mailto:a.neundorf-work@gmx.net">a.neundorf-work@gmx.net</a>>
> To: cmake <<a href="mailto:cmake@cmake.org">cmake@cmake.org</a>>
> Sent: Tue, Feb 5, 2013 1:09 pm
> Subject: Re: [CMake] When should I use add_subdirectory and when
> ExternalProject?
>
> On Monday 04 February 2013, David Cole wrote:
> > The OpenChemistry project (
> > <a href="https://github.com/OpenChemistry/openchemistry" target="_blank">https://github.com/OpenChemistry/openchemistry</a> ) is a very good example
> > of a SuperBuild project that builds all of its external dependencies via
> > ExternalProject, and then all of its git submodules ("internal
> > dependencies" perhaps ?) also via ExternalProject.
> >
> > They use CMAKE_PREFIX_PATH both as a place to install all of the built
> > components, and as a place for find_package to find stuff that was built
> > by a previous ExternalProject_Add call.
> >
> > Study how they do stuff in their CMakeLists files and then get back to us
> > here with more questions.
>
> one thing I had trouble with is related to the install step.
>
> With externalProject the install step happens at build time.
> If shared libraries are involved, the install destination should be the
> correct and final install destination, so that the RPATH of using projects
> will point to the correct location.
> This means that at build time I need to have the permissions to write to
> the final install destination (e.g. /opt/), i.e. typically root.
>
> Is this correct or am I missing something ?
>
> Alex
> --
>
> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a>
>
> Visit other Kitware open-source projects at
> <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a>
>
> Please keep messages on-topic and check the CMake FAQ at:
> <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a>
>
> Follow this link to subscribe/unsubscribe:
> <a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a>
>
>
>
>
> You are correct, but you are coming at it from a Linux-biased perspective.
>
> For developers on the project, this technique works as-is, in the build
> tree, and in the super-build's install tree, which is in a non-system,
> i.e., user writable location. That's true on all platforms.
>
> If you are building the openchemistry projects for packaging on a Linux
> box, then you will use all the "system" packages, and not even build them
> as part of the super build. Each one has a flag for whether or not to use
> the system one or to build it.
>
> For Mac and Windows installers, this technique works well, since all the
> built pieces of the super build are bundled up together as relocatable app
> installations.
How do relative packages actually work on the Mac with install_name ?
Is this always relative ?
I mean, if I have an application and build it against a shared lib, and then
later on at install time that shared lib is at some other place, the apps
doesn't find, does it ?
Alex
<br>
<br>
<br>
<font size="2"><font face="arial">via Bundle<tt><font size="2"><font face="arial">Utilities and fixup_bundle. Using @exec<tt><font size="2"><font face="arial">utable_path in <tt><font size="2"><font face="arial">bundled <tt><font size="2"><font face="arial">shared libraries...<br>
<br>
<tt><font size="2"><font face="arial">At install t<tt><font size="2"><font face="arial">ime, that lib is going to be inside the app bundle. It is not going to be at some other place.<br>
<br>
</font></font></tt></font></font></tt></font></font></tt></font></font></tt></font></font></tt></font></font></tt></font></font></tt></pre>
</div>
<!-- end of AOLMsgPart_0_852c4b26-5561-44f2-9405-99be0c1ba1f1 -->
</div>
</font></font>