On Saturday 12 November 2011, Dan Kegel wrote:
> In http://www.cmake.org/pipermail/cmake/2011-November/047250.html
> I wrote
> 
> "I can't reorganize the source tree on the developers,
> so I'm making do by putting the enclosing CMakeLists.txt next to all
> the projects:
>    toplevel/trunk/CMakeLists.txt
> which is checked out to
>    toplevel/CMakeLists.txt
> It does
>    add_subdirectory(../libfoo libfoo)
>    add_subdirectory(../libbar libbar)
>    add_subdirectory(../baz baz)
> This has the possible advantage that one can have multiple
> "top levels" (say, one for server code, and one for client).
> I don't know how many shops suffer from this svn layout, but I'll probably
> add an example covering it anyway for completeness once I'm sure
> it doesn't explode in practice."
> 
> Right, well, I found out where it explodes in practice.  Here's an example:
> http://code.google.com/p/winezeug/source/browse/trunk/cmake_examples/ex7/
> 
> The problem comes when using the cdt generator.  We can't use
> -DECLIPSE_CDT4_GENERATE_SOURCE_PROJECT=TRUE
> since there are more than one source project, but the
> source project that generates is really trivial, so I generate
> one for each source directory myself with a bit of shell:
> 
> for dir in demo libsrc
> do
>     sed "s/PROJNAME/_$dir/" < ../skeleton.project > ../$dir/.project
> done
> 
> before or after running cmake.
> 
> It all works great, the source projects all show up, the project builds...
> BUT when you edit a source file and tell eclipse to rebuild, it just
> sits there.  It doesn't know that the source projects are related to
> the build project.
> 
> It looks like adding a link does the trick:
> 
> --- .project.old      2011-11-11 22:51:56.797674441 +0000
> +++ .project  2011-11-11 22:52:25.380913484 +0000
> @@ -113,5 +113,11 @@
>                       <type>2</type>
>                       
> <location>/home/dank/winezeug/cmake_examples/ex7/demo</location>
>               </link>
> +             <link>
> +                     <name>[Source directory 2]</name>
> +                     <type>2</type>
> +                     
<location>/home/dank/winezeug/cmake_examples/ex7/libsrc</location>
> +             </link>
> +
>       </linkedResources>
>  </projectDescription>
> 
> After I add those lines to the .project, saved changes in libsrc do seem
> to cause a rebuild the next time you click "build project".
> 
> So, I guess to support this style of project, the cdt generator
> should call cmExtraEclipseCDT4Generator::AppendLinkedResource()
> once for each call in my outer CMakeLists.txt like
> add_subdirectory(../libsrc libsrc).

Ok. So two things:
* please give current cmake master a try, it has several improvements.
* please create a ticket in the cmake bug tracker for this, improved source-
project generator for Eclipse, or something like this.

My goal is to have no open bugs for Eclipse when 2.8.7 wil be released.

Alex
--

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 CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to