The following issue has been SUBMITTED. ====================================================================== http://public.kitware.com/Bug/view.php?id=15150 ====================================================================== Reported By: Martin Oberhuber Assigned To: ====================================================================== Project: CMake Issue ID: 15150 Category: CMake Reproducibility: always Severity: major Priority: normal Status: new ====================================================================== Date Submitted: 2014-09-11 05:29 EDT Last Modified: 2014-09-11 05:29 EDT ====================================================================== Summary: Eclipse generator produces very bad symbol browsing quality for plain C, due to __cplusplus being set unconditionally Description: When I import my plain C project generated with the "Eclipse CDT4 - Unix Makefiles" generator into Eclipse, I see very bad symbol quality:
Indexed 'myproject@linux64' (365 sources, 800 headers) in 24.2 sec: 81,605 declarations; 665,941 references; 54 unresolved inclusions; 3,708 syntax errors; 107,398 unresolved names (13%) Note the 13% unresolved names, which means that the calltree (referenced-by) will fail 13% of the time ! This is way too unreliable. Investigation showed that the main problem is cmake generating "__cplusplus=1" unconditionally into the Project Properties > C/C++ Include Paths. When deleting the incorrect __cplusplus setting I get almost perfect symbol quality: Indexed 'myproject@linux64' (365 sources, 800 headers) in 23.2 sec: 98,095 declarations; 785,956 references; 54 unresolved inclusions; 2,230 syntax errors; 4,732 unresolved names (0.53%) --> Note only 0.53% unresolved names now (in this case due to some Windows headers). Also note that a __cplusplus macro will be added automatically by Eclipse CDT when looking at any *.cpp / *.cxx / *.cc files. So that macro really should not be set hard-coded by the project generator ! Steps to Reproduce: cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ECLIPSE_VERSION=4.4 ../myproject make # Now import the generated project into Eclipse for C/C++ 4.4 Additional Information: Workaround: After importing the generated project, right-click > C/C++ Include Paths and manually delete the __cplusplus macro setting. ====================================================================== Issue History Date Modified Username Field Change ====================================================================== 2014-09-11 05:29 Martin OberhuberNew Issue ====================================================================== -- 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: http://public.kitware.com/mailman/listinfo/cmake-developers
