[CMake] Eclipse generator - basic macros

Miguel A. Figueroa-Villanueva miguelf at ieee.org
Tue Jul 14 12:26:15 EDT 2009


On Tue, Jul 14, 2009 at 11:40 AM, Benjamin Schindler wrote:
> Miguel A. Figueroa-Villanueva wrote:
>> On Mon, Jul 13, 2009 at 10:31 AM, Benjamin Schindler wrote:
>>> I'm working on a project which builds both on linux and windows. I
>>> generated
>>> an eclipse project out of it which works basically fine but it's not able
>>> to
>>> recognize i.e. the __GNUC__ macro (and probably any other macro defined
>>> per
>>> default on gcc) are not recognized by eclipse. That means that by using a
>>> header like:
>>>
>>> #if defined(_MSC_VER) && (_MSC_VER >= 1300)
>>> #ifdef FLOW_DLL_EXPORT
>>> #define FLOW_DLL _declspec(dllexport)
>>> #else
>>> #define FLOW_DLL _declspec(dllimport)
>>> #endif
>>> #else
>>> #ifdef __GNUC__
>>> #define FLOW_DLL
>>> #endif
>>> #endif
>>>
>>> and then declaring a class like:
>>>
>>> class FLOW_DLL something { .... };
>>> will fool eclipse's parser. When I remove the #ifdef __GNUC__, it works.
>>> Is
>>> this an issue in the eclipse generator or in the eclipse parser?
>>>
[...]
>
> Well, you are right about the greyed out area which is in short what I ment
> (The project builds just fine). I would not mind this in any way, but the
> issue is that classes utilizing that FLOW_DLL macro will be marked with
> Syntax error (because that symbol is then not defined) and thus, code
> completion is not available at all for these classes hich is a big usability
> issue here

Yes, I'm well aware that this is a big usability problem... just
wanted to verify the source of the problem.

Ok, maybe you can work around this by adding a snippet such as:

if (UNIX) # or if (CMAKE_COMPILER_IS_GNUC)
  add_definitions(__GNUC__)
  # actually, I would use a different variable here and change the code above
endif

Then the variable should be added to the project files. Please let me
know if this works.

--Miguel


More information about the CMake mailing list