jdolan / ObjectivelyMVC

Object oriented MVC framework for OpenGL, SDL2 and GNU C. Inspired by Apple's AppKit. Zlib license.
Other
29 stars 7 forks source link

Cygwin build fails #5

Closed tapir closed 8 years ago

tapir commented 8 years ago

I'm reopening this issue.

I have successfully built and installed objectively on cygwin with autotools.

But when I try to build mvc I get these errors. I have no idea what these are. Looks like syntax errors but can be something else as well.

As you mentioned before, getting these errors after successfully compiling objectively is strange but it still is the fact.

Any ideas?

cbas@TUR-TRI-L022 ~/Desktop/objectivelymvc
$ make -j8
make  all-recursive
make[1]: Entering directory '/cygdrive/c/Users/cbas/Desktop/objectivelymvc'
Making all in Assets
make[2]: Entering directory '/cygdrive/c/Users/cbas/Desktop/objectivelymvc/Assets'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/cygdrive/c/Users/cbas/Desktop/objectivelymvc/Assets'
Making all in Sources
make[2]: Entering directory '/cygdrive/c/Users/cbas/Desktop/objectivelymvc/Sources'
Making all in ObjectivelyMVC
make[3]: Entering directory '/cygdrive/c/Users/cbas/Desktop/objectivelymvc/Sources/ObjectivelyMVC'
  CC       libObjectivelyMVC_la-Button.lo
  CC       libObjectivelyMVC_la-Checkbox.lo
  CC       libObjectivelyMVC_la-CollectionItemView.lo
  CC       libObjectivelyMVC_la-CollectionView.lo
  CC       libObjectivelyMVC_la-Control.lo
  CC       libObjectivelyMVC_la-Font.lo
  CC       libObjectivelyMVC_la-ImageView.lo
  CC       libObjectivelyMVC_la-Input.lo
In file included from /usr/include/w32api/oleidl.h:7:0,
                 from /usr/include/w32api/ole2.h:38,
                 from /usr/include/w32api/wtypes.h:12,
                 from /usr/include/w32api/winscard.h:10,
                 from /usr/include/w32api/windows.h:97,
                 from /usr/include/w32api/GL/gl.h:13,
                 from /usr/include/SDL2/SDL_opengl.h:54,
                 from ../../Sources/ObjectivelyMVC/View.h:27,
                 from ../../Sources/ObjectivelyMVC/Text.h:26,
                 from ../../Sources/ObjectivelyMVC/Control.h:29,
                 from ../../Sources/ObjectivelyMVC/Button.h:26,
                 from Button.c:26:
/usr/include/Objectively/Data.h:63:17: error: expected identifier or ‘(’ before ‘struct’
  DataInterface *interface;
                 ^
/usr/include/Objectively/Dictionary.h:71:23: error: expected identifier or ‘(’ before ‘struct’
  DictionaryInterface *interface;
                       ^
../../Sources/ObjectivelyMVC/Renderer.h:61:21: error: expected identifier or ‘(’ before ‘struct’
  RendererInterface *interface;
                     ^
../../Sources/ObjectivelyMVC/View.h:254:17: error: expected identifier or ‘(’ before ‘struct’
  ViewInterface *interface;
                 ^
In file included from /usr/include/w32api/oleidl.h:7:0,
                 from /usr/include/w32api/ole2.h:38,
                 from /usr/include/w32api/wtypes.h:12,
                 from /usr/include/w32api/winscard.h:10,
                 from /usr/include/w32api/windows.h:97,
                 from /usr/include/w32api/GL/gl.h:13,
                 from /usr/include/SDL2/SDL_opengl.h:54,
                 from ../../Sources/ObjectivelyMVC/View.h:27,
                 from ../../Sources/ObjectivelyMVC/Text.h:26,
                 from ../../Sources/ObjectivelyMVC/Control.h:29,
                 from ../../Sources/ObjectivelyMVC/Checkbox.h:26,
                 from Checkbox.c:26:
/usr/include/Objectively/Data.h:63:17: error: expected identifier or ‘(’ before ‘struct’
  DataInterface *interface;
                 ^
/usr/include/Objectively/Dictionary.h:71:23: error: expected identifier or ‘(’ before ‘struct’
  DictionaryInterface *interface;
                       ^
../../Sources/ObjectivelyMVC/Renderer.h:61:21: error: expected identifier or ‘(’ before ‘struct’
  RendererInterface *interface;
                     ^
../../Sources/ObjectivelyMVC/View.h:254:17: error: expected identifier or ‘(’ before ‘struct’
  ViewInterface *interface;
                 ^
../../Sources/ObjectivelyMVC/Font.h:79:17: error: expected identifier or ‘(’ before ‘struct’
  FontInterface *interface;
                 ^
../../Sources/ObjectivelyMVC/Text.h:57:17: error: expected identifier or ‘(’ before ‘struct’
  TextInterface *interface;
                 ^
../../Sources/ObjectivelyMVC/Control.h:112:20: error: expected identifier or ‘(’ before ‘struct’
  ControlInterface *interface;
                    ^
../../Sources/ObjectivelyMVC/Button.h:60:19: error: expected identifier or ‘(’ before ‘struct’
  ButtonInterface *interface;
                   ^
Button.c: In function ‘dealloc’:
Button.c:41:2: error: expected identifier before ‘struct’
  super(Object, self, dealloc);
  ^
Button.c: In function ‘awakeWithDictionary’:
Button.c:51:2: error: expected identifier before ‘struct’
  super(View, self, awakeWithDictionary, dictionary);
  ^
Button.c:59:2: error: expected identifier before ‘struct’
  $(self, bind, dictionary, inlets);
  ^
Button.c: In function ‘init’:
Button.c:66:18: error: expected identifier before ‘struct’
  return (View *) $((Button *) self, initWithFrame, NULL, ControlStyleDefault);
                  ^
Button.c: In function ‘sizeThatFits’:
Button.c:74:18: error: expected identifier before ‘struct’
  SDL_Size size = super(View, self, sizeThatFits);
                  ^
Button.c: In function ‘captureEvent’:
Button.c:101:7: error: expected identifier before ‘struct’
   if ($((View *) self, didReceiveEvent, event)) {
       ^
Button.c:112:9: error: expected identifier before ‘struct’
  return super(Control, self, captureEvent, event);
         ^
Button.c: In function ‘initWithFrame’:
Button.c:124:20: error: expected identifier before ‘struct’
  self = (Button *) super(Control, self, initWithFrame, frame, style);
                    ^
Button.c:127:17: error: expected identifier before ‘struct’
   self->title = alloc(Text, initWithText, NULL, NULL);
                 ^
Button.c:130:3: error: expected identifier before ‘struct’
   $((View *) self, addSubview, (View *) self->title);
   ^
Button.c: In function ‘initialize’:
Button.c:155:30: error: expected identifier before ‘struct’
  ((ObjectInterface *) clazz->interface)->dealloc = dealloc;
                              ^
Button.c:157:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->awakeWithDictionary = awakeWithDictionary;
                            ^
Button.c:158:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->init = init;
                            ^
Button.c:159:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->sizeThatFits = sizeThatFits;
                            ^
Button.c:161:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->captureEvent = captureEvent;
                               ^
Button.c:163:30: error: expected identifier before ‘struct’
  ((ButtonInterface *) clazz->interface)->initWithFrame = initWithFrame;
                              ^
In file included from /usr/include/inttypes.h:21:0,
                 from /usr/include/SDL2/SDL_stdinc.h:66,
                 from /usr/include/SDL2/SDL_events.h:31,
                 from ../../Sources/ObjectivelyMVC/Action.h:26,
                 from ../../Sources/ObjectivelyMVC/Control.h:28,
                 from ../../Sources/ObjectivelyMVC/Button.h:26,
                 from Button.c:26:
Button.c: At top level:
Button.c:170:38: error: expected identifier before ‘struct’
  .interfaceOffset = offsetof(Button, interface),
                                      ^
../../Sources/ObjectivelyMVC/Font.h:79:17: error: expected identifier or ‘(’ before ‘struct’
  FontInterface *interface;
                 ^
../../Sources/ObjectivelyMVC/Text.h:57:17: error: expected identifier or ‘(’ before ‘struct’
  TextInterface *interface;
                 ^
In file included from /usr/include/w32api/oleidl.h:7:0,
                 from /usr/include/w32api/ole2.h:38,
                 from /usr/include/w32api/wtypes.h:12,
                 from /usr/include/w32api/winscard.h:10,
                 from /usr/include/w32api/windows.h:97,
                 from /usr/include/w32api/GL/gl.h:13,
                 from /usr/include/SDL2/SDL_opengl.h:54,
                 from ../../Sources/ObjectivelyMVC/View.h:27,
                 from ../../Sources/ObjectivelyMVC/Text.h:26,
                 from ../../Sources/ObjectivelyMVC/Control.h:29,
                 from ../../Sources/ObjectivelyMVC/Input.h:26,
                 from Input.c:26:
/usr/include/Objectively/Data.h:63:17: error: expected identifier or ‘(’ before ‘struct’
  DataInterface *interface;
                 ^
../../Sources/ObjectivelyMVC/Control.h:112:20: error: expected identifier or ‘(’ before ‘struct’
  ControlInterface *interface;
                    ^
../../Sources/ObjectivelyMVC/Image.h:57:18: error: expected identifier or ‘(’ before ‘struct’
  ImageInterface *interface;
                  ^
../../Sources/ObjectivelyMVC/ImageView.h:57:22: error: expected identifier or ‘(’ before ‘struct’
  ImageViewInterface *interface;
                      ^
../../Sources/ObjectivelyMVC/Checkbox.h:63:21: error: expected identifier or ‘(’ before ‘struct’
  CheckboxInterface *interface;
                     ^
/usr/include/Objectively/Dictionary.h:71:23: error: expected identifier or ‘(’ before ‘struct’
  DictionaryInterface *interface;
                       ^
Checkbox.c: In function ‘dealloc’:
Checkbox.c:98:2: error: expected identifier before ‘struct’
  super(Object, self, dealloc);
  ^
Checkbox.c: In function ‘awakeWithDictionary’:
Checkbox.c:108:2: error: expected identifier before ‘struct’
  super(View, self, awakeWithDictionary, dictionary);
  ^
Checkbox.c:116:2: error: expected identifier before ‘struct’
  $(self, bind, dictionary, inlets);
  ^
Checkbox.c: In function ‘init’:
Checkbox.c:123:18: error: expected identifier before ‘struct’
  return (View *) $((Checkbox *) self, initWithFrame, NULL, ControlStyleDefault);
                  ^
Checkbox.c: In function ‘render’:
Checkbox.c:131:2: error: expected identifier before ‘struct’
  super(View, self, render, renderer);
  ^
Checkbox.c: In function ‘captureEvent’:
Checkbox.c:153:7: error: expected identifier before ‘struct’
   if ($((View *) this->box, didReceiveEvent, event)) {
       ^
Checkbox.c:159:9: error: expected identifier before ‘struct’
  return super(Control, self, captureEvent, event);
         ^
Checkbox.c: In function ‘initWithFrame’:
Checkbox.c:171:22: error: expected identifier before ‘struct’
  self = (Checkbox *) super(Control, self, initWithFrame, frame, style);
                      ^
Checkbox.c:176:15: error: expected identifier before ‘struct’
   self->box = alloc(Control, initWithFrame, frame, style);
               ^
Checkbox.c:181:17: error: expected identifier before ‘struct’
   self->check = alloc(ImageView, initWithImage, _check);
                 ^
Checkbox.c:186:3: error: expected identifier before ‘struct’
   $((View *) self->box, addSubview, (View *) self->check);
   ^
Checkbox.c:187:3: error: expected identifier before ‘struct’
   $((View *) self, addSubview, (View *) self->box);
   ^
Checkbox.c: In function ‘initialize’:
Checkbox.c:214:30: error: expected identifier before ‘struct’
  ((ObjectInterface *) clazz->interface)->dealloc = dealloc;
                              ^
Checkbox.c:216:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->awakeWithDictionary = awakeWithDictionary;
                            ^
Checkbox.c:217:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->init = init;
                            ^
Checkbox.c:218:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->render = render;
                            ^
Checkbox.c:220:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->captureEvent = captureEvent;
                               ^
Checkbox.c:222:32: error: expected identifier before ‘struct’
  ((CheckboxInterface *) clazz->interface)->initWithFrame = initWithFrame;
                                ^
Checkbox.c:224:20: error: expected identifier before ‘struct’
  Data *checkData = alloc(Data, initWithBytes, _checkData, lengthof(_checkData));
                    ^
Checkbox.c:226:11: error: expected identifier before ‘struct’
  _check = alloc(Image, initWithData, checkData);
           ^
In file included from /usr/include/inttypes.h:21:0,
                 from /usr/include/SDL2/SDL_stdinc.h:66,
                 from /usr/include/SDL2/SDL_events.h:31,
                 from ../../Sources/ObjectivelyMVC/Action.h:26,
                 from ../../Sources/ObjectivelyMVC/Control.h:28,
                 from ../../Sources/ObjectivelyMVC/Checkbox.h:26,
                 from Checkbox.c:26:
Checkbox.c: At top level:
Checkbox.c:242:40: error: expected identifier before ‘struct’
  .interfaceOffset = offsetof(Checkbox, interface),
                                        ^
../../Sources/ObjectivelyMVC/Renderer.h:61:21: error: expected identifier or ‘(’ before ‘struct’
  RendererInterface *interface;
                     ^
../../Sources/ObjectivelyMVC/View.h:254:17: error: expected identifier or ‘(’ before ‘struct’
  ViewInterface *interface;
                 ^
In file included from /usr/include/w32api/oleidl.h:7:0,
                 from /usr/include/w32api/ole2.h:38,
                 from /usr/include/w32api/wtypes.h:12,
                 from /usr/include/w32api/winscard.h:10,
                 from /usr/include/w32api/windows.h:97,
                 from /usr/include/w32api/GL/gl.h:13,
                 from /usr/include/SDL2/SDL_opengl.h:54,
                 from ../../Sources/ObjectivelyMVC/View.h:27,
                 from ../../Sources/ObjectivelyMVC/Text.h:26,
                 from ../../Sources/ObjectivelyMVC/Control.h:29,
                 from Control.c:26:
/usr/include/Objectively/Data.h:63:17: error: expected identifier or ‘(’ before ‘struct’
  DataInterface *interface;
                 ^
In file included from /usr/include/w32api/oleidl.h:7:0,
                 from /usr/include/w32api/ole2.h:38,
                 from /usr/include/w32api/wtypes.h:12,
                 from /usr/include/w32api/winscard.h:10,
                 from /usr/include/w32api/windows.h:97,
                 from /usr/include/w32api/GL/gl.h:13,
                 from /usr/include/SDL2/SDL_opengl.h:54,
                 from ../../Sources/ObjectivelyMVC/View.h:27,
                 from ../../Sources/ObjectivelyMVC/Text.h:26,
                 from ../../Sources/ObjectivelyMVC/Control.h:29,
                 from ../../Sources/ObjectivelyMVC/CollectionView.h:28,
                 from CollectionView.c:26:
/usr/include/Objectively/Data.h:63:17: error: expected identifier or ‘(’ before ‘struct’
  DataInterface *interface;
                 ^
/usr/include/Objectively/Dictionary.h:71:23: error: expected identifier or ‘(’ before ‘struct’
  DictionaryInterface *interface;
                       ^
../../Sources/ObjectivelyMVC/Renderer.h:61:21: error: expected identifier or ‘(’ before ‘struct’
  RendererInterface *interface;
                     ^
../../Sources/ObjectivelyMVC/View.h:254:17: error: expected identifier or ‘(’ before ‘struct’
  ViewInterface *interface;
                 ^
/usr/include/Objectively/Dictionary.h:71:23: error: expected identifier or ‘(’ before ‘struct’
  DictionaryInterface *interface;
                       ^
../../Sources/ObjectivelyMVC/Renderer.h:61:21: error: expected identifier or ‘(’ before ‘struct’
  RendererInterface *interface;
                     ^
../../Sources/ObjectivelyMVC/View.h:254:17: error: expected identifier or ‘(’ before ‘struct’
  ViewInterface *interface;
                 ^
In file included from /usr/include/w32api/oleidl.h:7:0,
                 from /usr/include/w32api/ole2.h:38,
                 from /usr/include/w32api/wtypes.h:12,
                 from /usr/include/w32api/winscard.h:10,
                 from /usr/include/w32api/windows.h:97,
                 from /usr/include/w32api/GL/gl.h:13,
                 from /usr/include/SDL2/SDL_opengl.h:54,
                 from ../../Sources/ObjectivelyMVC/View.h:27,
                 from ../../Sources/ObjectivelyMVC/ImageView.h:27,
                 from ../../Sources/ObjectivelyMVC/CollectionItemView.h:26,
                 from CollectionItemView.c:26:
/usr/include/Objectively/Array.h:75:18: error: expected identifier or ‘(’ before ‘struct’
  ArrayInterface *interface;
                  ^
/usr/include/Objectively/Dictionary.h:71:23: error: expected identifier or ‘(’ before ‘struct’
  DictionaryInterface *interface;
                       ^
/usr/include/Objectively/MutableArray.h:57:25: error: expected identifier or ‘(’ before ‘struct’
  MutableArrayInterface *interface;
                         ^
../../Sources/ObjectivelyMVC/Renderer.h:61:21: error: expected identifier or ‘(’ before ‘struct’
  RendererInterface *interface;
                     ^
../../Sources/ObjectivelyMVC/View.h:254:17: error: expected identifier or ‘(’ before ‘struct’
  ViewInterface *interface;
                 ^
../../Sources/ObjectivelyMVC/ImageView.h:57:22: error: expected identifier or ‘(’ before ‘struct’
  ImageViewInterface *interface;
                      ^
../../Sources/ObjectivelyMVC/Font.h:79:17: error: expected identifier or ‘(’ before ‘struct’
  FontInterface *interface;
                 ^
../../Sources/ObjectivelyMVC/Text.h:57:17: error: expected identifier or ‘(’ before ‘struct’
  TextInterface *interface;
                 ^
../../Sources/ObjectivelyMVC/Control.h:112:20: error: expected identifier or ‘(’ before ‘struct’
  ControlInterface *interface;
                    ^
../../Sources/ObjectivelyMVC/Label.h:56:18: error: expected identifier or ‘(’ before ‘struct’
  LabelInterface *interface;
                  ^
../../Sources/ObjectivelyMVC/StackView.h:87:22: error: expected identifier or ‘(’ before ‘struct’
  StackViewInterface *interface;
                      ^
../../Sources/ObjectivelyMVC/Input.h:77:18: error: expected identifier or ‘(’ before ‘struct’
  InputInterface *interface;
                  ^
Input.c: In function ‘dealloc’:
Input.c:49:2: error: expected identifier before ‘struct’
  super(Object, self, dealloc);
  ^
Input.c: In function ‘awakeWithDictionary’:
Input.c:59:2: error: expected identifier before ‘struct’
  super(View, self, awakeWithDictionary, dictionary);
  ^
Input.c:69:2: error: expected identifier before ‘struct’
  $(self, bind, dictionary, inlets);
  ^
Input.c:71:2: error: expected identifier before ‘struct’
  $(this, setOrientation, this->orientation);
  ^
Input.c: In function ‘init’:
Input.c:78:18: error: expected identifier before ‘struct’
  return (View *) $((Input *) self, initWithFrame, NULL);
                  ^
Input.c: In function ‘initWithFrame’:
Input.c:90:19: error: expected identifier before ‘struct’
  self = (Input *) super(StackView, self, initWithFrame, frame);
                   ^
Input.c:93:19: error: expected identifier before ‘struct’
   self->control = alloc(Control, initWithFrame, NULL, ControlStyleDefault);
                   ^
Input.c:96:17: error: expected identifier before ‘struct’
   self->label = alloc(Label, initWithText, NULL, NULL);
                 ^
Input.c:99:3: error: expected identifier before ‘struct’
   $((View *) self, addSubview, (View *) self->control);
   ^
Input.c:100:3: error: expected identifier before ‘struct’
   $((View *) self, addSubview, (View *) self->label);
   ^
Input.c:102:3: error: expected identifier before ‘struct’
   $(self, setOrientation, InputOrientationLeft);
   ^
Input.c: In function ‘setControl’:
Input.c:119:2: error: expected identifier before ‘struct’
  $((View *) self, removeSubview, (View *) self->control);
  ^
Input.c:123:2: error: expected identifier before ‘struct’
  $((View *) self, addSubview, (View *) self->control);
  ^
Input.c:125:2: error: expected identifier before ‘struct’
  $(self, setOrientation, self->orientation);
  ^
Input.c: In function ‘setLabel’:
Input.c:137:2: error: expected identifier before ‘struct’
  $((View *) self, removeSubview, (View *) self->label);
  ^
Input.c:141:2: error: expected identifier before ‘struct’
  $((View *) self, addSubview, (View *) self->label);
  ^
Input.c:143:2: error: expected identifier before ‘struct’
  $(self, setOrientation, self->orientation);
  ^
Input.c: In function ‘setOrientation’:
Input.c:155:2: error: expected identifier before ‘struct’
  $((View *) self->control, removeFromSuperview);
  ^
Input.c:156:2: error: expected identifier before ‘struct’
  $((View *) self->label, removeFromSuperview);
  ^
Input.c:161:4: error: expected identifier before ‘struct’
    $((View *) self, addSubview, (View *) self->label);
    ^
Input.c:162:4: error: expected identifier before ‘struct’
    $((View *) self, addSubview, (View *) self->control);
    ^
Input.c:167:4: error: expected identifier before ‘struct’
    $((View *) self, addSubview, (View *) self->control);
    ^
Input.c:168:4: error: expected identifier before ‘struct’
    $((View *) self, addSubview, (View *) self->label);
    ^
Input.c: In function ‘initialize’:
Input.c:201:30: error: expected identifier before ‘struct’
  ((ObjectInterface *) clazz->interface)->dealloc = dealloc;
                              ^
Input.c:203:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->awakeWithDictionary = awakeWithDictionary;
                            ^
Input.c:204:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->init = init;
                            ^
Input.c:206:29: error: expected identifier before ‘struct’
  ((InputInterface *) clazz->interface)->initWithFrame = initWithFrame;
                             ^
Input.c:207:29: error: expected identifier before ‘struct’
  ((InputInterface *) clazz->interface)->setControl = setControl;
                             ^
Input.c:208:29: error: expected identifier before ‘struct’
  ((InputInterface *) clazz->interface)->setLabel = setLabel;
                             ^
Input.c:209:29: error: expected identifier before ‘struct’
  ((InputInterface *) clazz->interface)->setOrientation = setOrientation;
                             ^
In file included from /usr/include/inttypes.h:21:0,
                 from /usr/include/SDL2/SDL_stdinc.h:66,
                 from /usr/include/SDL2/SDL_events.h:31,
                 from ../../Sources/ObjectivelyMVC/Action.h:26,
                 from ../../Sources/ObjectivelyMVC/Control.h:28,
                 from ../../Sources/ObjectivelyMVC/Input.h:26,
                 from Input.c:26:
Input.c: At top level:
Input.c:216:37: error: expected identifier before ‘struct’
  .interfaceOffset = offsetof(Input, interface),
                                     ^
../../Sources/ObjectivelyMVC/Font.h:79:17: error: expected identifier or ‘(’ before ‘struct’
  FontInterface *interface;
                 ^
../../Sources/ObjectivelyMVC/Text.h:57:17: error: expected identifier or ‘(’ before ‘struct’
  TextInterface *interface;
                 ^
../../Sources/ObjectivelyMVC/Control.h:112:20: error: expected identifier or ‘(’ before ‘struct’
  ControlInterface *interface;
                    ^
In file included from /usr/include/w32api/oleidl.h:7:0,
                 from /usr/include/w32api/ole2.h:38,
                 from /usr/include/w32api/wtypes.h:12,
                 from /usr/include/w32api/winscard.h:10,
                 from /usr/include/w32api/windows.h:97,
                 from /usr/include/w32api/GL/gl.h:13,
                 from /usr/include/SDL2/SDL_opengl.h:54,
                 from ../../Sources/ObjectivelyMVC/View.h:27,
                 from ../../Sources/ObjectivelyMVC/ImageView.h:27,
                 from ImageView.c:26:
/usr/include/Objectively/Array.h:75:18: error: expected identifier or ‘(’ before ‘struct’
  ArrayInterface *interface;
                  ^
/usr/include/Objectively/Dictionary.h:71:23: error: expected identifier or ‘(’ before ‘struct’
  DictionaryInterface *interface;
                       ^
Control.c: In function ‘dealloc’:
Control.c:65:2: error: expected identifier before ‘struct’
  super(Object, self, dealloc);
  ^
Control.c: In function ‘awakeWithDictionary’:
Control.c:75:2: error: expected identifier before ‘struct’
  super(View, self, awakeWithDictionary, dictionary);
  ^
Control.c:84:2: error: expected identifier before ‘struct’
  $(self, bind, dictionary, inlets);
  ^
Control.c: In function ‘init’:
Control.c:91:18: error: expected identifier before ‘struct’
  return (View *) $((Control *) self, initWithFrame, NULL, ControlStyleDefault);
                  ^
Control.c: In function ‘render’:
Control.c:99:2: error: expected identifier before ‘struct’
  super(View, self, render, renderer);
  ^
Control.c:103:25: error: expected identifier before ‘struct’
  const SDL_Rect frame = $(self, renderFrame);
                         ^
Control.c:120:3: error: expected identifier before ‘struct’
   $(renderer, drawLines, points, lengthof(points));
   ^
Control.c:133:3: error: expected identifier before ‘struct’
   $(renderer, drawLines, points, lengthof(points));
   ^
Control.c:150:3: error: expected identifier before ‘struct’
   $(renderer, drawLines, points, lengthof(points));
   ^
Control.c:163:3: error: expected identifier before ‘struct’
   $(renderer, drawLines, points, lengthof(points));
   ^
Control.c:170:3: error: expected identifier before ‘struct’
   $(renderer, drawRect, &frame);
   ^
Control.c: In function ‘respondToEvent’:
Control.c:187:7: error: expected identifier before ‘struct’
   if ($(this, captureEvent, event)) {
       ^
Control.c:190:21: error: expected identifier before ‘struct’
    Action *action = $(this, actionForEvent, event);
                     ^
Control.c:198:3: error: expected identifier before ‘struct’
   $(this, stateDidChange);
   ^
Control.c:201:2: error: expected identifier before ‘struct’
  super(View, self, respondToEvent, event);
  ^
Control.c: In function ‘actionForEvent’:
Control.c:216:31: error: expected identifier before ‘struct’
   Action *action = (Action *) $(actions, objectAtIndex, i);
                               ^
/usr/include/Objectively/MutableArray.h:57:25: error: expected identifier or ‘(’ before ‘struct’
  MutableArrayInterface *interface;
                         ^
Control.c: In function ‘addActionForEventType’:
Control.c:232:19: error: expected identifier before ‘struct’
  Action *action = alloc(Action, initWithEventType, eventType, function, sender, data);
                   ^
Control.c:234:2: error: expected identifier before ‘struct’
  $(self->actions, addObject, action);
  ^
Control.c: In function ‘initWithFrame’:
Control.c:282:21: error: expected identifier before ‘struct’
  self = (Control *) super(View, self, initWithFrame, frame);
                     ^
Control.c:285:19: error: expected identifier before ‘struct’
   self->actions = $$(MutableArray, array);
                   ^
Control.c: In function ‘stateDidChange’:
Control.c:322:3: error: expected identifier before ‘struct’
   $((View *) self, becomeFirstResponder);
   ^
Control.c:324:3: error: expected identifier before ‘struct’
   $((View *) self, resignFirstResponder);
   ^
Control.c: In function ‘initialize’:
Control.c:335:30: error: expected identifier before ‘struct’
  ((ObjectInterface *) clazz->interface)->dealloc = dealloc;
                              ^
Control.c:337:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->awakeWithDictionary = awakeWithDictionary;
                            ^
../../Sources/ObjectivelyMVC/Font.h:79:17: error: expected identifier or ‘(’ before ‘struct’
  FontInterface *interface;
                 ^
Control.c:338:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->init = init;
                            ^
Control.c:339:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->render = render;
                            ^
Control.c:340:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->respondToEvent = respondToEvent;
                            ^
Control.c:342:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->actionForEvent = actionForEvent;
                               ^
Control.c:343:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->addActionForEventType = addActionForEventType;
                               ^
Control.c:344:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->captureEvent = captureEvent;
                               ^
Control.c:345:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->enabled = enabled;
                               ^
Control.c:346:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->focused = focused;
                               ^
Control.c:347:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->highlighted = highlighted;
                               ^
Control.c:348:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->initWithFrame = initWithFrame;
                               ^
Control.c:349:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->selected = selected;
                               ^
Control.c:350:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->stateDidChange = stateDidChange;
                               ^
../../Sources/ObjectivelyMVC/Text.h:57:17: error: expected identifier or ‘(’ before ‘struct’
  TextInterface *interface;
                 ^
In file included from /usr/include/inttypes.h:21:0,
                 from /usr/include/SDL2/SDL_stdinc.h:66,
                 from /usr/include/SDL2/SDL_events.h:31,
                 from ../../Sources/ObjectivelyMVC/Action.h:26,
                 from ../../Sources/ObjectivelyMVC/Control.h:28,
                 from Control.c:26:
Control.c: At top level:
Control.c:357:39: error: expected identifier before ‘struct’
  .interfaceOffset = offsetof(Control, interface),
                                       ^
../../Sources/ObjectivelyMVC/Control.h:112:20: error: expected identifier or ‘(’ before ‘struct’
  ControlInterface *interface;
                    ^
../../Sources/ObjectivelyMVC/Image.h:57:18: error: expected identifier or ‘(’ before ‘struct’
  ImageInterface *interface;
                  ^
../../Sources/ObjectivelyMVC/ImageView.h:57:22: error: expected identifier or ‘(’ before ‘struct’
  ImageViewInterface *interface;
                      ^
../../Sources/ObjectivelyMVC/CollectionItemView.h:60:31: error: expected identifier or ‘(’ before ‘struct’
  CollectionItemViewInterface *interface;
                               ^
../../Sources/ObjectivelyMVC/Renderer.h:61:21: error: expected identifier or ‘(’ before ‘struct’
  RendererInterface *interface;
                     ^
../../Sources/ObjectivelyMVC/ScrollView.h:73:23: error: expected identifier or ‘(’ before ‘struct’
  ScrollViewInterface *interface;
                       ^
../../Sources/ObjectivelyMVC/CollectionView.h:127:27: error: expected identifier or ‘(’ before ‘struct’
  CollectionViewInterface *interface;
                           ^
../../Sources/ObjectivelyMVC/View.h:254:17: error: expected identifier or ‘(’ before ‘struct’
  ViewInterface *interface;
                 ^
CollectionView.c: In function ‘dealloc’:
CollectionView.c:48:2: error: expected identifier before ‘struct’
  super(Object, self, dealloc);
  ^
CollectionView.c: In function ‘awakeWithDictionary’:
CollectionView.c:58:2: error: expected identifier before ‘struct’
  super(View, self, awakeWithDictionary, dictionary);
  ^
CollectionView.c:68:2: error: expected identifier before ‘struct’
  $(self, bind, dictionary, inlets);
  ^
../../Sources/ObjectivelyMVC/ImageView.h:57:22: error: expected identifier or ‘(’ before ‘struct’
  ImageViewInterface *interface;
                      ^
CollectionView.c: In function ‘init’:
CollectionView.c:75:18: error: expected identifier before ‘struct’
  return (View *) $((CollectionView *) self, initWithFrame, NULL, ControlStyleDefault);
                  ^
CollectionView.c: In function ‘layoutSubviews’:
CollectionView.c:85:26: error: expected identifier before ‘struct’
  const SDL_Rect bounds = $(self, bounds);
                          ^
CollectionView.c:92:53: error: expected identifier before ‘struct’
   CollectionItemView *item = (CollectionItemView *) $(items, objectAtIndex, i);
                                                     ^
CollectionView.c:117:2: error: expected identifier before ‘struct’
  super(View, self, layoutSubviews);
  ^
ImageView.c: In function ‘dealloc’:
CollectionView.c: In function ‘captureEvent’:
CollectionView.c:131:7: error: expected identifier before ‘struct’
   if ($((Control *) this->scrollView, highlighted) == false) {
       ^
CollectionView.c:132:8: error: expected identifier before ‘struct’
    if ($((View *) this->contentView, didReceiveEvent, event)) {
        ^
CollectionView.c:139:28: error: expected identifier before ‘struct’
     IndexPath *indexPath = $(this, indexPathForItemAtPoint, &point);
                            ^
ImageView.c:59:2: error: expected identifier before ‘struct’
  super(Object, self, dealloc);
  ^
CollectionView.c:141:38: error: expected identifier before ‘struct’
     const CollectionItemView *item = $(this, itemAtIndexPath, indexPath);
                                      ^
CollectionView.c:149:9: error: expected identifier before ‘struct’
         $(this, deselectAll);
         ^
ImageView.c: In function ‘awakeWithDictionary’:
CollectionView.c:150:9: error: expected identifier before ‘struct’
         $(this, selectItemAtIndexPath, indexPath);
         ^
ImageView.c:69:2: error: expected identifier before ‘struct’
  super(View, self, awakeWithDictionary, dictionary);
  ^
CollectionView.c:156:10: error: expected identifier before ‘struct’
          $(this, deselectItemAtIndexPath, indexPath);
          ^
CollectionView.c:158:10: error: expected identifier before ‘struct’
          $(this, selectItemAtIndexPath, indexPath);
          ^
CollectionView.c:161:9: error: expected identifier before ‘struct’
         $(this, deselectAll);
         ^
CollectionView.c:162:9: error: expected identifier before ‘struct’
         $(this, selectItemAtIndexPath, indexPath);
         ^
ImageView.c:80:2: error: expected identifier before ‘struct’
  $(self, bind, dictionary, inlets);
  ^
ImageView.c: In function ‘init’:
ImageView.c:87:18: error: expected identifier before ‘struct’
  return (View *) $((ImageView *) self, initWithImage, NULL);
                  ^
CollectionView.c:168:36: error: expected identifier before ‘struct’
       Array *selectionIndexPaths = $(this, selectionIndexPaths);
                                    ^
ImageView.c: In function ‘render’:
ImageView.c:95:2: error: expected identifier before ‘struct’
  super(View, self, render, renderer);
  ^
CollectionView.c:182:9: error: expected identifier before ‘struct’
  return super(Control, self, captureEvent, event);
         ^
ImageView.c:101:20: error: expected identifier before ‘struct’
    this->texture = $(renderer, createTexture, this->image->surface);
                    ^
CollectionView.c: In function ‘deselectAll_enumerate’:
CollectionView.c:191:2: error: expected identifier before ‘struct’
  $((CollectionItemView *) obj, setSelected, false); return false;
  ^
CollectionView.c: In function ‘deselectAll’:
CollectionView.c:200:2: error: expected identifier before ‘struct’
  $((Array *) self->items, enumerateObjects, deselectAll_enumerate, NULL);
  ^
CollectionView.c: In function ‘deselectItemAtIndexPath’:
ImageView.c:108:26: error: expected identifier before ‘struct’
   const SDL_Rect frame = $(self, renderFrame);
                          ^
CollectionView.c:211:30: error: expected identifier before ‘struct’
   CollectionItemView *item = $(self, itemAtIndexPath, indexPath);
                              ^
ImageView.c:109:3: error: expected identifier before ‘struct’
   $(renderer, drawTexture, this->texture, &frame);
   ^
CollectionView.c:213:4: error: expected identifier before ‘struct’
    $(item, setSelected, false);
    ^
CollectionView.c: In function ‘deselectItemsAtIndexPaths_enumerate’:
ImageView.c: In function ‘renderDeviceDidReset’:
CollectionView.c:222:2: error: expected identifier before ‘struct’
  $((CollectionItemView *) obj, setSelected, false); return false;
  ^
ImageView.c:119:2: error: expected identifier before ‘struct’
  super(View, self, renderDeviceDidReset);
  ^
CollectionView.c: In function ‘deselectItemsAtIndexPaths’:
CollectionView.c:233:3: error: expected identifier before ‘struct’
   $(indexPaths, enumerateObjects, deselectItemsAtIndexPaths_enumerate, self);
   ^
ImageView.c: In function ‘initWithFrame’:
ImageView.c:135:23: error: expected identifier before ‘struct’
  self = (ImageView *) super(View, self, initWithFrame, frame);
                       ^
CollectionView.c: In function ‘indexPathForItemAtPoint’:
CollectionView.c:246:26: error: expected identifier before ‘struct’
   const SDL_Rect frame = $(self->contentView, renderFrame);
                          ^
ImageView.c: In function ‘initWithImage’:
CollectionView.c:271:11: error: expected identifier before ‘struct’
    return alloc(IndexPath, initWithIndex, index);
           ^
ImageView.c:155:23: error: expected identifier before ‘struct’
  self = (ImageView *) $(self, initWithFrame, NULL);
                       ^
ImageView.c:158:3: error: expected identifier before ‘struct’
   $(self, setImage, image);
   ^
CollectionView.c: In function ‘indexPathForItem’:
CollectionView.c:285:20: error: expected identifier before ‘struct’
  const int index = $((Array *) self->items, indexOfObject, (ident) item);
                    ^
CollectionView.c:287:10: error: expected identifier before ‘struct’
   return alloc(IndexPath, initWithIndex, index);
          ^
ImageView.c: In function ‘setImageWithSurface’:
ImageView.c:194:2: error: expected identifier before ‘struct’
  $(self, setImage, NULL);
  ^
CollectionView.c: In function ‘initWithFrame’:
CollectionView.c:300:28: error: expected identifier before ‘struct’
  self = (CollectionView *) super(Control, self, initWithFrame, frame, style);
                            ^
ImageView.c:197:18: error: expected identifier before ‘struct’
   Image *image = alloc(Image, initWithSurface, surface);
                  ^
CollectionView.c:303:17: error: expected identifier before ‘struct’
   self->items = $$(MutableArray, array);
                 ^
ImageView.c:200:3: error: expected identifier before ‘struct’
   $(self, setImage, image);
   ^
CollectionView.c:305:23: error: expected identifier before ‘struct’
   self->contentView = alloc(View, initWithFrame, NULL);
                       ^
ImageView.c: In function ‘initialize’:
ImageView.c:213:30: error: expected identifier before ‘struct’
  ((ObjectInterface *) clazz->interface)->dealloc = dealloc;
                              ^
ImageView.c:215:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->awakeWithDictionary = awakeWithDictionary;
                            ^
ImageView.c:216:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->init = init;
                            ^
ImageView.c:217:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->render = render;
                            ^
CollectionView.c:310:22: error: expected identifier before ‘struct’
   self->scrollView = alloc(ScrollView, initWithFrame, NULL, style);
                      ^
ImageView.c:218:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->renderDeviceDidReset = renderDeviceDidReset;
                            ^
ImageView.c:220:33: error: expected identifier before ‘struct’
  ((ImageViewInterface *) clazz->interface)->initWithFrame = initWithFrame;
                                 ^
ImageView.c:221:33: error: expected identifier before ‘struct’
  ((ImageViewInterface *) clazz->interface)->initWithImage = initWithImage;
                                 ^
ImageView.c:222:33: error: expected identifier before ‘struct’
  ((ImageViewInterface *) clazz->interface)->setImage = setImage;
                                 ^
CollectionView.c:315:3: error: expected identifier before ‘struct’
   $(self->scrollView, setContentView, self->contentView);
   ^
ImageView.c:223:33: error: expected identifier before ‘struct’
  ((ImageViewInterface *) clazz->interface)->setImageWithSurface = setImageWithSurface;
                                 ^
CollectionView.c:317:3: error: expected identifier before ‘struct’
   $((View *) self, addSubview, (View *) self->scrollView);
   ^
In file included from /usr/include/inttypes.h:21:0,
                 from /usr/include/SDL2/SDL_stdinc.h:66,
                 from /usr/include/SDL2/SDL_video.h:31,
                 from ../../Sources/ObjectivelyMVC/Image.h:27,
                 from ../../Sources/ObjectivelyMVC/ImageView.h:26,
                 from ImageView.c:26:
ImageView.c: At top level:
ImageView.c:230:41: error: expected identifier before ‘struct’
  .interfaceOffset = offsetof(ImageView, interface),
                                         ^
CollectionView.c: In function ‘itemAtIndexPath’:
CollectionView.c:354:21: error: expected identifier before ‘struct’
   const int index = $(indexPath, indexAtPosition, 0);
                     ^
CollectionView.c:357:11: error: expected identifier before ‘struct’
    return $(items, objectAtIndex, index);
           ^
CollectionView.c: In function ‘reloadData_removeItems’:
CollectionView.c:368:2: error: expected identifier before ‘struct’
  $((View *) data, removeSubview, (View *) obj); return false;
  ^
CollectionView.c: In function ‘reloadData’:
CollectionView.c:381:2: error: expected identifier before ‘struct’
  $((Array *) self->items, enumerateObjects, reloadData_removeItems, self->contentView);
  ^
CollectionView.c:382:2: error: expected identifier before ‘struct’
  $(self->items, removeAllObjects);
  ^
CollectionView.c:387:26: error: expected identifier before ‘struct’
   IndexPath *indexPath = alloc(IndexPath, initWithIndex, i);
                          ^
CollectionView.c:392:3: error: expected identifier before ‘struct’
   $(self->items, addObject, item);
   ^
CollectionView.c:393:3: error: expected identifier before ‘struct’
   $(self->contentView, addSubview, (View *) item);
   ^
CollectionView.c: In function ‘selectAll_enumerate’:
CollectionView.c:406:2: error: expected identifier before ‘struct’
  $((CollectionItemView *) obj, setSelected, true); return false;
  ^
CollectionView.c: In function ‘selectAll’:
CollectionView.c:415:2: error: expected identifier before ‘struct’
  $((Array *) self->items, enumerateObjects, selectAll_enumerate, NULL);
  ^
CollectionView.c: In function ‘selectionIndexPaths’:
CollectionView.c:425:24: error: expected identifier before ‘struct’
  MutableArray *array = $$(MutableArray, array);
                        ^
../../Sources/ObjectivelyMVC/Font.h:79:17: error: expected identifier or ‘(’ before ‘struct’
  FontInterface *interface;
                 ^
CollectionView.c:430:36: error: expected identifier before ‘struct’
   const CollectionItemView *item = $(items, objectAtIndex, i);
                                    ^
CollectionView.c:433:27: error: expected identifier before ‘struct’
    IndexPath *indexPath = $(self, indexPathForItem, item);
                           ^
CollectionView.c:434:4: error: expected identifier before ‘struct’
    $(array, addObject, indexPath);
    ^
CollectionView.c: In function ‘selectItemAtIndexPath’:
CollectionView.c:451:30: error: expected identifier before ‘struct’
   CollectionItemView *item = $(self, itemAtIndexPath, indexPath);
                              ^
CollectionView.c:453:4: error: expected identifier before ‘struct’
    $(item, setSelected, true);
    ^
CollectionView.c: In function ‘selectItemsAtIndexPaths_enumerate’:
CollectionView.c:462:2: error: expected identifier before ‘struct’
  $((CollectionView *) data, selectItemAtIndexPath, (IndexPath *) obj); return false;
  ^
CollectionView.c: In function ‘selectItemsAtIndexPaths’:
CollectionView.c:473:3: error: expected identifier before ‘struct’
   $(indexPaths, enumerateObjects, selectItemsAtIndexPaths_enumerate, self);
   ^
CollectionView.c: In function ‘initialize’:
CollectionView.c:484:30: error: expected identifier before ‘struct’
  ((ObjectInterface *) clazz->interface)->dealloc = dealloc;
                              ^
../../Sources/ObjectivelyMVC/Text.h:57:17: error: expected identifier or ‘(’ before ‘struct’
  TextInterface *interface;
                 ^
CollectionView.c:486:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->awakeWithDictionary = awakeWithDictionary;
                            ^
CollectionView.c:487:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->init = init;
                            ^
CollectionView.c:488:28: error: expected identifier before ‘struct’
  ((ViewInterface *) clazz->interface)->layoutSubviews = layoutSubviews;
                            ^
CollectionView.c:490:31: error: expected identifier before ‘struct’
  ((ControlInterface *) clazz->interface)->captureEvent = captureEvent;
                               ^
CollectionView.c:492:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->deselectAll = deselectAll;
                                      ^
CollectionView.c:493:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->deselectItemAtIndexPath = deselectItemAtIndexPath;
                                      ^
CollectionView.c:494:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->deselectItemsAtIndexPaths = deselectItemsAtIndexPaths;
                                      ^
CollectionView.c:495:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->indexPathForItem = indexPathForItem;
                                      ^
CollectionView.c:496:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->indexPathForItemAtPoint = indexPathForItemAtPoint;
                                      ^
CollectionView.c:497:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->initWithFrame = initWithFrame;
                                      ^
CollectionView.c:498:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->itemAtIndexPath = itemAtIndexPath;
                                      ^
CollectionView.c:499:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->reloadData = reloadData;
                                      ^
CollectionView.c:500:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->selectAll = selectAll;
                                      ^
CollectionView.c:501:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->selectionIndexPaths = selectionIndexPaths;
                                      ^
CollectionView.c:502:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->selectItemAtIndexPath = selectItemAtIndexPath;
                                      ^
CollectionView.c:503:38: error: expected identifier before ‘struct’
  ((CollectionViewInterface *) clazz->interface)->selectItemsAtIndexPaths = selectItemsAtIndexPaths;
                                      ^
In file included from /usr/include/inttypes.h:21:0,
                 from /usr/include/SDL2/SDL_stdinc.h:66,
                 from /usr/include/SDL2/SDL_events.h:31,
                 from ../../Sources/ObjectivelyMVC/Action.h:26,
                 from ../../Sources/ObjectivelyMVC/Control.h:28,
                 from ../../Sources/ObjectivelyMVC/CollectionView.h:28,
                 from CollectionView.c:26:
CollectionView.c: At top level:
CollectionView.c:510:46: error: expected identifier before ‘struct’
  .interfaceOffset = offsetof(CollectionView, interface),
                                              ^
../../Sources/ObjectivelyMVC/CollectionItemView.h:60:31: error: expected identifier or ‘(’ before ‘struct’
  CollectionItemViewInterface *interface;
                               ^
CollectionItemView.c: In function ‘dealloc’:
CollectionItemView.c:42:2: error: expected identifier before ‘struct’
  super(Object, self, dealloc);
  ^
CollectionItemView.c: In function ‘initWithFrame’:
CollectionItemView.c:54:32: error: expected identifier before ‘struct’
  self = (CollectionItemView *) super(View, self, initWithFrame, frame);
                                ^
CollectionItemView.c:56:21: error: expected identifier before ‘struct’
   self->imageView = alloc(ImageView, initWithFrame, frame);
                     ^
CollectionItemView.c:61:3: error: expected identifier before ‘struct’
   $((View *) self, addSubview, (View *) self->imageView);
   ^
CollectionItemView.c:63:16: error: expected identifier before ‘struct’
   self->text = alloc(Text, initWithText, NULL, NULL);
                ^
CollectionItemView.c:69:3: error: expected identifier before ‘struct’
   $((View *) self, addSubview, (View *) self->text);
   ^
CollectionItemView.c: In function ‘initialize’:
CollectionItemView.c:104:30: error: expected identifier before ‘struct’
  ((ObjectInterface *) clazz->interface)->dealloc = dealloc;
                              ^
CollectionItemView.c:106:42: error: expected identifier before ‘struct’
  ((CollectionItemViewInterface *) clazz->interface)->initWithFrame = initWithFrame;
                                          ^
CollectionItemView.c:107:42: error: expected identifier before ‘struct’
  ((CollectionItemViewInterface *) clazz->interface)->setSelected = setSelected;
                                          ^
In file included from /usr/include/inttypes.h:21:0,
                 from /usr/include/SDL2/SDL_stdinc.h:66,
                 from /usr/include/SDL2/SDL_video.h:31,
                 from ../../Sources/ObjectivelyMVC/Image.h:27,
                 from ../../Sources/ObjectivelyMVC/ImageView.h:26,
                 from ../../Sources/ObjectivelyMVC/CollectionItemView.h:26,
                 from CollectionItemView.c:26:
CollectionItemView.c: At top level:
CollectionItemView.c:114:50: error: expected identifier before ‘struct’
  .interfaceOffset = offsetof(CollectionItemView, interface),
                                                  ^
make[3]: *** [Makefile:590: libObjectivelyMVC_la-Button.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [Makefile:597: libObjectivelyMVC_la-Checkbox.lo] Error 1
In file included from /usr/include/w32api/oleidl.h:7:0,
                 from /usr/include/w32api/ole2.h:38,
                 from /usr/include/w32api/wtypes.h:12,
                 from /usr/include/w32api/winscard.h:10,
                 from /usr/include/w32api/windows.h:97,
                 from /usr/include/w32api/GL/gl.h:13,
                 from /usr/include/SDL2/SDL_opengl.h:54,
                 from ../../Sources/ObjectivelyMVC/View.h:27,
                 from Font.c:34:
/usr/include/Objectively/Dictionary.h:71:23: error: expected identifier or ‘(’ before ‘struct’
  DictionaryInterface *interface;
                       ^
../../Sources/ObjectivelyMVC/Renderer.h:61:21: error: expected identifier or ‘(’ before ‘struct’
  RendererInterface *interface;
                     ^
../../Sources/ObjectivelyMVC/View.h:254:17: error: expected identifier or ‘(’ before ‘struct’
  ViewInterface *interface;
                 ^
Font.c: In function ‘dealloc’:
Font.c:53:2: error: expected identifier before ‘struct’
  super(Object, self, dealloc);
  ^
Font.c: In function ‘allFonts’:
Font.c:72:24: error: expected identifier before ‘struct’
  MutableArray *fonts = $$(MutableArray, array);
                        ^
Font.c:86:20: error: expected identifier before ‘struct’
   String *string = $$(String, stringWithMemory, name, strlen(name));
                    ^
Font.c:88:3: error: expected identifier before ‘struct’
   $(fonts, addObject, string);
   ^
Font.c:96:2: error: expected identifier before ‘struct’
  $(fonts, sort, allFonts_sort);
  ^
In file included from Font.c:29:0:
Font.c: In function ‘defaultFont’:
Font.c:114:13: error: expected identifier before ‘struct’
   _normal = alloc(Font, initWithAttributes, DEFAULT_FONT_FAMILY, 14, 0);
             ^
Font.c:117:14: error: expected identifier before ‘struct’
   _smaller = alloc(Font, initWithAttributes, DEFAULT_FONT_FAMILY, 12, 0);
              ^
Font.c:120:13: error: expected identifier before ‘struct’
   _bigger = alloc(Font, initWithAttributes, DEFAULT_FONT_FAMILY, 16, 0);
             ^
In file included from /usr/include/w32api/oleidl.h:7:0,
                 from /usr/include/w32api/ole2.h:38,
                 from /usr/include/w32api/wtypes.h:12,
                 from /usr/include/w32api/winscard.h:10,
                 from /usr/include/w32api/windows.h:97,
                 from /usr/include/w32api/GL/gl.h:13,
                 from /usr/include/SDL2/SDL_opengl.h:54,
                 from ../../Sources/ObjectivelyMVC/View.h:27,
                 from Font.c:34:
Font.c: In function ‘initWithAttributes’:
Font.c:164:9: error: expected identifier before ‘struct’
  self = $(self, initWithPattern, pattern);
         ^
Font.c: In function ‘initWithName’:
Font.c:181:10: error: expected identifier before ‘struct’
   self = $(self, initWithPattern, pattern);
          ^
Font.c: In function ‘initWithPattern’:
Font.c:196:18: error: expected identifier before ‘struct’
  self = (Font *) super(Object, self, init);
                  ^
Font.c: In function ‘initialize’:
Font.c:282:30: error: expected identifier before ‘struct’
  ((ObjectInterface *) clazz->interface)->dealloc = dealloc;
                              ^
Font.c:284:28: error: expected identifier before ‘struct’
  ((FontInterface *) clazz->interface)->allFonts = allFonts;
                            ^
Font.c:285:28: error: expected identifier before ‘struct’
  ((FontInterface *) clazz->interface)->defaultFont = defaultFont;
                            ^
Font.c:286:28: error: expected identifier before ‘struct’
  ((FontInterface *) clazz->interface)->initWithAttributes = initWithAttributes;
                            ^
Font.c:287:28: error: expected identifier before ‘struct’
  ((FontInterface *) clazz->interface)->initWithName = initWithName;
                            ^
Font.c:288:28: error: expected identifier before ‘struct’
  ((FontInterface *) clazz->interface)->initWithPattern = initWithPattern;
                            ^
Font.c:289:28: error: expected identifier before ‘struct’
  ((FontInterface *) clazz->interface)->renderCharacters = renderCharacters;
                            ^
Font.c:290:28: error: expected identifier before ‘struct’
  ((FontInterface *) clazz->interface)->sizeCharacters = sizeCharacters;
                            ^
In file included from /usr/include/inttypes.h:21:0,
                 from /usr/include/SDL2/SDL_stdinc.h:66,
                 from /usr/include/SDL2/SDL_main.h:25,
                 from /usr/include/SDL2/SDL.h:67,
                 from /usr/include/SDL2/SDL_ttf.h:30,
                 from ../../Sources/ObjectivelyMVC/Font.h:26,
                 from Font.c:32:
Font.c: At top level:
Font.c:316:36: error: expected identifier before ‘struct’
  .interfaceOffset = offsetof(Font, interface),
                                    ^
make[3]: *** [Makefile:625: libObjectivelyMVC_la-Control.lo] Error 1
make[3]: *** [Makefile:646: libObjectivelyMVC_la-ImageView.lo] Error 1
make[3]: *** [Makefile:604: libObjectivelyMVC_la-CollectionItemView.lo] Error 1
make[3]: *** [Makefile:611: libObjectivelyMVC_la-CollectionView.lo] Error 1
make[3]: *** [Makefile:632: libObjectivelyMVC_la-Font.lo] Error 1
make[3]: *** [Makefile:653: libObjectivelyMVC_la-Input.lo] Error 1
make[3]: Leaving directory '/cygdrive/c/Users/cbas/Desktop/objectivelymvc/Sources/ObjectivelyMVC'
make[2]: *** [Makefile:438: all-recursive] Error 1
make[2]: Leaving directory '/cygdrive/c/Users/cbas/Desktop/objectivelymvc/Sources'
make[1]: *** [Makefile:403: all-recursive] Error 1
make[1]: Leaving directory '/cygdrive/c/Users/cbas/Desktop/objectivelymvc'
make: *** [Makefile:334: all] Error 2
tapir commented 8 years ago

@jdolan

jdolan commented 8 years ago

@tapir Do the Objectively unit tests compile (make check)?

tapir commented 8 years ago

Except date.exe they all pass Date.c:43:F:date:date:0: Assertion 'date1 != ((void *)0)' failed

jdolan commented 8 years ago

That's kind of expected right now. MinGW doesn't provide strptime: https://github.com/jdolan/Objectively/blob/master/Sources/Objectively/DateFormatter.c#L41

jdolan commented 8 years ago

OH! I know what this error is. Something in Windows (I forget which header) is retarded, and does this:

typedef struct interface;

Fucking ridiculous. In Class.h, I "fix" this: https://github.com/jdolan/Objectively/blob/master/Sources/Objectively/Class.h#L40

My guess is that you added some more Windows #includes -after- Object.h and Class.h are brought in, and that's what's causing this issue. All Windows-related #includes must happen before you #include Objectively.

tapir commented 8 years ago

huh! well the thing is the code does compile with mingw, it's only a problem with cygwin and I didn't really change the code. All the changes I've done are already merged to master. I'll see what I can do. Thanks

Edit: Ah btw this is error from an unchanged mvc master with autotools.

tapir commented 8 years ago

from w32api/basetyps.h

#define __STRUCT__ struct
#ifndef __OBJC__
#undef interface
#define interface __STRUCT__
#endif

Definitely very dangerous to use "interface" name. I'm not sure ordering your include files in the source level guarantees that one will not be included after while compiling. I think the best solution is to avoid using the name interface. is this cruical?

jdolan commented 8 years ago

Oof. I'd really like to find a workaround, especially since Cygwin is the only environment having problems here. Clang, gcc, MinGW and Visual Studio are all fine with it.

tapir commented 8 years ago

Was fixed with 0e524d8a6902ed476006af3bfa6efe35b2594ee0