I'm a long term CDT USER, me and my team are developing an embedded Iot Gateway. Our code base is largely C/C++ that are cross builded for arm processor
we use Linux Ubuntu as HOST developer workstation and minly CDT as our IDE.
We have a big C/C++ project, our build system consists of our hand made Makefiles that automates the build, test and of the entire solution.
We use the same build system in our CI/CD pipeline.
So using a non IDE dependent build system is a must have for us, and I think as said by Erwin is a trend for our industry.
Currently we are using the CDT Managed Build project / Makefile Project / Tool Chain Cross GCC.
This way CDT invokes our Makefiles and different configurations call different Makefile Targets and includes PATH so that CDT builds up its index and we can navigate easily through the code.
The problem is that configuring the project in CDT is not very easy and a bit confusing for a new people
The project files could not be saved on the repository because they are changed locally by CDT.
I remediate, by committing them in a relevant folder, then a developer checkout the project , then calls a make target that copies the eclipse/cdt project files to the root folder before opening the project with CDT.
Another problem is that almost every time we close and reopen the project in CDT, the CDT cross tool settings are lost, and so we need to reconfigure them (fortunately by invoking the target that copy the project files )
Another problem is that it is difficult to integrate some very useful tools like c-lang formatter, C-lang tidy, and other static analysis tools, in order to have a development cycle not IDE dependent.
I love CDT, but I confess that it needs some cleaning and simplification.