[Libosinfo] [libosinfo] build: Don't use private header for gir/vapi generation

Christophe Fergeau cfergeau at redhat.com
Tue May 30 09:20:58 UTC 2017


Using private headers when generating the gir/vapi files mean that they
are listing private methods which are not exported by the shared
library, as well as types which are not present in public headers, and
not meant to be used by external users.

This was noticed with recent vala.git as it started erroring out on the
ProductForeachFlag which is only  defined in osinfo_product_private.h

https://bugzilla.redhat.com/show_bug.cgi?id=1456709
---
 osinfo/Makefile.am | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/osinfo/Makefile.am b/osinfo/Makefile.am
index c915b577..5d952a13 100644
--- a/osinfo/Makefile.am
+++ b/osinfo/Makefile.am
@@ -105,7 +105,7 @@ nodist_libosinfo_1_0_include_HEADERS =	\
   osinfo_enum_types.h			\
   $(NULL)
 
-libosinfo_1_0_la_SOURCES =		\
+libosinfo_c_files =		\
   osinfo_avatar_format.c		\
   osinfo_datamap.c			\
   osinfo_datamaplist.c			\
@@ -118,16 +118,13 @@ libosinfo_1_0_la_SOURCES =		\
   osinfo_devicelinklist.c		\
   osinfo_devicelinkfilter.c		\
   osinfo_device_driver.c		\
-  osinfo_device_driver_private.h	\
   osinfo_device_driverlist.c		\
   osinfo_install_config.c		\
   osinfo_install_config_param.c		\
   osinfo_install_config_paramlist.c	\
   osinfo_install_script.c		\
-  osinfo_install_script_private.h	\
   osinfo_install_scriptlist.c		\
   osinfo_product.c			\
-  osinfo_product_private.h		\
   osinfo_productfilter.c		\
   osinfo_productlist.c			\
   osinfo_platform.c			\
@@ -139,7 +136,6 @@ libosinfo_1_0_la_SOURCES =		\
   osinfo_deployment.c			\
   osinfo_deploymentlist.c		\
   osinfo_media.c			\
-  osinfo_media_private.h		\
   osinfo_medialist.c			\
   osinfo_resources.c			\
   osinfo_resourceslist.c		\
@@ -147,9 +143,21 @@ libosinfo_1_0_la_SOURCES =		\
   osinfo_treelist.c			\
   osinfo_db.c				\
   osinfo_loader.c			\
+  $(NULL)
+
+libosinfo_private_header_files =	\
+  osinfo_device_driver_private.h	\
+  osinfo_install_script_private.h	\
+  osinfo_product_private.h		\
+  osinfo_media_private.h		\
   ignore-value.h			\
   $(NULL)
 
+libosinfo_1_0_la_SOURCES =		\
+  $(libosinfo_c_files)			\
+  $(libosinfo_private_header_files)	\
+  $(NULL)
+
 nodist_libosinfo_1_0_la_SOURCES =	\
   osinfo_enum_types.c			\
   $(NULL)
@@ -187,12 +195,13 @@ INTROSPECTION_GIRS =
 CLEANFILES =
 
 if HAVE_INTROSPECTION
+
 Libosinfo-1.0.gir: libosinfo-1.0.la
 Libosinfo_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0 libxml2-2.0
 Libosinfo_1_0_gir_PACKAGES = gobject-2.0 gio-2.0 libxml-2.0 libxslt
 Libosinfo_1_0_gir_EXPORT_PACKAGES = libosinfo-1.0
 Libosinfo_1_0_gir_LIBS = libosinfo-1.0.la
-Libosinfo_1_0_gir_FILES = $(libosinfo_1_0_include_HEADERS) $(nodist_libosinfo_1_0_include_HEADERS) $(libosinfo_1_0_la_SOURCES) $(nodist_libosinfo_1_0_la_SOURCES)
+Libosinfo_1_0_gir_FILES = $(libosinfo_1_0_include_HEADERS) $(nodist_libosinfo_1_0_include_HEADERS) $(libosinfo_c_files) $(nodist_libosinfo_1_0_la_SOURCES)
 Libosinfo_1_0_gir_CFLAGS = $(libosinfo_1_0_la_CFLAGS)
 Libosinfo_1_0_gir_SCANNERFLAGS = --identifier-prefix=Osinfo --symbol-prefix=osinfo --c-include="osinfo/osinfo.h"
 INTROSPECTION_GIRS += Libosinfo-1.0.gir
-- 
2.13.0




More information about the Libosinfo mailing list