summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip.withnall@collabora.co.uk>2015-10-04 13:35:38 +0100
committerPhilip Withnall <philip.withnall@collabora.co.uk>2015-10-04 13:35:38 +0100
commit0bb2901aa5d944e7e588a4fd9f57d3be96354dc5 (patch)
tree614e4c9c074d62632fa7a99bd086a26cfaf4e8aa
parent5090ecd40d21c221ee8fa26d392c2e4ddecdd773 (diff)
downloadlibgdata-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--HACKING4
-rw-r--r--Makefile.am14
-rw-r--r--gdata/gdata-core.symbols (renamed from gdata/gdata.symbols)3
-rw-r--r--gdata/gdata-goa.symbols3
4 files changed, 17 insertions, 7 deletions
diff --git a/HACKING b/HACKING
index 69177c23..32917c7b 100644
--- a/HACKING
+++ b/HACKING
@@ -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