Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 365561

Summary: Upper case file extension CPP not included in build and not registrable
Product: [Tools] CDT Reporter: Lukas Felber <l.felber>
Component: cdt-build-managedAssignee: Project Inbox <cdt-build-managed-inbox>
Status: NEW --- QA Contact: Jonah Graham <jonah>
Severity: normal    
Priority: P3 CC: cdtdoug, mario.pierro, sergebeauchamp, wmitsuda
Version: 8.0   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Bug Depends on: 105022    
Bug Blocks:    

Description Lukas Felber CLA 2011-12-05 05:00:36 EST
Build Identifier: I20110613-1736

Upper case file extension CPP is e.g. used in the recently open-source Doom3 source code ( https://github.com/TTimo/doom3.gpl ).
CDT does not includes CPP files in its build. One could argue that, since CPP is not in the "Preferences->C/C++->File Types" list, this is ok. The real problem, however, is that one cannot add the CPP file extension there. Reason: "The Association between '*.CPP' and 'C++ Source File' already exits".

Obviously, since CPP files are not included in the built, this is not true.

Reproducible: Always

Steps to Reproduce:
1. Create empty c++ project
2. Create source file main.CPP
3. Hit the 'build' button

yields: g++: fatal error: no input files
Comment 1 Andrew Gvozdev CLA 2011-12-05 10:30:37 EST
*** Bug 214018 has been marked as a duplicate of this bug. ***
Comment 2 Andrew Gvozdev CLA 2011-12-05 10:35:09 EST
As reported, this is an issue with Eclipse Platform which does not handle case sensitive content types, i.e. bug 105022. But it is probably feasible to workaround that in managed build.
Comment 3 Serge Beauchamp CLA 2013-10-11 14:42:00 EDT
This bug is now fixed with the following change, including junit tests:

https://git.eclipse.org/r/17314

The change consists of making the managed builder gracefully handle input with extensions of different case than their corresponding input types extensions.

This way, the managed builder follows the case-insensitive behavior of the Platform content type feature, and the user can build files with .CPP extensions along with other files with .cpp extension in the same projects.

3rd party makefile generators might still contain bugs preventing this to work for them, but the fix supports both the internal builder and the external builder using the GnuMakefileGenerator.
Comment 4 Mario Pierro CLA 2015-09-11 09:16:43 EDT
This is still present in CDT 8.7.0.201506070905, running against Eclipse Mars  4.5.0.20150621-1200 running under Windows

Simply creating a new C++ project and adding a .CPP file to it will reproduce the issue using the : that file will not be built, either with the Internal builder nor the Gnu Makefile builder.
Comment 5 Mario Pierro CLA 2015-09-11 09:18:01 EDT
This is still present in CDT 8.7.0.201506070905, running against Eclipse Mars  4.5.0.20150621-1200 running under Windows

Simply creating a new C++ project and adding a .CPP file to it will reproduce the issue: that file will not be built, either with the Internal builder nor the Gnu Makefile builder.