diff --git a/configure.ac b/configure.ac index 88365adb868a0ff4eb289723d33c7d43d768261e..0fd0243b5b746cacb5f9147ff0d359d87a9cdccd 100644 --- a/configure.ac +++ b/configure.ac @@ -155,6 +155,39 @@ fi # Check for GObject Introspection GOBJECT_INTROSPECTION_CHECK([1.32.0]) +dnl Check Cross Compile +dnl ****************************** +dnl Check for Operating System +dnl ****************************** +dnl linklibext is the shared link library extension, which varies by platform + +#EXPORT_SYM_REGEX='-export-symbols-regex "^(gxml_|fnYM49765777344607__gxml).*"' +#AC_MSG_CHECKING([for platform]) +#platform_win32=no +#linklibext=".so" +case "$host" in +*-mingw*) +# AC_MSG_RESULT([Win32 - MinGW]) + platform_win32=yes +# AC_DEFINE([USING_MINGW],[],[Using MinGW]) +# NO_UNDEFINED='-no-undefined' +# LIBTOOL_EXPORT_OPTIONS= +# linklibext=".dll" +# AC_CHECK_TOOL(WINDRES, windres, windres) +# AC_SUBST(WINDRES) +# AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool) +# AC_SUBST(DLLTOOL) + ;; +*) +# AC_MSG_RESULT([Unix]) +# NO_UNDEFINED='' +# LIBTOOL_EXPORT_OPTIONS=$EXPORT_SYM_REGEX +# ;; +esac +AM_CONDITIONAL(PLATFORM_WIN32, [test $platform_win32 = yes]) +#AC_SUBST(LIBTOOL_EXPORT_OPTIONS) +#AC_SUBST(NO_UNDEFINED) + ### Autoconf generating Makefiles AC_CONFIG_FILES([ Makefile @@ -177,7 +210,8 @@ AC_OUTPUT # Print configuration summary echo "" echo " Configuration summary for GXml-$GXML_VERSION" -echo " Installation prefix: $prefix" -echo " Enable GObject Introspection (--enable-instrospection): `if test x$have_instrospection != xno; then echo yes; else echo no; fi`" -echo " Documentation: ${have_valadoc}" +echo " Installation prefix: $prefix" +echo " GObject Introspection: $found_introspection" +echo " Vala Documentation: ${have_valadoc}" +echo " Platform: $host" echo "" diff --git a/gxml/Makefile.am b/gxml/Makefile.am index 8dd9cbbbddd0124668dcab4c88f3b7970fdcc704..499dc832efe4b22661e122ab39e2786df85dbad5 100644 --- a/gxml/Makefile.am +++ b/gxml/Makefile.am @@ -3,25 +3,6 @@ # Empty variable to be added elements later CLEANFILES= -### General Compilation flags -AM_CPPFLAGS = \ - -include $(CONFIG_HEADER) \ - -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ - -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ - -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ - -DG_LOG_DOMAIN=\"gxml\" \ - $(NULL) - -AM_CFLAGS = \ - -g \ - $(GLIB_CFLAGS) \ - $(LIBXML_CFLAGS) \ - $(GIO_CFLAGS) \ - $(GEE_CFLAGS) \ - $(VALA_CFLAGS) \ - $(NULL) - -# -Wall # TODO: add this back when we can properly handle more libxml2/vala warnings ### Library @@ -29,10 +10,8 @@ AM_CFLAGS = \ # Library to create lib_LTLIBRARIES = libgxml-0.4.la -VALAC=valac - # Vala source code -libgxml_0_4_la_SOURCES = \ +sources = \ namespace-info.vala \ Attr.vala \ BackedNode.vala \ @@ -69,11 +48,30 @@ libgxml_0_4_la_SOURCES = \ SerializableGeeArrayList.vala \ SerializableContainer.vala -gxml_0_4_la_vala.stamp: $(libgxml_0_4_la_SOURCES) + +### General Compilation flags +AM_CPPFLAGS = \ + -include $(CONFIG_HEADER) \ + -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ + -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ + -DG_LOG_DOMAIN=\"gxml\" \ + $(NULL) + +AM_CFLAGS = \ + -g \ + $(GLIB_CFLAGS) \ + $(LIBXML_CFLAGS) \ + $(GIO_CFLAGS) \ + $(GEE_CFLAGS) \ + $(VALA_CFLAGS) \ + $(NULL) + +# -Wall # TODO: add this back when we can properly handle more libxml2/vala warnings + # library flags -VALAFLAGS = \ - $(AM_VALAFLAGS) \ +AM_VALAFLAGS = \ $(ERROR_VALAFLAGS) \ --gir=GXml-$(API_VERSION).gir \ --library=gxml-0.4 \ @@ -87,10 +85,10 @@ VALAFLAGS = \ --includedir gxml \ --vapi gxml-0.4.vapi \ -H gxml.h \ + -C \ $(NULL) libgxml_0_4_la_LIBADD = \ - $(AM_LDADD) \ $(GEE_LIBS) \ $(GIO_LIBS) \ $(GLIB_LIBS) \ @@ -99,15 +97,20 @@ libgxml_0_4_la_LIBADD = \ $(NULL) libgxml_0_4_la_LDFLAGS = \ - $(AM_LDFLAGS) \ -version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)" +gxml_0_4_la_vala.stamp: $(sources) + $(VALAC) $(AM_VALAFLAGS) $(sources) + +libgxml_0_4_la_SOURCES=$(sources:.vala=.c) + # .h header file -gxml.h: libgxml-0.4.la +gxml.h: gxml_0_4_la_vala.stamp gxmldir= $(includedir)/gxml-$(API_VERSION)/gxml gxml_HEADERS = gxml.h # .vapi Vala API file +gxml-0.4.vapi: gxml_0_4_la_vala.stamp vapidir = $(datadir)/vala/vapi dist_vapi_DATA = \ gxml-0.4.vapi \ @@ -153,6 +156,45 @@ typelibdir = $(INTROSPECTION_TYPELIBDIR) typelib_DATA = GXml-0.4.typelib CLEANFILES += $(gir_DATA) $(typelibs_DATA) endif + +if PLATFORM_WIN32 +libgxml_0_4_la_LDFLAGS += -export-symbols $(builddir)/libgxml-0.4.def +#libgxml_0_4_la_LDFLAGS += -export-all-symbols -out-implib libgxml-0.4.lib --out-def libgxml-0.4.def +libgxml_0_4_la_DEPENDENCIES = libgxml-0.4.def +#libgxml_0_4_la_CFLAGS += -o libgxml-0.4.dll + +libgxml-0.4.def: gxml.symbols + (echo -e EXPORTS; $(CPP) -P $(DEF_FLAGS) - <$(srcdir)/gxml.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > gxml.def.tmp && mv gxml.def.tmp libgxml-0.4.def + +libgxml-0.4.lib: libgxml-0.4.def + $(DLLTOOL) --dllname libgxml-0.4.a --def libgxml-0.4.def --output-lib libgxml-0.4.lib + +#libgxml-0.4.dll: libgxml-0.4.la +# $(CC) -shared -o libgxml-0.4.dll $(libgxml_0_4_la_SOURCES) $(libgxml_0_4_la_CFLAGS) \ +# -Wl,-export-symbols,$(builddir)/gxml.def,-export-lib,libgxml-0.4.lib,$(libgxml_0_4_la_LDFLAGS) + +#install-data-local: install-def-files +#uninstall-local: uninstall-def-files + +#install-def-files: gxml.def libgxml-0.4.lib +# $(INSTALL) $(builddir)/gxml.def $(DESTDIR)$(libdir)/libgxml-0.4.def +# $(INSTALL) $(builddir)/libgxml-0.4.lib $(DESTDIR)$(libdir)/ + +#uninstall-def-files: +# -rm $(DESTDIR)$(libdir)/libgxml-0.4.def +# -rm $(DESTDIR)$(libdir)/libgxml-0.4.lib +libgxml-0.4.lib: libgxml-0.4.la +libgxmllibdir=$(libdir) +libgxmllib_DATA=libgxml-0.4.lib + +libgxml-0.4.def: libgxml-0.4.la +libgxmldefdir=$(libdir) +libgxmldef_DATA=libgxml-0.4.def + +endif + + + ### Files to clean BUILT_SOURCES = \ gxml_0_4_la_vala.stamp \ @@ -163,7 +205,9 @@ BUILT_SOURCES = \ CLEANFILES += \ $(BUILT_SOURCES) \ namespace-info.vala \ - $(libgxml_0_4_la_SOURCES:.vala=.c) + $(libgxml_0_4_la_SOURCES:.vala=.c) \ + $(gir_DATA) \ + $(typelib_DATA) MAINTAINERCLEANFILES = $(BUILT_SOURCES) diff --git a/gxml/gxml.symbols b/gxml/gxml.symbols new file mode 100644 index 0000000000000000000000000000000000000000..9c8bcaa58b1fbcad8a49aff59ff2e1feefb9569e --- /dev/null +++ b/gxml/gxml.symbols @@ -0,0 +1,326 @@ +gxml_attr_get_name +gxml_attr_get_specified +gxml_attr_get_type +gxml_attr_get_value +gxml_attr_set_value +gxml_backed_node_get_type +gxml_cdata_section_get_type +gxml_character_data_append_data +gxml_character_data_delete_data +gxml_character_data_get_data +gxml_character_data_get_length +gxml_character_data_get_type +gxml_character_data_insert_data +gxml_character_data_replace_data +gxml_character_data_set_data +gxml_character_data_substring_data +gxml_comment_get_type +gxml_document_construct +gxml_document_construct_from_gfile +gxml_document_construct_from_libxml2 +gxml_document_construct_from_path +gxml_document_construct_from_stream +gxml_document_construct_from_string +gxml_document_construct_from_string_with_options +gxml_document_create_attribute +gxml_document_create_cdata_section +gxml_document_create_comment +gxml_document_create_document_fragment +gxml_document_create_element +gxml_document_create_entity_reference +gxml_document_create_processing_instruction +gxml_document_create_text_node +gxml_document_fragment_get_type +gxml_document_get_doctype +gxml_document_get_document_element +gxml_document_get_elements_by_tag_name +gxml_document_get_implementation +gxml_document_get_type +gxml_document_new +gxml_document_new_from_gfile +gxml_document_new_from_libxml2 +gxml_document_new_from_path +gxml_document_new_from_stream +gxml_document_new_from_string +gxml_document_new_from_string_with_options +gxml_document_save_to_path +gxml_document_save_to_stream +gxml_document_type_get_entities +gxml_document_type_get_name +gxml_document_type_get_notations +gxml_document_type_get_type +gxml_dom_exception_get_type +gxml_element_get_attribute +gxml_element_get_attribute_node +gxml_element_get_content +gxml_element_get_elements_by_tag_name +gxml_element_get_tag_name +gxml_element_get_type +gxml_element_normalize +gxml_element_remove_attribute +gxml_element_remove_attribute_node +gxml_element_set_attribute +gxml_element_set_attribute_node +gxml_element_set_content +gxml_entity_get_notation_name +gxml_entity_get_public_id +gxml_entity_get_system_id +gxml_entity_get_type +gxml_entity_reference_get_type +gxml_enumeration_construct +gxml_enumeration_get_nick +gxml_enumeration_get_nick_camelcase +gxml_enumeration_get_string +gxml_enumeration_get_type +gxml_enumeration_new +gxml_enumeration_parse +gxml_enumeration_ref +gxml_enumeration_to_array +gxml_enumeration_unref +gxml_implementation_create_document +gxml_implementation_get_type +gxml_implementation_has_feature +gxml_named_attr_map_get_type +gxml_named_attr_map_get_values +gxml_named_node_map_get_length +gxml_named_node_map_get_named_item +gxml_named_node_map_get_type +gxml_named_node_map_item +gxml_named_node_map_remove_named_item +gxml_named_node_map_set_named_item +gxml_namespace_attr_get_defined_namespace_uri +gxml_namespace_attr_get_defined_prefix +gxml_namespace_attr_get_type +gxml_node_add_namespace_attr +gxml_node_append_child +gxml_node_clone_node +gxml_node_copy +gxml_node_get_attributes +gxml_node_get_child_nodes +gxml_node_get_first_child +gxml_node_get_last_child +gxml_node_get_local_name +gxml_node_get_namespace_definitions +gxml_node_get_namespace_uri +gxml_node_get_next_sibling +gxml_node_get_node_name +gxml_node_get_node_type +gxml_node_get_node_value +gxml_node_get_owner_document +gxml_node_get_parent_node +gxml_node_get_prefix +gxml_node_get_previous_sibling +gxml_node_get_type +gxml_node_has_child_nodes +gxml_node_insert_before +gxml_node_list_append_child +gxml_node_list_first +gxml_node_list_get +gxml_node_list_get_length +gxml_node_list_get_type +gxml_node_list_insert_before +gxml_node_list_item +gxml_node_list_last +gxml_node_list_remove_child +gxml_node_list_replace_child +gxml_node_list_to_string +gxml_node_remove_child +gxml_node_replace_child +gxml_node_to_string +gxml_node_type_get_type +gxml_notation_get_public_id +gxml_notation_get_system_id +gxml_notation_get_type +gxml_param_spec_enumeration +gxml_processing_instruction_get_data +gxml_processing_instruction_get_target +gxml_processing_instruction_get_type +gxml_processing_instruction_set_data +gxml_serializable_array_list_construct +gxml_serializable_array_list_default_deserialize +gxml_serializable_array_list_default_deserialize_property +gxml_serializable_array_list_default_serialize +gxml_serializable_array_list_default_serialize_property +gxml_serializable_array_list_deserialize +gxml_serializable_array_list_deserialize_property +gxml_serializable_array_list_find_property_spec +gxml_serializable_array_list_get_property_value +gxml_serializable_array_list_get_type +gxml_serializable_array_list_init_properties +gxml_serializable_array_list_list_serializable_properties +gxml_serializable_array_list_new +gxml_serializable_array_list_node_name +gxml_serializable_array_list_property_use_nick +gxml_serializable_array_list_serialize +gxml_serializable_array_list_serialize_property +gxml_serializable_array_list_serialize_use_xml_node_value +gxml_serializable_array_list_set_property_value +gxml_serializable_array_list_transform_from_string +gxml_serializable_array_list_transform_to_string +gxml_serializable_collection_get_type +gxml_serializable_collection_is_collection +gxml_serializable_container_construct +gxml_serializable_container_get_type +gxml_serializable_container_init_containers +gxml_serializable_default_find_property_spec +gxml_serializable_default_get_property_value +gxml_serializable_default_init_properties +gxml_serializable_default_list_serializable_properties +gxml_serializable_default_set_property_value +gxml_serializable_deserialize +gxml_serializable_deserialize_property +gxml_serializable_dual_key_map_construct +gxml_serializable_dual_key_map_default_deserialize +gxml_serializable_dual_key_map_default_deserialize_property +gxml_serializable_dual_key_map_default_serialize +gxml_serializable_dual_key_map_default_serialize_property +gxml_serializable_dual_key_map_deserialize +gxml_serializable_dual_key_map_deserialize_property +gxml_serializable_dual_key_map_find_property_spec +gxml_serializable_dual_key_map_get +gxml_serializable_dual_key_map_get_enable_unknown_serializable_property +gxml_serializable_dual_key_map_get_primary_key_type +gxml_serializable_dual_key_map_get_primary_keys +gxml_serializable_dual_key_map_get_property_value +gxml_serializable_dual_key_map_get_secondary_key_type +gxml_serializable_dual_key_map_get_size +gxml_serializable_dual_key_map_get_type +gxml_serializable_dual_key_map_get_value_type +gxml_serializable_dual_key_map_init_properties +gxml_serializable_dual_key_map_list_serializable_properties +gxml_serializable_dual_key_map_new +gxml_serializable_dual_key_map_node_name +gxml_serializable_dual_key_map_property_use_nick +gxml_serializable_dual_key_map_secondary_keys +gxml_serializable_dual_key_map_serialize +gxml_serializable_dual_key_map_serialize_property +gxml_serializable_dual_key_map_serialize_use_xml_node_value +gxml_serializable_dual_key_map_set +gxml_serializable_dual_key_map_set_property_value +gxml_serializable_dual_key_map_transform_from_string +gxml_serializable_dual_key_map_transform_to_string +gxml_serializable_dual_key_map_values +gxml_serializable_dual_key_map_values_for_key +gxml_serializable_find_property_spec +gxml_serializable_get_enable_unknown_serializable_property +gxml_serializable_get_ignored_serializable_properties +gxml_serializable_get_properties +gxml_serializable_get_property_value +gxml_serializable_get_serialized_xml_node_value +gxml_serializable_get_type +gxml_serializable_get_unknown_serializable_property +gxml_serializable_gvalue_to_string +gxml_serializable_hash_map_construct +gxml_serializable_hash_map_default_deserialize +gxml_serializable_hash_map_default_deserialize_property +gxml_serializable_hash_map_default_serialize +gxml_serializable_hash_map_default_serialize_property +gxml_serializable_hash_map_deserialize +gxml_serializable_hash_map_deserialize_property +gxml_serializable_hash_map_find_property_spec +gxml_serializable_hash_map_get_enable_unknown_serializable_property +gxml_serializable_hash_map_get_property_value +gxml_serializable_hash_map_get_type +gxml_serializable_hash_map_init_properties +gxml_serializable_hash_map_list_serializable_properties +gxml_serializable_hash_map_new +gxml_serializable_hash_map_node_name +gxml_serializable_hash_map_property_use_nick +gxml_serializable_hash_map_serialize +gxml_serializable_hash_map_serialize_property +gxml_serializable_hash_map_serialize_use_xml_node_value +gxml_serializable_hash_map_set_property_value +gxml_serializable_hash_map_transform_from_string +gxml_serializable_hash_map_transform_to_string +gxml_serializable_init_properties +gxml_serializable_json_construct +gxml_serializable_json_deserialize_property +gxml_serializable_json_find_property_spec +gxml_serializable_json_get_enable_unknown_serializable_property +gxml_serializable_json_get_property_value +gxml_serializable_json_get_type +gxml_serializable_json_init_properties +gxml_serializable_json_list_serializable_properties +gxml_serializable_json_new +gxml_serializable_json_node_name +gxml_serializable_json_property_use_nick +gxml_serializable_json_serialize_property +gxml_serializable_json_serialize_use_xml_node_value +gxml_serializable_json_set_property_value +gxml_serializable_json_transform_from_string +gxml_serializable_json_transform_to_string +gxml_serializable_list_serializable_properties +gxml_serializable_map_dual_key_get_map_primary_key +gxml_serializable_map_dual_key_get_map_secondary_key +gxml_serializable_map_dual_key_get_type +gxml_serializable_map_key_get_map_key +gxml_serializable_map_key_get_type +gxml_serializable_node_name +gxml_serializable_object_model_construct +gxml_serializable_object_model_default_deserialize +gxml_serializable_object_model_default_deserialize_property +gxml_serializable_object_model_default_node_name +gxml_serializable_object_model_default_serialize +gxml_serializable_object_model_default_serialize_property +gxml_serializable_object_model_deserialize +gxml_serializable_object_model_deserialize_property +gxml_serializable_object_model_equals +gxml_serializable_object_model_find_property_spec +gxml_serializable_object_model_get_enable_unknown_serializable_property +gxml_serializable_object_model_get_property_value +gxml_serializable_object_model_get_type +gxml_serializable_object_model_init_properties +gxml_serializable_object_model_list_serializable_properties +gxml_serializable_object_model_node_name +gxml_serializable_object_model_property_use_nick +gxml_serializable_object_model_serialize +gxml_serializable_object_model_serialize_property +gxml_serializable_object_model_serialize_use_xml_node_value +gxml_serializable_object_model_set_property_value +gxml_serializable_object_model_to_string +gxml_serializable_object_model_transform_from_string +gxml_serializable_object_model_transform_to_string +gxml_serializable_property_use_nick +gxml_serializable_serialize +gxml_serializable_serialize_property +gxml_serializable_serialize_use_xml_node_value +gxml_serializable_set_ignored_serializable_properties +gxml_serializable_set_properties +gxml_serializable_set_property_value +gxml_serializable_set_serialized_xml_node_value +gxml_serializable_set_unknown_serializable_property +gxml_serializable_string_to_gvalue +gxml_serializable_transform_from_string +gxml_serializable_transform_to_string +gxml_serializable_tree_map_construct +gxml_serializable_tree_map_default_deserialize +gxml_serializable_tree_map_default_deserialize_property +gxml_serializable_tree_map_default_serialize +gxml_serializable_tree_map_default_serialize_property +gxml_serializable_tree_map_deserialize +gxml_serializable_tree_map_deserialize_property +gxml_serializable_tree_map_find_property_spec +gxml_serializable_tree_map_get_property_value +gxml_serializable_tree_map_get_type +gxml_serializable_tree_map_init_properties +gxml_serializable_tree_map_list_serializable_properties +gxml_serializable_tree_map_new +gxml_serializable_tree_map_node_name +gxml_serializable_tree_map_property_use_nick +gxml_serializable_tree_map_serialize +gxml_serializable_tree_map_serialize_property +gxml_serializable_tree_map_serialize_use_xml_node_value +gxml_serializable_tree_map_set_property_value +gxml_serializable_tree_map_transform_from_string +gxml_serializable_tree_map_transform_to_string +gxml_serialization_clear_cache +gxml_serialization_construct +gxml_serialization_deserialize_object +gxml_serialization_get_type +gxml_serialization_new +gxml_serialization_serialize_object +gxml_text_get_type +gxml_text_split_text +gxml_value_get_enumeration +gxml_value_set_enumeration +gxml_value_take_enumeration diff --git a/gxml/symbols.py b/gxml/symbols.py new file mode 100755 index 0000000000000000000000000000000000000000..d816e31282e4509d3fbf7ddab3d5a6e4d3f56b08 --- /dev/null +++ b/gxml/symbols.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 +# You must specify the file to parse as command line argument +import fileinput +import re, os +p = re.compile ('gxml_') +f = open ("gxml.symbols", 'w') +d = {'':''} +blacklist = ("error_quark", "gxml_last_error;", "gxml_warning") +for line in fileinput.input(): + bl = False + for b in blacklist: + if b in line: + bl = True + print ("found blacklist" + line) + if ('gxml_' in line and not ('(gxml_' in line) and not bl): + sp = line.split (" ") + for s in sp: + if ('gxml_' in s): + print("FOUND:" + s) + d[s] = s +ds = sorted (d) +for t in ds: + if t == '': + continue + print ("ADDING: " + t) + f.write (str(t)+'\n')