summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@collabora.com>2014-01-09 09:20:55 +0100
committerMatúš Kukan <matus.kukan@collabora.com>2014-01-09 11:59:39 +0100
commit27014f48f47b1c90699d51dbf665cc57c3de1705 (patch)
tree232e33e67d5227e535d7a840e4426e33f78f180c
parentb85d7b380af2cb4ea8b36e864d81c5284cd6d2ec (diff)
native code generator: Use groups for constructors too.
Change-Id: I42570b4b7b68e36cab1286948d03df0c2f0d4103
-rwxr-xr-xsolenv/bin/native-code.py76
1 files changed, 57 insertions, 19 deletions
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index ba8ebc26db36..603a849d11b5 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -13,11 +13,8 @@ from optparse import OptionParser
# relevant function sections will be referenced in lo_get_factory_map().
# That prevents garbage collector to ignore them as unused.
-# We need the same groups for new constructor functions, started in
-# ae3a0c8da50b36db395984637f5ad74d3b4887bc
-# For now, there are only constructor functions for implementations in 'core'
-# group, so no need for other groups, core_constructor_list is enough.
-# (These functions are referenced in lo_get_constructor_map().)
+# The same groups are used for constructor based implementations
+# referenced in lo_get_constructor_map().
core_factory_list = [
("libembobj.a", "embobj_component_getFactory"),
@@ -60,6 +57,16 @@ core_factory_list = [
("libxstor.a", "xstor_component_getFactory"),
]
+core_constructor_list = [
+# sax/source/expatwrap/expwrap.component
+ "com_sun_star_comp_extensions_xml_sax_ParserExpat",
+ "com_sun_star_comp_extensions_xml_sax_FastParser",
+# svtools/util/svt.component
+ "com_sun_star_comp_graphic_GraphicProvider_get_implementation",
+# svx/util/svx.component
+ "com_sun_star_drawing_EnhancedCustomShapeEngine_implementation_getFactory",
+ ]
+
extended_core_factory_list = core_factory_list + [
("libanimcorelo.a", "animcore_component_getFactory"),
("libavmedialo.a", "avmedia_component_getFactory"),
@@ -77,23 +84,35 @@ extended_core_factory_list = core_factory_list + [
("libxmlfdlo.a", "xmlfd_component_getFactory"),
]
+extended_core_constructor_list = core_constructor_list + [
+ ]
+
base_core_factory_list = [
("libdbalo.a", "dba_component_getFactory"),
("libdbaxmllo.a", "dbaxml_component_getFactory"),
]
+base_core_constructor_list = [
+ ]
+
calc_core_factory_list = [
("libscdlo.a", "scd_component_getFactory"),
("libscfiltlo.a", "scfilt_component_getFactory"),
("libsclo.a", "sc_component_getFactory"),
]
+calc_core_constructor_list = [
+ ]
+
calc_factory_list = calc_core_factory_list + [
("libanalysislo.a", "analysis_component_getFactory"),
("libdatelo.a", "date_component_getFactory"),
("libpricinglo.a", "pricing_component_getFactory"),
]
+calc_constructor_list = calc_core_constructor_list + [
+ ]
+
draw_core_factory_list = [
("libsddlo.a", "sdd_component_getFactory"),
("libsdlo.a", "sd_component_getFactory"),
@@ -101,23 +120,35 @@ draw_core_factory_list = [
("libwpftdrawlo.a", "wpftdraw_component_getFactory"),
]
+draw_core_constructor_list = [
+ ]
+
math_factory_list = [
("libsmdlo.a", "smd_component_getFactory"),
("libsmlo.a", "sm_component_getFactory"),
]
+math_constructor_list = [
+ ]
+
writer_core_factory_list = [
("libswdlo.a", "swd_component_getFactory"),
("libswlo.a", "sw_component_getFactory"),
("libwriterfilterlo.a", "writerfilter_component_getFactory"),
]
+writer_core_constructor_list = [
+ ]
+
writer_factory_list = writer_core_factory_list + [
("libhwplo.a", "hwp_component_getFactory"),
("libt602filterlo.a", "t602filter_component_getFactory"),
("libwpftwriterlo.a", "wpftwriter_component_getFactory"),
]
+writer_constructor_list = writer_core_constructor_list + [
+ ]
+
factory_map = {
'core' : core_factory_list,
'extended_core' : extended_core_factory_list,
@@ -130,15 +161,17 @@ factory_map = {
'writer' : writer_factory_list,
}
-core_constructor_list = [
-# sax/source/expatwrap/expwrap.component
- "com_sun_star_comp_extensions_xml_sax_ParserExpat",
- "com_sun_star_comp_extensions_xml_sax_FastParser",
-# svtools/util/svt.component
- "com_sun_star_comp_graphic_GraphicProvider_get_implementation",
-# svx/util/svx.component
- "com_sun_star_drawing_EnhancedCustomShapeEngine_implementation_getFactory",
- ]
+constructor_map = {
+ 'core' : core_constructor_list,
+ 'extended_core' : extended_core_constructor_list,
+ 'base_core' : base_core_constructor_list,
+ 'calc_core' : calc_core_constructor_list,
+ 'calc' : calc_constructor_list,
+ 'draw_core' : draw_core_constructor_list,
+ 'math' : math_constructor_list,
+ 'writer_core' : writer_core_constructor_list,
+ 'writer' : writer_constructor_list,
+ }
opts = OptionParser()
opts.add_option("-j", "--java-guard", action="store_true", help="include external java functions", dest="java", default=False)
@@ -148,7 +181,7 @@ opts.add_option("-g", "--group", action="append", help="group of implementations
print ("""/*
* This is a generated file. Do not edit.
- * file generated by solenc/bin/native-code.py
+ * file generated by solenv/bin/native-code.py
*/
#include <osl/detail/component-mapping.h>
@@ -162,8 +195,10 @@ if options.groups:
print ('void * '+factory_function+'( const char* , void* , void* );')
print ('')
-for constructor in core_constructor_list:
- print ('void * '+constructor+'( void *, void * );')
+if options.groups:
+ for constructor_group in options.groups:
+ for constructor in constructor_map[constructor_group]:
+ print ('void * '+constructor+'( void *, void * );')
print ("""
const lib_to_factory_mapping *
@@ -199,8 +234,11 @@ const lib_to_constructor_mapping *
lo_get_constructor_map(void)
{
static lib_to_constructor_mapping map[] = {""")
-for constructor in core_constructor_list:
- print (' { "' +constructor+ '", ' +constructor+ ' },')
+
+if options.groups:
+ for constructor_group in options.groups:
+ for constructor in constructor_map[constructor_group]:
+ print (' { "' +constructor+ '", ' +constructor+ ' },')
print ("""
{ 0, 0 }