After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 765856 - g-i: use only "ges/ges.h" as c-include for introspection
g-i: use only "ges/ges.h" as c-include for introspection
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-editing-services
git master
Other All
: Normal minor
: 1.8.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-04-30 17:11 UTC by Aurélien Zanelli
Modified: 2016-05-02 07:04 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
g-i: use only "ges/ges.h" as c-include for introspection (1.52 KB, patch)
2016-04-30 17:12 UTC, Aurélien Zanelli
committed Details | Review

Description Aurélien Zanelli 2016-04-30 17:11:15 UTC
I tried to generate binding for vala using gir and current gir files includes all header files from ges/ which causes vala compilation to fail due to incomplete types:

/usr/include/gstreamer-1.0/ges/ges-base-effect-clip.h:52:20: erreur : field ‘parent’ has incomplete type
   GESOperationClip parent;
                    ^
/usr/include/gstreamer-1.0/ges/ges-base-effect-clip.h:67:25: erreur : field ‘parent_class’ has incomplete type
   GESOperationClipClass parent_class;
                         ^

Problem is includes are in alphabetical order and ges-base-effect-clip.h is included before ges-operation-clip.h which defines types, and there is certainly other definition problems.

In C, we shall only include "ges/ges.h" so for introspection, instead of using all headers, I propose to only use "ges/ges.h", like in GStreamer core.
Comment 1 Aurélien Zanelli 2016-04-30 17:12:58 UTC
Created attachment 327080 [details] [review]
g-i: use only "ges/ges.h" as c-include for introspection

Proposed patch
Comment 2 Tim-Philipp Müller 2016-04-30 17:29:24 UTC
Makes sense I think, and matches what we do elsewhere:

commit 4257605141268f61a3a92d566ea350d5bd0ac368
Author: Aurélien Zanelli <aurelien.zanelli@darkosphere.fr>
Date:   Sat Apr 30 18:20:00 2016 +0200

    g-i: use only "ges/ges.h" as c-include for introspection
    
    This is the only header which shall be included by user. Otherwise some
    language using gir to generate binding, e.g Vala, will includes all
    headers files in alphabetical order which causes compilation errors due
    to incomplete type.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=765856