<font size=2 face="sans-serif">So... no easy answer for this? The only
reason I bring this up is that I've looked at the cmake version of boost,
and it requires a library of several cmake files full of macros and functions
that help get their project organization to work with cmake. I've had to
resort to the same kind of thing. ADD_LIBRARY just didn't cut it. I like
that cmake allows me to get to the functionality I want, but it seems that
it becomes a scripting language at that point, and cmake is certainly not
a scripting language. Boost for example has numerous helper functions or
macros for using named arguments with macros and functions. (They are all
very cleaver and I totally use them in my project.) Another example is
that my project has functions and macros for adding the dependencies between
libraries, dependencies like include directories, link directories, and
link libraries. Is there something on the horizon for CMake to address
these issues? Or have they been addressed, but I've missed them?</font>
<br>
<br><font size=2 face="sans-serif">On a side note, I see questions for
this kind of thing all the time on this mailing list. I never see a very
good answer. Perhaps a wiki page or a blog could be made covering project
organization. It could perhaps cut down on repeat questions.</font>
<br>
<br><font size=2 face="sans-serif">-------------------------------------------------------------<br>
Aaron Wright</font>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">Aaron_Wright@selinc.com</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">Michael Jackson &lt;mike.jackson@bluequartz.net&gt;</font>
<tr>
<td valign=top><font size=1 color=#5f5f5f face="sans-serif">Cc:</font>
<td><font size=1 face="sans-serif">cmake@cmake.org</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">03/22/2010 07:47 AM</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">Re: [CMake] Handling library dependencies
and minimizing duplicated include_directories</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Sent by:</font>
<td><font size=1 face="sans-serif">cmake-bounces@cmake.org</font></table>
<br>
<hr noshade>
<br>
<br>
<br><font size=2 face="sans-serif">You mean in the case of a master CMakelists.txt
file I assume? That does work, and I like that functionality. The same
kind of thing works for Visual Studio solutions as well. I just don't think
this fits the usual paradigm of building my developers and I are used to.
</font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
For example, if they want to work on a library, they would instinctively
go to that library and make a build folder and run CMake. They would not
think to go to the top of the directory tree, create a build folder in
a location they never make folders or files or do any work, and then progress
down the build folder's directory path to the library they want to build.
Which is in a completely different location than the source files of the
library, which they'll soon be modifying.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
This would all work though, so it is a valid solution.</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
-------------------------------------------------------------<br>
Aaron Wright</font><font size=3> <br>
<br>
<br>
</font>
<table width=100%>
<tr valign=top>
<td width=9%><font size=1 color=#5f5f5f face="sans-serif">From:</font><font size=3>
</font>
<td width=90%><font size=1 face="sans-serif">Michael Jackson &lt;mike.jackson@bluequartz.net&gt;</font><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">Aaron_Wright@selinc.com</font><font size=3>
</font>
<tr>
<td valign=top><font size=1 color=#5f5f5f face="sans-serif">Cc:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">cmake@cmake.org</font><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">03/22/2010 07:32 AM</font><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">Re: [CMake] Handling library dependencies
and minimizing duplicated include_directories</font></table>
<br><font size=3><br>
</font>
<hr noshade><font size=3><br>
<br>
</font><tt><font size=2><br>
If you are using any of the &quot;Makefile&quot; generators, you can simply
&nbsp;<br>
drill down into the folder of the library you want to build and issue &nbsp;<br>
the &quot;make&quot; command. The library, and anything that it depends
on will &nbsp;<br>
be built (or rebuilt) accordingly.<br>
___________________________________________________________<br>
Mike Jackson &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;</font></tt><a href=www.bluequartz.net><tt><font size=2 color=blue><u>www.bluequartz.net</u></font></tt></a><tt><font size=2><br>
<br>
<br>
On Mar 22, 2010, at 9:52 AM, Aaron_Wright@selinc.com wrote:<br>
<br>
&gt; I've always been a little confused by FIND_PACKAGE and those &quot;*-
<br>
&gt; config.cmake&quot; files. So much so that I didn't use them in my
build &nbsp;<br>
&gt; system at all. The main question I have is that I have several &nbsp;<br>
&gt; developers and numerous little and big libraries. Because the whole
&nbsp;<br>
&gt; project is so big it would be prohibitive for them all to work from
&nbsp;<br>
&gt; a master CMakeLists.txt file at the top. I want each developer to
be &nbsp;<br>
&gt; able to go the folder of the library they want to work on today and
&nbsp;<br>
&gt; start building there. I want all the libraries that library depends
&nbsp;<br>
&gt; on to be built or rebuilt if anything has changed in addition to &nbsp;<br>
&gt; building the current library.<br>
&gt;<br>
&gt; I've been unable to find a simple solution to this problem using &nbsp;<br>
&gt; CMake, which makes me wonder if what I'm doing is off the wall, but
&nbsp;<br>
&gt; it sounds so normal to me. I see these &quot;*-config.cmake&quot;
files but it &nbsp;<br>
&gt; seems they are generated from a CMakelist.txt file, which wouldn't
&nbsp;<br>
&gt; make any sense, because I'm not going to have a developer go to each
&nbsp;<br>
&gt; dependant library and build it seperately so that the &quot;*- <br>
&gt; config.cmake&quot; can be generated so that he can have those variables
&nbsp;<br>
&gt; back in the library he really wants to build.<br>
&gt;<br>
&gt; What am I missing?<br>
&gt;<br>
&gt; -------------------------------------------------------------<br>
&gt; Aaron Wright<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; From:<br>
&gt; Daniel Lidström &lt;daniel.lidstrom@sbg.se&gt;<br>
&gt; To:<br>
&gt; Cc:<br>
&gt; &lt;cmake@cmake.org&gt;<br>
&gt; Date:<br>
&gt; 03/20/2010 01:25 PM<br>
&gt; Subject:<br>
&gt; Re: [CMake] Handling library dependencies and minimizing &nbsp;<br>
&gt; duplicated &nbsp; &nbsp; &nbsp; &nbsp;include_directories<br>
&gt; Sent by:<br>
&gt; cmake-bounces@cmake.org<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; &gt; If the projects UMC3D, GFL etc can be used independently, but<br>
&gt; &gt; are all &quot;under your control&quot;, then you shouldn't write<br>
&gt; &gt; FindUMC3D.cmake, FindGFL.cmake etc files, but create<br>
&gt; &gt; UMC3D-config.cmake, GFL-config.cmake etc files instead. Read<br>
&gt; &gt; the documentation of the FIND_PACKAGE command, especially the<br>
&gt; &gt; paragraphs about the &quot;config mode&quot;. You'll also find
many<br>
&gt; &gt; discussions on this in the archives of this list.<br>
&gt;<br>
&gt; Thanks a lot for your help Mike!<br>
&gt;<br>
&gt; Regards,<br>
&gt;<br>
&gt; Daniel Lidström<br>
&gt; Stockholm, Sweden<br>
&gt; _______________________________________________<br>
&gt; Powered by </font></tt><a href=www.kitware.com><tt><font size=2 color=blue><u>www.kitware.com</u></font></tt></a><tt><font size=2><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at </font></tt><a href=http://www.kitware.com/opensource/opensource.html><tt><font size=2 color=blue><u>http://www.kitware.com/opensource/opensource.html</u></font></tt></a><tt><font size=2><br>
&gt;<br>
&gt; Please keep messages on-topic and check the CMake FAQ at: </font></tt><a href=http://www.cmake.org/Wiki/CMake_FAQ><tt><font size=2 color=blue><u>http://www.cmake.org/Wiki/CMake_FAQ</u></font></tt></a><tt><font size=2><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; </font></tt><a href=http://www.cmake.org/mailman/listinfo/cmake><tt><font size=2 color=blue><u>http://www.cmake.org/mailman/listinfo/cmake</u></font></tt></a><tt><font size=2><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Powered by </font></tt><a href=www.kitware.com><tt><font size=2 color=blue><u>www.kitware.com</u></font></tt></a><tt><font size=2><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at </font></tt><a href=http://www.kitware.com/opensource/opensource.html><tt><font size=2 color=blue><u>http://www.kitware.com/opensource/opensource.html</u></font></tt></a><tt><font size=2><br>
&gt;<br>
&gt; Please keep messages on-topic and check the CMake FAQ at: </font></tt><a href=http://www.cmake.org/Wiki/CMake_FAQ><tt><font size=2 color=blue><u>http://www.cmake.org/Wiki/CMake_FAQ</u></font></tt></a><tt><font size=2><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; </font></tt><a href=http://www.cmake.org/mailman/listinfo/cmake><tt><font size=2 color=blue><u>http://www.cmake.org/mailman/listinfo/cmake</u></font></tt></a><tt><font size=2><br>
</font></tt><font size=3><br>
</font><tt><font size=2>_______________________________________________<br>
Powered by </font></tt><a href=www.kitware.com><tt><font size=2>www.kitware.com</font></tt></a><tt><font size=2><br>
<br>
Visit other Kitware open-source projects at </font></tt><a href=http://www.kitware.com/opensource/opensource.html><tt><font size=2>http://www.kitware.com/opensource/opensource.html</font></tt></a><tt><font size=2><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: </font></tt><a href=http://www.cmake.org/Wiki/CMake_FAQ><tt><font size=2>http://www.cmake.org/Wiki/CMake_FAQ</font></tt></a><tt><font size=2><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
</font></tt><a href=http://www.cmake.org/mailman/listinfo/cmake><tt><font size=2>http://www.cmake.org/mailman/listinfo/cmake</font></tt></a>
<br>