From: John Darrington Date: Tue, 3 Sep 2013 16:59:20 +0000 (+0200) Subject: Dont try to build in gnumeric/odf reader if the libraries are not installed X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82c1097ab658e8c13ab3ad439970148defba6e19;p=pspp Dont try to build in gnumeric/odf reader if the libraries are not installed --- diff --git a/src/data/spreadsheet-reader.c b/src/data/spreadsheet-reader.c index 02e5c2d3c0..76dbe8cd11 100644 --- a/src/data/spreadsheet-reader.c +++ b/src/data/spreadsheet-reader.c @@ -35,12 +35,16 @@ spreadsheet_destroy (struct spreadsheet *s) { switch (s->type) { +#ifdef ODF_READ_SUPPORT case SPREADSHEET_ODS: ods_destroy (s); break; +#endif +#ifdef GNM_READ_SUPPORT case SPREADSHEET_GNUMERIC: gnumeric_destroy (s); break; +#endif default: NOT_REACHED (); break; @@ -51,10 +55,14 @@ spreadsheet_destroy (struct spreadsheet *s) struct casereader * spreadsheet_make_reader (struct spreadsheet *s, const struct spreadsheet_read_options *opts) { +#ifdef ODS_READ_SUPPORT if ( s->type == SPREADSHEET_ODS) return ods_make_reader (s, opts); +#endif +#ifdef GNM_READ_SUPPORT if ( s->type == SPREADSHEET_GNUMERIC) return gnumeric_make_reader (s, opts); +#endif return NULL; } @@ -62,11 +70,14 @@ spreadsheet_make_reader (struct spreadsheet *s, const struct spreadsheet_read_op const char * spreadsheet_get_sheet_name (struct spreadsheet *s, int n) { +#ifdef ODF_READ_SUPPORT if ( s->type == SPREADSHEET_ODS) return ods_get_sheet_name (s, n); - +#endif +#ifdef GNM_READ_SUPPORT if ( s->type == SPREADSHEET_GNUMERIC) return gnumeric_get_sheet_name (s, n); +#endif return NULL; } @@ -74,11 +85,15 @@ spreadsheet_get_sheet_name (struct spreadsheet *s, int n) char * spreadsheet_get_sheet_range (struct spreadsheet *s, int n) { +#ifdef ODF_READ_SUPPORT if ( s->type == SPREADSHEET_ODS) return ods_get_sheet_range (s, n); +#endif +#ifdef GNM_READ_SUPPORT if ( s->type == SPREADSHEET_GNUMERIC) return gnumeric_get_sheet_range (s, n); +#endif return NULL; } diff --git a/src/language/data-io/get-data.c b/src/language/data-io/get-data.c index 321bd887ea..2738cb29f1 100644 --- a/src/language/data-io/get-data.c +++ b/src/language/data-io/get-data.c @@ -46,6 +46,19 @@ #define _(msgid) gettext (msgid) #define N_(msgid) (msgid) + +#ifdef ODF_READ_SUPPORT +static const bool odf_read_support = true; +#else +static const bool odf_read_support = false; +#endif + +#ifdef GNM_READ_SUPPORT +static const bool gnm_read_support = true; +#else +static const bool gnm_read_support = false; +#endif + static bool parse_spreadsheet (struct lexer *lexer, char **filename, struct spreadsheet_read_options *opts); @@ -94,7 +107,7 @@ cmd_get_data (struct lexer *lexer, struct dataset *ds) if (!parse_spreadsheet (lexer, &filename, &opts)) goto error; - if ( 0 == strncasecmp (tok, "GNM", 3)) + if ( gnm_read_support && 0 == strncasecmp (tok, "GNM", 3)) { struct spreadsheet *spreadsheet = gnumeric_probe (filename, true); if (spreadsheet == NULL) @@ -103,7 +116,7 @@ cmd_get_data (struct lexer *lexer, struct dataset *ds) dict = spreadsheet->dict; gnumeric_destroy (spreadsheet); } - else if (0 == strncasecmp (tok, "ODS", 3)) + else if ( odf_read_support && 0 == strncasecmp (tok, "ODS", 3)) { struct spreadsheet *spreadsheet = ods_probe (filename, true); if (spreadsheet == NULL)