No subject


Sun Apr 3 09:54:08 EDT 2011


of libraries on the system.  If we find them, use them.  If not, build our
local copy.  Currently our approach requires that each third-party library
also have a functional CMake build, but in principle you could try adding
support for other systems with ExternalProject_Add as well.  We found it
simpler to just write CMake logic where needed, since in theory we need all
of our third-party deps to build in every situation BRL-CAD itself needs to
build in - rather than worry about whether the third-party library has
enough build systems defined to cover all those cases (and figuring out how
to trigger which one when) it proved simpler to write the CMake logic for
the library.  Eventually, we'd like to have upstream adopt the CMake logic
and we could just use their source archives unaltered, but we're a ways away
from that and some projects are pretty heavily invested in Autotools.

Cheers,
CY

--00151747354433325904ae79daab
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<br><br><div class=3D"gmail_quote">On Tue, Oct 4, 2011 at 7:20 AM, Daniel D=
ekkers <span dir=3D"ltr">&lt;<a href=3D"mailto:d.dekkers at cthrough.nl">d.dek=
kers at cthrough.nl</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote"=
 style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi,<br>
<br>
Would really appreciate your advice on this.<br>
<br>
We are planning to use and maybe distribute a library (let&#39;s call it Ou=
rLib) that depends on third-party libraries, namely Boost, Glut, OpenGL, Fr=
eeType, Bullet, PNG, ...<br></blockquote></div><br>You could take a look at=
 what BRL-CAD does for this situation:<br>
<br><a href=3D"http://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk=
">http://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk</a>=A0 (look=
 for adding the src/other subdirectory in CMakeLists.txt)<br><a href=3D"htt=
p://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk/src/other/">http:=
//brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk/src/other/</a><br>
<br>macros used are defined in:<br><br><a href=3D"http://brlcad.svn.sourcef=
orge.net/viewvc/brlcad/brlcad/trunk/misc/CMake/">http://brlcad.svn.sourcefo=
rge.net/viewvc/brlcad/brlcad/trunk/misc/CMake/</a><br><br>From a high level=
, our approach is to try to detect suitable installations of libraries on t=
he system.=A0 If we find them, use them.=A0 If not, build our local copy.=
=A0 Currently our approach requires that each third-party library also have=
 a functional CMake build, but in principle you could try adding support fo=
r other systems with ExternalProject_Add as well.=A0 We found it simpler to=
 just write CMake logic where needed, since in theory we need all of our th=
ird-party deps to build in every situation BRL-CAD itself needs to build in=
 - rather than worry about whether the third-party library has enough build=
 systems defined to cover all those cases (and figuring out how to trigger =
which one when) it proved simpler to write the CMake logic for the library.=
=A0 Eventually, we&#39;d like to have upstream adopt the CMake logic and we=
 could just use their source archives unaltered, but we&#39;re a ways away =
from that and some projects are pretty heavily invested in Autotools.<br>
<br>Cheers,<br>CY<br>

--00151747354433325904ae79daab--


More information about the CMake mailing list