Dont try to build in gnumeric/odf reader if the libraries are not installed
authorJohn Darrington <john@darrington.wattle.id.au>
Tue, 3 Sep 2013 16:59:20 +0000 (18:59 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Tue, 3 Sep 2013 16:59:20 +0000 (18:59 +0200)
src/data/spreadsheet-reader.c
src/language/data-io/get-data.c

index 02e5c2d3c04b18e3cc38dcce5359ac9fbbada59d..76dbe8cd11f2fdec1f8f35f8eb2ed63f6d81173a 100644 (file)
@@ -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;
 }
index 321bd887ea3690c91e7b0a916b7cd24f8b10443a..2738cb29f1a277bd73cacdeb427b303c27eb41b3 100644 (file)
 #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)