| 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? | ||||