Compare commits

...

3 Commits

9 changed files with 116 additions and 75 deletions

View File

@ -56,7 +56,7 @@ static int create_renderers(char **renderers,
char **output_file_names,
gboolean tex_layers,
gboolean tex_standalone,
const char *so_path,
const struct external_renderer_params *ext_params,
GList **renderer_list,
LayerSettings *layer_settings)
{
@ -100,11 +100,11 @@ static int create_renderers(char **renderers,
} else if (!strcmp(current_renderer, "svg")) {
output_renderer = GDS_RENDER_OUTPUT_RENDERER(cairo_renderer_new_svg());
} 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"));
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 {
continue;
}
@ -138,7 +138,7 @@ int command_line_convert_gds(const char *gds_name,
char **renderers,
char **output_file_names,
const char *layer_file,
const char *so_path,
struct external_renderer_params *ext_param,
gboolean tex_standalone,
gboolean tex_layers,
double scale)
@ -165,7 +165,7 @@ int command_line_convert_gds(const char *gds_name,
/* Create renderers */
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;

View File

@ -33,6 +33,21 @@
#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
* @param gds_name Path to GDS File
@ -40,7 +55,7 @@
* @param renderers Renderer ids
* @param output_file_names Output file names
* @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_layers TeX OCR layers
* @param scale Scale value
@ -51,7 +66,7 @@ int command_line_convert_gds(const char *gds_name,
char **renderers,
char **output_file_names,
const char *layer_file,
const char *so_path,
struct external_renderer_params *ext_param,
gboolean tex_standalone,
gboolean tex_layers,
double scale);

23
main.c
View File

@ -23,8 +23,6 @@
* @author Mario Hüttel <mario.huettel@gmx.net>
*/
#include <stdio.h>
#include <gtk/gtk.h>
#include <glib.h>
@ -265,9 +263,12 @@ int main(int argc, char **argv)
gchar *cellname = NULL;
gchar **renderer_args = NULL;
gboolean version = FALSE, pdf_standalone = FALSE, pdf_layers = FALSE;
gchar *custom_library_path = NULL;
int scale = 1000;
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");
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
@ -284,9 +285,11 @@ int main(int argc, char **argv)
{"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-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,
"Path to a custom shared object, that implements the necessary rendering functions", "PATH"},
{NULL}
{"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"},
{"render-lib-params", 'W', 0, G_OPTION_ARG_STRING, &so_render_params.cli_params,
_("Argument string passed to render lib"), NULL},
{NULL, 0, 0, 0, NULL, NULL, NULL}
};
context = g_option_context_new(_(" FILE - Convert GDS file <FILE> to graphic"));
@ -320,7 +323,7 @@ int main(int argc, char **argv)
app_status =
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 {
app_status = start_gui(argc, argv);
@ -339,8 +342,10 @@ ret_status:
g_free(mappingname);
if (cellname)
free(cellname);
if (custom_library_path)
free(custom_library_path);
if (so_render_params.so_path)
free(so_render_params.so_path);
if (so_render_params.cli_params)
g_free(so_render_params.cli_params);
return app_status;
}

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-10-25 20:27+0200\n"
"POT-Creation-Date: 2019-11-15 20:32+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-10-25 20:27+0200\n"
"POT-Creation-Date: 2019-11-15 20:32+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,34 +17,34 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../gds-render-gui.c:273
#: ../gds-render-gui.c:275
msgid "Acc. Date"
msgstr ""
#: ../gds-render-gui.c:314
#: ../gds-render-gui.c:318
msgid "Cancel"
msgstr ""
#: ../gds-render-gui.c:266
#: ../gds-render-gui.c:268
msgid "Cell"
msgstr ""
#: ../gds-render-gui.c:322
#: ../gds-render-gui.c:326
msgid "GDSII-Files"
msgstr ""
#: ../gds-render-gui.c:263
#: ../gds-render-gui.c:265
msgid "Library"
msgstr ""
#: ../gds-render-gui.c:270
#: ../gds-render-gui.c:272
msgid "Mod. Date"
msgstr ""
#: ../gds-render-gui.c:315
#: ../gds-render-gui.c:319
msgid "Open GDSII"
msgstr ""
#: ../gds-render-gui.c:312
#: ../gds-render-gui.c:316
msgid "Open GDSII File"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-10-25 20:27+0200\n"
"POT-Creation-Date: 2019-11-15 20:32+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../main.c:99
#: ../main.c:97
#, c-format
msgid ""
"\n"
@ -25,23 +25,27 @@ msgid ""
"Full git commit: %s"
msgstr ""
#: ../main.c:289
#: ../main.c:293
msgid " FILE - Convert GDS file <FILE> to graphic"
msgstr ""
#: ../main.c:223
#: ../main.c:221
msgid "About"
msgstr ""
#: ../main.c:282
msgid "Cell to render"
msgstr ""
#: ../main.c:284
msgid "Create PDF Layers (OCG)"
#: ../main.c:289
msgid "Argument string passed to render lib"
msgstr ""
#: ../main.c:283
msgid "Cell to render"
msgstr ""
#: ../main.c:285
msgid "Create PDF Layers (OCG)"
msgstr ""
#: ../main.c:284
msgid "Create standalone TeX"
msgstr ""
@ -49,34 +53,40 @@ msgstr ""
msgid "Divide output coordinates by <SCALE>"
msgstr ""
#: ../main.c:314
#: ../main.c:320
#, c-format
msgid "Ignored argument: %s"
msgstr ""
#: ../main.c:118
#: ../main.c:116
#, c-format
msgid "Logo could not be displayed: %s\n"
msgstr ""
#: ../main.c:294
#: ../main.c:298
#, c-format
msgid "Option parsing failed: %s\n"
msgstr ""
#: ../main.c:280
#: ../main.c:281
msgid "Output file path. Can be used multiple times."
msgstr ""
#: ../main.c:281
#: ../main.c:282
msgid "Path for Layer Mapping File"
msgstr ""
#: ../main.c:277
#: ../main.c:287
msgid ""
"Path to a custom shared object, that implements the necessary rendering "
"functions"
msgstr ""
#: ../main.c:276
msgid "Print version"
msgstr ""
#: ../main.c:222
#: ../main.c:220
msgid "Quit"
msgstr ""
@ -84,19 +94,19 @@ msgstr ""
msgid "Renderer to use. Can be used multiple times."
msgstr ""
#: ../main.c:305
#: ../main.c:311
#, c-format
msgid "Scale < 1 not allowed. Setting to 1\n"
msgstr ""
#: ../main.c:215
#: ../main.c:213
#, c-format
msgid ""
"There is already an open instance. Will open second window in that "
"instance.\n"
msgstr ""
#: ../main.c:247
#: ../main.c:245
#, c-format
msgid ""
"This is gds-render, version: %s\n"
@ -104,7 +114,7 @@ msgid ""
"For a list of supported commands execute with --help option.\n"
msgstr ""
#: ../main.c:98
#: ../main.c:96
msgid ""
"gds-render is a free tool for rendering GDS2 layout files into vector "
"graphics."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gds-render VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-10-22 23:02+0200\n"
"POT-Creation-Date: 2019-11-15 20:32+0100\n"
"PO-Revision-Date: 2019-10-18 23:10+0200\n"
"Last-Translator: <mario.huettel@gmx.net>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@ -17,34 +17,34 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../gds-render-gui.c:273
#: ../gds-render-gui.c:275
msgid "Acc. Date"
msgstr "Zugr. Datum"
#: ../gds-render-gui.c:314
#: ../gds-render-gui.c:318
msgid "Cancel"
msgstr "Abbruch"
#: ../gds-render-gui.c:266
#: ../gds-render-gui.c:268
msgid "Cell"
msgstr "Zelle"
#: ../gds-render-gui.c:322
#: ../gds-render-gui.c:326
msgid "GDSII-Files"
msgstr "GDSII-Dateiem"
#: ../gds-render-gui.c:263
#: ../gds-render-gui.c:265
msgid "Library"
msgstr "Bibliothek"
#: ../gds-render-gui.c:270
#: ../gds-render-gui.c:272
msgid "Mod. Date"
msgstr "Mod. Datum"
#: ../gds-render-gui.c:315
#: ../gds-render-gui.c:319
msgid "Open GDSII"
msgstr "GDSII öffnen"
#: ../gds-render-gui.c:312
#: ../gds-render-gui.c:316
msgid "Open GDSII File"
msgstr "GDSII Datei öffnen"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gds-render VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-10-18 23:03+0200\n"
"POT-Creation-Date: 2019-11-15 20:32+0100\n"
"PO-Revision-Date: 2019-10-18 20:49+0200\n"
"Last-Translator: <mario.huettel@gmx.net>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../main.c:99
#: ../main.c:97
#, c-format
msgid ""
"\n"
@ -28,23 +28,27 @@ msgstr ""
"\n"
"Vollständige git Commit-ID %s"
#: ../main.c:289
#: ../main.c:293
msgid " FILE - Convert GDS file <FILE> to graphic"
msgstr "Datei -- Konvertiere GDS Datei <Datei> zu Vektorgrafik"
#: ../main.c:223
#: ../main.c:221
msgid "About"
msgstr "Über"
#: ../main.c:282
#: ../main.c:289
msgid "Argument string passed to render lib"
msgstr "Argumente, die an externe Render-Bibliothek weitergegeben werden sollen"
#: ../main.c:283
msgid "Cell to render"
msgstr "Zu konvertierende Zelle"
#: ../main.c:284
#: ../main.c:285
msgid "Create PDF Layers (OCG)"
msgstr "Generiere PDF Layer (OCG)"
#: ../main.c:283
#: ../main.c:284
msgid "Create standalone TeX"
msgstr "Generiere alleinstehendes TeX"
@ -52,34 +56,41 @@ msgstr "Generiere alleinstehendes TeX"
msgid "Divide output coordinates by <SCALE>"
msgstr "Skaliere Ausgabekoordinaten um Faktor <SCALE> herab"
#: ../main.c:314
#: ../main.c:320
#, c-format
msgid "Ignored argument: %s"
msgstr "Ignoriertes Argument: %s"
#: ../main.c:118
#: ../main.c:116
#, c-format
msgid "Logo could not be displayed: %s\n"
msgstr "Logo konnte nicht angezeigt werden: %s\n"
#: ../main.c:294
#: ../main.c:298
#, c-format
msgid "Option parsing failed: %s\n"
msgstr "Übergabeparameterkonvertierung fehlgeschlagen: %s\n"
#: ../main.c:280
#: ../main.c:281
msgid "Output file path. Can be used multiple times."
msgstr "Ausgabedatei. Kann mehrfach angegeben werden."
#: ../main.c:281
#: ../main.c:282
msgid "Path for Layer Mapping File"
msgstr "Pfad zur \"Layer Mapping\"-Datei"
#: ../main.c:277
#: ../main.c:287
msgid ""
"Path to a custom shared object, that implements the necessary rendering "
"functions"
msgstr ""
"Pfad zu einer Programmbibliothek, die die notwendigen Renderingfunktionen bereitstellt"
#: ../main.c:276
msgid "Print version"
msgstr "Programmversion aufgeben"
#: ../main.c:222
#: ../main.c:220
msgid "Quit"
msgstr "Beenden"
@ -87,12 +98,12 @@ msgstr "Beenden"
msgid "Renderer to use. Can be used multiple times."
msgstr "Gewünschter Renderer. Kann mehrfach angegeben werden."
#: ../main.c:305
#: ../main.c:311
#, c-format
msgid "Scale < 1 not allowed. Setting to 1\n"
msgstr "Skalierung < 1 nicht erlaubt. Rückfallwert 1 benutzt.\n"
#: ../main.c:215
#: ../main.c:213
#, c-format
msgid ""
"There is already an open instance. Will open second window in that "
@ -101,7 +112,7 @@ msgstr ""
"Es is bereits eine Instanz dieses Programms geöffnet. Ein weiteres Fenster "
"in dieser wird geöffnet.\n"
#: ../main.c:247
#: ../main.c:245
#, c-format
msgid ""
"This is gds-render, version: %s\n"
@ -113,7 +124,7 @@ msgstr ""
"Um eine Liste der unterstützten Befehle zu erhalten, bitte mit der Option --"
"help ausführen.\n"
#: ../main.c:98
#: ../main.c:96
msgid ""
"gds-render is a free tool for rendering GDS2 layout files into vector "
"graphics."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-10-25 20:27+0200\n"
"POT-Creation-Date: 2019-11-15 20:32+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"