(May 2021) I am using eclipse and nsightee_plugins to build a new project, after adding some folders (12) and classes (45) I noticed that eclipse is executing 3 different processes when I want to execute/debug/build the project:
- Invoking ‘CDT Builder’. (It takes 90 sec)
- Generating makefile for source folder Debug/… (It takes 170 sec)
- make all (It runs only for modified source files, which is good: Incremental build).
So, each time that I need to modify/add one source file and execute/debug it eclipse executes 1 and 2 for all folders again, not only the folder that was updated. The first and second steps are really annoying.
Config:
Current toolchain: CUDA Linux toolchain
Current builder: CUDA Toolkit Builder
What I have tried:
- I unchecked “Generate makefiles automatically”, but if I add a new source file it does not update my makefile.
- I unchecked “Expand Env. Variable refs in makefiles”, but it seems this flag is useless.
- Indexer is checked.
- Check/try - uncheck/try the “Build (Incremental build)” flag… No luck
- Change the CUDA toolchain… No luck (Project errors).
- Change the builder… No luck (Project errors).
- The root folder is listed on “Refresh policy” tab
- Delete Eclipse and start again… No. luck
- Delete the project and start again… No luck.
- Reinstall the OS!!!.. No luck.
System:
Ubuntu 20.04 (virtual machine) - 4GB RAM - 60GB HD.
MacBook Pro: Intel® Core™ i5-5287U CPU @ 2.90GHz × 2
Eclipse C++ (Not Nsight): Version: 2021-03 (4.19.0)
CUDA: 11.3 and its plugin for eclipse
Same machine and same project (C++ 100%) in eclipse with no CUDA toolchain takes 15 secs or less to execute!
It seems the problem is that CUDA toolchain updates the dependencies always… If I see any subdir.mk file, at the end it has a huge amount of dependencies for each header file in the folder. Ex:
src/utils/ClassA.o: /(a very large list of .h files, many of them are system headers)
src/utils/ClassB.o: /(a very large list of .h files, many of them are system headers)
…
src/utils/ClassZ.o: /(a very large list of .h files, many of them are system headers)
The question: is there a config to allow CUDA toolchain executing 1 and 2 on specific updated folders (only if needed)? like “Build (Incremental build)”.
Any ideas or a different config / strategy?