View Ticket
Not logged in
2020-08-25
08:25 Ticket [de78c7158e] 2.1.0-beta1 fails to build when using --disable-xlsxwriter status still Open with 3 other changes artifact: 69c6c131dd user: anonymous
2020-08-03
06:44 Ticket [de78c7158e]: 5 changes artifact: c6850e1c84 user: anonymous
06:23 New ticket [de78c7158e]. artifact: a8d864f6f1 user: anonymous

Ticket Hash: de78c7158e87e94dd5a91d86e027569b52e9ef4f
Title: 2.1.0-beta1 fails to build when using --disable-xlsxwriter
Status: Open Type: Build_Problem
Severity: Important Priority: Immediate
Subsystem: Resolution: Open
Last Modified: 2020-08-25 08:25:16
Version Found In: 2.1.0-beta1
User Comments:
anonymous added on 2020-08-03 06:23:21:
The Debian package build of 2.1.0-beta1 failed to build due to undefined references:

/usr/bin/ld: ResultSetView.o: in function `MyResultSetView::OnCmdExpXlsx(wxCommandEvent&)':
./ResultSetView.cpp:3704: undefined reference to `MyFrame::DoExportXLSX(wxString&, wxString&)'
/usr/bin/ld: TableTree.o: in function `MyTableTree::OnCmdDumpXlsx(wxCommandEvent&)':
./TableTree.cpp:7337: undefined reference to `MyFrame::DoExportXLSX(wxString&, wxString&)'

The package uses --disable-xlsxwriter because the library is not available.

It seems that the code calling the xlsx functions needs to be made conditional.

anonymous added on 2020-08-03 06:44:38:
The following patch fixes the issue:

--- a/ResultSetView.cpp
+++ b/ResultSetView.cpp
@@ -185,8 +185,10 @@ wxPanel(parent, id, wxDefaultPosition, w
           (wxObjectEventFunction) & MyResultSetView::OnCmdExpSylk);
   Connect(Grid_ExpDbf, wxEVT_COMMAND_MENU_SELECTED,
           (wxObjectEventFunction) & MyResultSetView::OnCmdExpDbf);
+#ifdef ENABLE_XLSXWRITER        // only if XlsxWriter is supported
   Connect(Grid_ExpXlsx, wxEVT_COMMAND_MENU_SELECTED,
           (wxObjectEventFunction) & MyResultSetView::OnCmdExpXlsx);
+#endif // end XlsxWriter
   Connect(Grid_Filter, wxEVT_COMMAND_MENU_SELECTED,
           (wxObjectEventFunction) & MyResultSetView::OnCmdFilter);
   Connect(Grid_MapShow, wxEVT_COMMAND_MENU_SELECTED,
@@ -1976,10 +1978,12 @@ done:
   exportMenu->Append(menuItem);
   menuItem = new wxMenuItem(exportMenu, Grid_ExpDbf, wxT("as &DBF archive"));
   exportMenu->Append(menuItem);
+#ifdef ENABLE_XLSXWRITER        // only if XlsxWriter is supported
   menuItem =
     new wxMenuItem(exportMenu, Grid_ExpXlsx,
                    wxT("as MS &Excell Spreadsheet (XLSX)"));
   exportMenu->Append(menuItem);
+#endif // end XlsxWriter
   menu.AppendSubMenu(exportMenu, wxT("&Export ResultSet"));
   menu.AppendSeparator();
   if (MainFrame->IsValidSqlFilter() == true)
@@ -3670,6 +3674,7 @@ void MyResultSetView::OnCmdExpDbf(wxComm
     }
 }
 
+#ifdef ENABLE_XLSXWRITER        // only if XlsxWriter is supported
 void MyResultSetView::OnCmdExpXlsx(wxCommandEvent & WXUNUSED(event))
 {
 //
@@ -3705,3 +3710,4 @@ void MyResultSetView::OnCmdExpXlsx(wxCom
       ::wxEndBusyCursor();
     }
 }
+#endif // end XlsxWriter
--- a/TableTree.cpp
+++ b/TableTree.cpp
@@ -317,8 +317,10 @@ MyTableTree::MyTableTree(MyFrame * paren
           (wxObjectEventFunction) & MyTableTree::OnCmdDumpSylk);
   Connect(Tree_DumpDbf, wxEVT_COMMAND_MENU_SELECTED,
           (wxObjectEventFunction) & MyTableTree::OnCmdDumpDbf);
+#ifdef ENABLE_XLSXWRITER        // only if XlsxWriter is supported
   Connect(Tree_DumpXlsx, wxEVT_COMMAND_MENU_SELECTED,
           (wxObjectEventFunction) & MyTableTree::OnCmdDumpXlsx);
+#endif // end XlsxWriter
   Connect(Tree_DumpPostGIS, wxEVT_COMMAND_MENU_SELECTED,
           (wxObjectEventFunction) & MyTableTree::OnCmdDumpPostGIS);
   Connect(Tree_Edit, wxEVT_COMMAND_MENU_SELECTED,
@@ -3091,9 +3093,11 @@ void MyTableTree::DoMainTableContextMenu
   menu.Append(menuItem);
   menuItem = new wxMenuItem(&menu, Tree_DumpDbf, wxT("Export as &DBF"));
   menu.Append(menuItem);
+#ifdef ENABLE_XLSXWRITER        // only if XlsxWriter is supported
   menuItem =
     new wxMenuItem(&menu, Tree_DumpXlsx, wxT("Export as MS &XLSX Spreadsheet"));
   menu.Append(menuItem);
+#endif // end XlsxWriter
   menuItem =
     new wxMenuItem(&menu, Tree_DumpPostGIS, wxT("SQL Dump for &PostGIS"));
   menu.Append(menuItem);
@@ -3164,9 +3168,11 @@ void MyTableTree::DoMainViewContextMenu(
   menu.Append(menuItem);
   menuItem = new wxMenuItem(&menu, Tree_DumpDbf, wxT("Export as &DBF"));
   menu.Append(menuItem);
+#ifdef ENABLE_XLSXWRITER        // only if XlsxWriter is supported
   menuItem =
     new wxMenuItem(&menu, Tree_DumpXlsx, wxT("Export as MS &XLSX Spreadsheet"));
   menu.Append(menuItem);
+#endif // end XlsxWriter
   menuItem =
     new wxMenuItem(&menu, Tree_DumpPostGIS, wxT("SQL Dump for &PostGIS"));
   menu.Append(menuItem);
@@ -3243,9 +3249,11 @@ void MyTableTree::DoAttachedTableContext
   menu.Append(menuItem);
   menuItem = new wxMenuItem(&menu, Tree_DumpDbf, wxT("Export as &DBF"));
   menu.Append(menuItem);
+#ifdef ENABLE_XLSXWRITER        // only if XlsxWriter is supported
   menuItem =
     new wxMenuItem(&menu, Tree_DumpXlsx, wxT("Export as MS &XLSX Spreadsheet"));
   menu.Append(menuItem);
+#endif // end XlsxWriter
   menuItem =
     new wxMenuItem(&menu, Tree_DumpPostGIS, wxT("SQL Dump for &PostGIS"));
   menu.Append(menuItem);
@@ -3294,9 +3302,11 @@ void MyTableTree::DoAttachedViewContextM
   menu.Append(menuItem);
   menuItem = new wxMenuItem(&menu, Tree_DumpDbf, wxT("Export as &DBF"));
   menu.Append(menuItem);
+#ifdef ENABLE_XLSXWRITER        // only if XlsxWriter is supported
   menuItem =
     new wxMenuItem(&menu, Tree_DumpXlsx, wxT("Export as MS &XLSX Spreadsheet"));
   menu.Append(menuItem);
+#endif // end XlsxWriter
   menuItem =
     new wxMenuItem(&menu, Tree_DumpPostGIS, wxT("SQL Dump for &PostGIS"));
   menu.Append(menuItem);
@@ -7300,6 +7310,7 @@ void MyTableTree::OnCmdDumpDbf(wxCommand
     }
 }
 
+#ifdef ENABLE_XLSXWRITER        // only if XlsxWriter is supported
 void MyTableTree::OnCmdDumpXlsx(wxCommandEvent & WXUNUSED(event))
 {
 //
@@ -7338,6 +7349,7 @@ void MyTableTree::OnCmdDumpXlsx(wxComman
       ::wxEndBusyCursor();
     }
 }
+#endif // end XlsxWriter
 
 void MyTableTree::OnCmdDumpPostGIS(wxCommandEvent & WXUNUSED(event))
 {

anonymous added on 2020-08-25 08:25:16:
8b0e381ae3961077 has some changes to address this issue, but leaves the events connected.

Why ifdef those out too like the above patch does?