diff options
Diffstat (limited to 'solenv/bin/native-code.py')
-rwxr-xr-x | solenv/bin/native-code.py | 76 |
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 } |