[CMake] Eclipse generator question

Benjamin Shadwick benshadwick at gmail.com
Wed Apr 3 12:44:04 EDT 2019


Update - I think I found a tolerable workaround:

If I invoke cmake with -DCMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES=OFF and
then inject a link to my include directory into the .project file, things
work a lot better:
- I get only one copy of each source file in the Open Resource dialog.
- I get source and header files in the Open Resource dialog.
- I can toggle between source and header.
- I can build from Eclipse.
- I get version control support, even in my include tree.
- Indexing is fast.

It seems that Eclipse improved version control support quite a bit since
the CMake Eclipse generator was last touched. Unfortunately this seems to
also mean that a lot of the linked resources that CMake generates by
default now just add noise (hence my better results from turning them off).

There are still some aspects that are not ideal. In particular, CMake
brings the source files into the project via the "[Source directory]"
virtual folder, which just points to the CMake project root directory on
the filesystem. This approach has a number of issues:
- Source files that are not part of the CMake project show up in Open
Resource and possibly the Eclipse CDT index.
- A view of the sources/headers belonging to each CMake target is not
really provided (although you can glean the sources part somewhat by
looking at the detailed target tree).

On Tue, Apr 2, 2019 at 9:04 AM Benjamin Shadwick <benshadwick at gmail.com>
wrote:

> I've recently converted a complex C++ codebase to CMake. I'm stuck using
> 2.8.12.2.
>
> The codebase has a source tree, whose leaf directories each build a shared
> library or an executable binary. The source lives in src/ while the headers
> live in a separate tree under a sibling include/ directory.
>
> Based on advice from the Internet, I am trying to do out-of-source builds,
> with the debug flavor in a debug/ sibling directory, and release in release/
>
> This all works from the command line, but I am using Eclipse CDT as my
> primary IDE and would like to get decent integration between that and CMake.
>
> When I use CMake's Eclipse generator and then import the project into
> Eclipse, there are some serious issues. The primary issue is that when I
> hit Ctrl+Shift+R to bring up the Open Resource dialog and then type in the
> name of a source file, I get 3 results: one under each of [Source files],
> [Subprojects], and [Targets]. This is awful, especially since picking the
> wrong one results in weird behavior like inability to resolve include
> directives or inability to toggle between source and corresponding header
> file.
>
> Is there some way to address this without resulting to in-source builds?
> I'm even willing to butcher the project files post-generate using Python if
> it would help.
>
> Thanks,
> - Ben S.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190403/af76d1d4/attachment.html>


More information about the CMake mailing list