[gimp] pdb, libgimp: hide gimpunit_pdb.h and gimpplugin_pdb.h from the API



commit e437e00adfce95810a90a9ed559616e406ad4f74
Author: Michael Natterer <mitch gimp org>
Date:   Wed Aug 7 18:43:21 2019 +0200

    pdb, libgimp: hide gimpunit_pdb.h and gimpplugin_pdb.h from the API
    
    They only contain private functions and don't need to be installed or
    included by gimp_pdb_headers.h.
    
    The PDB generation part is done by adding a "lib_private" variable
    that can be set on PDB groups which should not be public API; the rest
    is manual Makefile fiddling.

 libgimp/Makefile.am             | 7 ++++++-
 libgimp/Makefile.gi             | 4 ----
 libgimp/gimp_pdb_headers.h      | 2 --
 libgimp/gimplegacy.c            | 1 +
 libgimp/gimpplugin-private.c    | 1 +
 libgimp/gimpplugin.c            | 1 +
 libgimp/gimpplugin_pdb.c        | 1 +
 libgimp/gimpprocedure-private.c | 1 +
 libgimp/gimpunit_pdb.c          | 1 +
 pdb/groups/plug_in.pdb          | 2 ++
 pdb/groups/unit.pdb             | 2 ++
 pdb/lib.pl                      | 8 +++++++-
 pdb/pdbgen.pl                   | 1 +
 13 files changed, 24 insertions(+), 8 deletions(-)
---
diff --git a/libgimp/Makefile.am b/libgimp/Makefile.am
index 7a109ca03a..f9fa4546e4 100644
--- a/libgimp/Makefile.am
+++ b/libgimp/Makefile.am
@@ -125,7 +125,12 @@ libgimp_private_sources = \
        gimp-shm.c              \
        gimp-shm.h              \
        gimpprocedure-private.c \
-       gimpprocedure-private.h
+       gimpprocedure-private.h \
+       \
+       gimpunit_pdb.c          \
+       gimpunit_pdb.h          \
+       gimpplugin_pdb.c        \
+       gimpplugin_pdb.h
 
 libgimp_extra_sources = \
        gimpenums.c.tail        \
diff --git a/libgimp/Makefile.gi b/libgimp/Makefile.gi
index 823d81dddf..a199273ee1 100644
--- a/libgimp/Makefile.gi
+++ b/libgimp/Makefile.gi
@@ -45,12 +45,10 @@ PDB_WRAPPERS_C = \
        $(top_srcdir)/libgimp/gimppatterns_pdb.c                \
        $(top_srcdir)/libgimp/gimppatternselect_pdb.c           \
        $(top_srcdir)/libgimp/gimppdb_pdb.c                     \
-       $(top_srcdir)/libgimp/gimpplugin_pdb.c                  \
        $(top_srcdir)/libgimp/gimpprogress_pdb.c                \
        $(top_srcdir)/libgimp/gimpselection_pdb.c               \
        $(top_srcdir)/libgimp/gimptextlayer_pdb.c               \
        $(top_srcdir)/libgimp/gimptexttool_pdb.c                \
-       $(top_srcdir)/libgimp/gimpunit_pdb.c                    \
        $(top_srcdir)/libgimp/gimpvectors_pdb.c
 
 PDB_WRAPPERS_H = \
@@ -99,12 +97,10 @@ PDB_WRAPPERS_H = \
        $(top_srcdir)/libgimp/gimppatterns_pdb.h                \
        $(top_srcdir)/libgimp/gimppatternselect_pdb.h           \
        $(top_srcdir)/libgimp/gimppdb_pdb.h                     \
-       $(top_srcdir)/libgimp/gimpplugin_pdb.h                  \
        $(top_srcdir)/libgimp/gimpprogress_pdb.h                \
        $(top_srcdir)/libgimp/gimpselection_pdb.h               \
        $(top_srcdir)/libgimp/gimptextlayer_pdb.h               \
        $(top_srcdir)/libgimp/gimptexttool_pdb.h                \
-       $(top_srcdir)/libgimp/gimpunit_pdb.h                    \
        $(top_srcdir)/libgimp/gimpvectors_pdb.h
 
 libgimp_introspectable = \
diff --git a/libgimp/gimp_pdb_headers.h b/libgimp/gimp_pdb_headers.h
index 7a9f100854..6950ebc407 100644
--- a/libgimp/gimp_pdb_headers.h
+++ b/libgimp/gimp_pdb_headers.h
@@ -71,12 +71,10 @@
 #include <libgimp/gimppatterns_pdb.h>
 #include <libgimp/gimppatternselect_pdb.h>
 #include <libgimp/gimppdb_pdb.h>
-#include <libgimp/gimpplugin_pdb.h>
 #include <libgimp/gimpprogress_pdb.h>
 #include <libgimp/gimpselection_pdb.h>
 #include <libgimp/gimptextlayer_pdb.h>
 #include <libgimp/gimptexttool_pdb.h>
-#include <libgimp/gimpunit_pdb.h>
 #include <libgimp/gimpvectors_pdb.h>
 
 #endif /* __GIMP_PDB_HEADERS_H__ */
diff --git a/libgimp/gimplegacy.c b/libgimp/gimplegacy.c
index e778547b8b..c284a331f9 100644
--- a/libgimp/gimplegacy.c
+++ b/libgimp/gimplegacy.c
@@ -31,6 +31,7 @@
 #include "gimp-private.h"
 #include "gimpgpcompat.h"
 #include "gimpgpparams.h"
+#include "gimpplugin_pdb.h"
 #include "gimplegacy-private.h"
 
 
diff --git a/libgimp/gimpplugin-private.c b/libgimp/gimpplugin-private.c
index cb985f5cdd..1ebcc60633 100644
--- a/libgimp/gimpplugin-private.c
+++ b/libgimp/gimpplugin-private.c
@@ -30,6 +30,7 @@
 #include "gimp-shm.h"
 #include "gimpgpparams.h"
 #include "gimpplugin-private.h"
+#include "gimpplugin_pdb.h"
 #include "gimpprocedure-private.h"
 
 
diff --git a/libgimp/gimpplugin.c b/libgimp/gimpplugin.c
index 008128f708..c845fa16fb 100644
--- a/libgimp/gimpplugin.c
+++ b/libgimp/gimpplugin.c
@@ -30,6 +30,7 @@
 #include "libgimpbase/gimpwire.h"
 
 #include "gimpplugin-private.h"
+#include "gimpplugin_pdb.h"
 #include "gimpprocedure-private.h"
 
 
diff --git a/libgimp/gimpplugin_pdb.c b/libgimp/gimpplugin_pdb.c
index 76ec84e375..132b36e0f6 100644
--- a/libgimp/gimpplugin_pdb.c
+++ b/libgimp/gimpplugin_pdb.c
@@ -23,6 +23,7 @@
 #include "config.h"
 
 #include "gimp.h"
+#include "gimpplugin_pdb.h"
 
 /**
  * _gimp_plugin_domain_register:
diff --git a/libgimp/gimpprocedure-private.c b/libgimp/gimpprocedure-private.c
index c0832a03de..c7955e426e 100644
--- a/libgimp/gimpprocedure-private.c
+++ b/libgimp/gimpprocedure-private.c
@@ -28,6 +28,7 @@
 
 #include "gimpgpparams.h"
 #include "gimpplugin-private.h"
+#include "gimpplugin_pdb.h"
 #include "gimpprocedure-private.h"
 
 
diff --git a/libgimp/gimpunit_pdb.c b/libgimp/gimpunit_pdb.c
index cdd557a163..4c826a51d3 100644
--- a/libgimp/gimpunit_pdb.c
+++ b/libgimp/gimpunit_pdb.c
@@ -23,6 +23,7 @@
 #include "config.h"
 
 #include "gimp.h"
+#include "gimpunit_pdb.h"
 
 /**
  * _gimp_unit_get_number_of_units:
diff --git a/pdb/groups/plug_in.pdb b/pdb/groups/plug_in.pdb
index c244c116d2..cfbc9cbc2f 100644
--- a/pdb/groups/plug_in.pdb
+++ b/pdb/groups/plug_in.pdb
@@ -377,4 +377,6 @@ CODE
 
 $desc = 'Plug-in';
 
+$lib_private = 1;
+
 1;
diff --git a/pdb/groups/unit.pdb b/pdb/groups/unit.pdb
index 3d98e35155..00ca254d38 100644
--- a/pdb/groups/unit.pdb
+++ b/pdb/groups/unit.pdb
@@ -376,4 +376,6 @@ CODE
 
 $desc = 'Units';
 
+$lib_private = 1;
+
 1;
diff --git a/pdb/lib.pl b/pdb/lib.pl
index 151e1e140e..c7f314a1fb 100644
--- a/pdb/lib.pl
+++ b/pdb/lib.pl
@@ -730,6 +730,10 @@ HEADER
        print CFILE $out->{headers}, "\n" if exists $out->{headers};
        print CFILE qq/#include "gimp.h"\n/;
 
+       if (exists $main::grp{$group}->{lib_private}) {
+           print CFILE qq/#include "$hname"\n/;
+       }
+
        if (exists $main::grp{$group}->{doc_title}) {
            $long_desc = &desc_wrap($main::grp{$group}->{doc_long_desc});
            print CFILE <<SECTION_DOCS;
@@ -775,7 +779,9 @@ HEADER
                $hname = "gimp${hname}";
            }
            $hname =~ s/_//g; $hname =~ s/pdb\./_pdb./;
-           push @groups, $hname;
+           if (! exists $main::grp{$group}->{lib_private}) {
+               push @groups, $hname;
+           }
        }
        foreach $group (sort @groups) {
            print PFILE "#include <libgimp/$group>\n";
diff --git a/pdb/pdbgen.pl b/pdb/pdbgen.pl
index 30288d4c44..d6330f1e17 100755
--- a/pdb/pdbgen.pl
+++ b/pdb/pdbgen.pl
@@ -72,6 +72,7 @@ $evalcode = <<'CODE';
 
     # These are attached to the group structure
     my @groupvars = qw($desc $doc_title $doc_short_desc $doc_long_desc
+                       $lib_private
                        @headers %extra);
 
     # Hook some variables into the top-level namespace


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]