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 <[email protected]> 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. >
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: https://cmake.org/mailman/listinfo/cmake
