diff options
author | Philip Withnall <philip.withnall@collabora.co.uk> | 2015-10-04 13:35:38 +0100 |
---|---|---|
committer | Philip Withnall <philip.withnall@collabora.co.uk> | 2015-10-04 13:35:38 +0100 |
commit | 0bb2901aa5d944e7e588a4fd9f57d3be96354dc5 (patch) | |
tree | 614e4c9c074d62632fa7a99bd086a26cfaf4e8aa | |
parent | 5090ecd40d21c221ee8fa26d392c2e4ddecdd773 (diff) | |
download | libgdata-0bb2901aa5d944e7e588a4fd9f57d3be96354dc5.tar.gz |
build: Split GOA symbols out into a separate symbols file
On some systems (Mac OS X) it is an error to include symbols in the
symbols file which are not exported from the library. This can happen if
building with --disable-goa (or --disable-gnome).
Fix this by generating the symbols file dynamically.
https://bugzilla.gnome.org/show_bug.cgi?id=754821
-rw-r--r-- | HACKING | 4 | ||||
-rw-r--r-- | Makefile.am | 14 | ||||
-rw-r--r-- | gdata/gdata-core.symbols (renamed from gdata/gdata.symbols) | 3 | ||||
-rw-r--r-- | gdata/gdata-goa.symbols | 3 |
4 files changed, 17 insertions, 7 deletions
@@ -95,7 +95,7 @@ Adding public API - All public API must have a gtk-doc comment, and be added to the docs/reference/gdata-sections.txt file, to include it in the documentation. The documentation comment must have a "Since" clause (see "Documentation comments" section). - - All public API must be listed in gdata/gdata.symbols. + - All public API must be listed in gdata/gdata-*.symbols. - Non-trivial API should have a test case added in the relevant test suite file in gdata/tests. Note that the "general" test suite file cannot make network requests in the course of running its test cases. @@ -157,7 +157,7 @@ deprecating API: If this isn't possible, the deprecated function should be split into a static function which contains all the code, and the public symbol should become a simple wrapper of this static function. This allows the static function to be used inside libgdata without causing deprecation warnings. - - Don't remove deprecated symbols from gdata.symbols. + - Don't remove deprecated symbols from gdata-*.symbols. - Don't forget to also deprecate related symbols, such as the getter/setter for a property (or vice-versa). diff --git a/Makefile.am b/Makefile.am index 996a24e2..cb8d4e96 100644 --- a/Makefile.am +++ b/Makefile.am @@ -529,12 +529,22 @@ gdata_libgdata_la_LIBADD = \ gdata_libgdata_la_LDFLAGS = \ -version-info $(GDATA_LT_VERSION) \ - -export-symbols $(srcdir)/gdata/gdata.symbols \ + -export-symbols $(builddir)/gdata/gdata.symbols \ -no-undefined \ $(WARN_LDFLAGS) \ $(AM_LDFLAGS) -EXTRA_DIST += gdata/gdata.symbols +# Symbols file +gdata/gdata.symbols: gdata/gdata-core.symbols gdata/gdata-goa.symbols +if ENABLE_GOA + $(AM_V_GEN)cat gdata/gdata-core.symbols gdata/gdata-goa.symbols > $@ +else + $(AM_V_GEN)cat gdata/gdata-core.symbols > $@ +endif + +EXTRA_gdata_libgdata_la_DEPENDENCIES = gdata/gdata.symbols +EXTRA_DIST += gdata/gdata-core.symbols gdata/gdata-goa.symbols +CLEANFILES += gdata/gdata.symbols # Check if gdata.h includes all the public headers check-local: check-headers diff --git a/gdata/gdata.symbols b/gdata/gdata-core.symbols index dad803eb..7cda0b64 100644 --- a/gdata/gdata.symbols +++ b/gdata/gdata-core.symbols @@ -971,9 +971,6 @@ gdata_documents_entry_get_quota_used gdata_documents_service_copy_document gdata_documents_service_copy_document_async gdata_documents_service_copy_document_finish -gdata_goa_authorizer_get_type -gdata_goa_authorizer_new -gdata_goa_authorizer_get_goa_object gdata_documents_document_get_thumbnail_uri gdata_tasks_task_get_type gdata_tasks_task_new diff --git a/gdata/gdata-goa.symbols b/gdata/gdata-goa.symbols new file mode 100644 index 00000000..f870ec1e --- /dev/null +++ b/gdata/gdata-goa.symbols @@ -0,0 +1,3 @@ +gdata_goa_authorizer_get_type +gdata_goa_authorizer_new +gdata_goa_authorizer_get_goa_object |