Bug 232945 - CDT build does a lot of unnecessary work
Summary: CDT build does a lot of unnecessary work
Status: NEW
Alias: None
Product: CDT
Classification: Tools
Component: cdt-build (show other bugs)
Version: 5.0   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: cdt-build-inbox@eclipse.org CLA
QA Contact: Jonah Graham CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-05-20 08:26 EDT by Alexey Krivoborodov CLA
Modified: 2020-09-04 15:25 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Krivoborodov CLA 2008-05-20 08:26:11 EDT
Build ID: Eclipse 3.4.0.I20080502-0100, CDT 5.0.0-I200805191116

Project structure:

1. Create C++ project "lib1", choose Static Library, Cygwin GCC.
2. Create lib1.cpp in the project lib1 and add function void func1(void) {} to lib1.cpp.
3. Create C++ project "lib2", choose Static Library, Cygwin GCC.
4. Create lib2.cpp in the project lib2 and add function void func2(void) {} to lib2.cpp
5. Create C++ project "MainProject", choose Executable, Hello World C++ Project, Cygwin GCC
6. Add extern declarations and calls to func1() and func2() in MainProject.cpp.
7. Add lib1 and lib2 to Libraries in Cygwin C++ linker settings in MainProject.
8. Add library search paths "..\..\lib1\Debug" and "..\..\lib2\Debug" in Cygwin C++ linker settings in MainProject.
9. Add project references: MainProject references lib1 and lib2.

Steps to reproduce and problems:

1. Build MainProject. The project is built. Modify MainProject.cpp, e.g. add an empty line. Build MainProject.
- what would be great:
Only the changed cpp-file should be compiled and then the main executable file MainProject.exe should be linked.
- what is actually done:
Makefiles of all projects are generated one more time although only one cpp-file was changed. Make is called on all projects.

2. Build gccMain. The project is built. Build the project again.
- what would be great:
nothing is done, the build stops immediately
- what is actually done:
Makefiles of all projects are generated one more time although nothing has changed. Make is called on all projects.

3. Clean gccMain. The project is cleaned. Clean it again.
- what would be great:
nothing is done, the clean stops immediately
- what is actually done:
Clean is executed on all projects one more time.

More information:

The main problem is rebuilding the main project after making some changes. The build takes a lot of time in the case of a large number of projects.
Comment 1 Alexey Krivoborodov CLA 2008-05-20 08:36:36 EDT
In steps 2 and 3 MainProject is built or cleaned.
Comment 2 Alexey Krivoborodov CLA 2008-05-21 03:28:13 EDT
Changed severity to major: major loss of CDT build function.