Pass command line parameters for shared object renderer to command line convert struct
This commit is contained in:
parent
f02a720f99
commit
c186d3cdb3
@ -56,7 +56,7 @@ static int create_renderers(char **renderers,
|
|||||||
char **output_file_names,
|
char **output_file_names,
|
||||||
gboolean tex_layers,
|
gboolean tex_layers,
|
||||||
gboolean tex_standalone,
|
gboolean tex_standalone,
|
||||||
const char *so_path,
|
const struct external_renderer_params *ext_params,
|
||||||
GList **renderer_list,
|
GList **renderer_list,
|
||||||
LayerSettings *layer_settings)
|
LayerSettings *layer_settings)
|
||||||
{
|
{
|
||||||
@ -100,11 +100,11 @@ static int create_renderers(char **renderers,
|
|||||||
} else if (!strcmp(current_renderer, "svg")) {
|
} else if (!strcmp(current_renderer, "svg")) {
|
||||||
output_renderer = GDS_RENDER_OUTPUT_RENDERER(cairo_renderer_new_svg());
|
output_renderer = GDS_RENDER_OUTPUT_RENDERER(cairo_renderer_new_svg());
|
||||||
} else if (!strcmp(current_renderer, "ext")) {
|
} else if (!strcmp(current_renderer, "ext")) {
|
||||||
if (!so_path) {
|
if (!ext_params->so_path) {
|
||||||
fprintf(stderr, _("Please specify shared object for external renderer. Will ignore this renderer.\n"));
|
fprintf(stderr, _("Please specify shared object for external renderer. Will ignore this renderer.\n"));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
output_renderer = GDS_RENDER_OUTPUT_RENDERER(external_renderer_new_with_so(so_path));
|
output_renderer = GDS_RENDER_OUTPUT_RENDERER(external_renderer_new_with_so(ext_params->so_path));
|
||||||
} else {
|
} else {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -138,7 +138,7 @@ int command_line_convert_gds(const char *gds_name,
|
|||||||
char **renderers,
|
char **renderers,
|
||||||
char **output_file_names,
|
char **output_file_names,
|
||||||
const char *layer_file,
|
const char *layer_file,
|
||||||
const char *so_path,
|
struct external_renderer_params *ext_param,
|
||||||
gboolean tex_standalone,
|
gboolean tex_standalone,
|
||||||
gboolean tex_layers,
|
gboolean tex_layers,
|
||||||
double scale)
|
double scale)
|
||||||
@ -165,7 +165,7 @@ int command_line_convert_gds(const char *gds_name,
|
|||||||
|
|
||||||
/* Create renderers */
|
/* Create renderers */
|
||||||
if (create_renderers(renderers, output_file_names, tex_layers, tex_standalone,
|
if (create_renderers(renderers, output_file_names, tex_layers, tex_standalone,
|
||||||
so_path, &renderer_list, layer_sett))
|
ext_param, &renderer_list, layer_sett))
|
||||||
goto ret_destroy_layer_mapping;
|
goto ret_destroy_layer_mapping;
|
||||||
|
|
||||||
|
|
||||||
|
@ -33,6 +33,21 @@
|
|||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief External renderer paramameters to command line renderer
|
||||||
|
*/
|
||||||
|
struct external_renderer_params {
|
||||||
|
/**
|
||||||
|
* @brief Path to shared object
|
||||||
|
*/
|
||||||
|
char *so_path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Command line parameters given
|
||||||
|
*/
|
||||||
|
char *cli_params;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Convert GDS according to command line parameters
|
* @brief Convert GDS according to command line parameters
|
||||||
* @param gds_name Path to GDS File
|
* @param gds_name Path to GDS File
|
||||||
@ -40,7 +55,7 @@
|
|||||||
* @param renderers Renderer ids
|
* @param renderers Renderer ids
|
||||||
* @param output_file_names Output file names
|
* @param output_file_names Output file names
|
||||||
* @param layer_file Layer mapping file
|
* @param layer_file Layer mapping file
|
||||||
* @param so_path Shared object
|
* @param ext_params Settings for external library renderer
|
||||||
* @param tex_standalone Standalone TeX
|
* @param tex_standalone Standalone TeX
|
||||||
* @param tex_layers TeX OCR layers
|
* @param tex_layers TeX OCR layers
|
||||||
* @param scale Scale value
|
* @param scale Scale value
|
||||||
@ -51,7 +66,7 @@ int command_line_convert_gds(const char *gds_name,
|
|||||||
char **renderers,
|
char **renderers,
|
||||||
char **output_file_names,
|
char **output_file_names,
|
||||||
const char *layer_file,
|
const char *layer_file,
|
||||||
const char *so_path,
|
struct external_renderer_params *ext_param,
|
||||||
gboolean tex_standalone,
|
gboolean tex_standalone,
|
||||||
gboolean tex_layers,
|
gboolean tex_layers,
|
||||||
double scale);
|
double scale);
|
||||||
|
20
main.c
20
main.c
@ -261,12 +261,14 @@ int main(int argc, char **argv)
|
|||||||
gchar **output_paths = NULL;
|
gchar **output_paths = NULL;
|
||||||
gchar *mappingname = NULL;
|
gchar *mappingname = NULL;
|
||||||
gchar *cellname = NULL;
|
gchar *cellname = NULL;
|
||||||
gchar *render_lib_param_string = NULL;
|
|
||||||
gchar **renderer_args = NULL;
|
gchar **renderer_args = NULL;
|
||||||
gboolean version = FALSE, pdf_standalone = FALSE, pdf_layers = FALSE;
|
gboolean version = FALSE, pdf_standalone = FALSE, pdf_layers = FALSE;
|
||||||
gchar *custom_library_path = NULL;
|
|
||||||
int scale = 1000;
|
int scale = 1000;
|
||||||
int app_status = 0;
|
int app_status = 0;
|
||||||
|
struct external_renderer_params so_render_params;
|
||||||
|
|
||||||
|
so_render_params.so_path = NULL;
|
||||||
|
so_render_params.cli_params = NULL;
|
||||||
|
|
||||||
bindtextdomain(GETTEXT_PACKAGE, LOCALEDATADIR "/locale");
|
bindtextdomain(GETTEXT_PACKAGE, LOCALEDATADIR "/locale");
|
||||||
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
|
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
|
||||||
@ -283,9 +285,9 @@ int main(int argc, char **argv)
|
|||||||
{"cell", 'c', 0, G_OPTION_ARG_STRING, &cellname, _("Cell to render"), "NAME" },
|
{"cell", 'c', 0, G_OPTION_ARG_STRING, &cellname, _("Cell to render"), "NAME" },
|
||||||
{"tex-standalone", 'a', 0, G_OPTION_ARG_NONE, &pdf_standalone, _("Create standalone TeX"), NULL },
|
{"tex-standalone", 'a', 0, G_OPTION_ARG_NONE, &pdf_standalone, _("Create standalone TeX"), NULL },
|
||||||
{"tex-layers", 'l', 0, G_OPTION_ARG_NONE, &pdf_layers, _("Create PDF Layers (OCG)"), NULL },
|
{"tex-layers", 'l', 0, G_OPTION_ARG_NONE, &pdf_layers, _("Create PDF Layers (OCG)"), NULL },
|
||||||
{"custom-render-lib", 'P', 0, G_OPTION_ARG_FILENAME, &custom_library_path,
|
{"custom-render-lib", 'P', 0, G_OPTION_ARG_FILENAME, &so_render_params.so_path,
|
||||||
_("Path to a custom shared object, that implements the necessary rendering functions"), "PATH"},
|
_("Path to a custom shared object, that implements the necessary rendering functions"), "PATH"},
|
||||||
{"render-lib-params", 'W', 0, G_OPTION_ARG_STRING, &render_lib_param_string,
|
{"render-lib-params", 'W', 0, G_OPTION_ARG_STRING, &so_render_params.cli_params,
|
||||||
_("Argument string passed to render lib"), NULL},
|
_("Argument string passed to render lib"), NULL},
|
||||||
{NULL, 0, 0, 0, NULL, NULL, NULL}
|
{NULL, 0, 0, 0, NULL, NULL, NULL}
|
||||||
};
|
};
|
||||||
@ -321,7 +323,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
app_status =
|
app_status =
|
||||||
command_line_convert_gds(gds_name, cellname, renderer_args, output_paths, mappingname,
|
command_line_convert_gds(gds_name, cellname, renderer_args, output_paths, mappingname,
|
||||||
custom_library_path, pdf_standalone, pdf_layers, scale);
|
&so_render_params, pdf_standalone, pdf_layers, scale);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
app_status = start_gui(argc, argv);
|
app_status = start_gui(argc, argv);
|
||||||
@ -340,10 +342,10 @@ ret_status:
|
|||||||
g_free(mappingname);
|
g_free(mappingname);
|
||||||
if (cellname)
|
if (cellname)
|
||||||
free(cellname);
|
free(cellname);
|
||||||
if (custom_library_path)
|
if (so_render_params.so_path)
|
||||||
free(custom_library_path);
|
free(so_render_params.so_path);
|
||||||
if (render_lib_param_string)
|
if (so_render_params.cli_params)
|
||||||
g_free(render_lib_param_string);
|
g_free(so_render_params.cli_params);
|
||||||
|
|
||||||
return app_status;
|
return app_status;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user