View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0017259 | Scribus | Build System | public | 2024-08-17 18:17 | 2024-09-16 20:54 |
Reporter | placroix | Assigned To | nitramr | ||
Priority | normal | Severity | minor | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Platform | linux | OS | Linux Mint | OS Version | 22 |
Product Version | 1.7.0.svn | ||||
Fixed in Version | 1.7.0.svn | ||||
Summary | 0017259: Linking CXX executable scribus failed | ||||
Description | Linking CXX executable scribus failed, error is : [ 64%] Linking CXX executable scribus /bin/ld : CMakeFiles/scribus.dir/scribuscore.cpp.o : dans la fonction « ScribusCore::startGUI(bool, bool, bool, QString const&) » : scribuscore.cpp:(.text+0x4e0a) : référence indéfinie vers « ScribusIndigoMainWindow::ScribusIndigoMainWindow(QWidget*) » /bin/ld : scribuscore.cpp:(.text+0x4e12) : référence indéfinie vers « ScribusIndigoMainWindow::initScIMW() » collect2: error: ld returned 1 exit status make[2]: *** [scribus/CMakeFiles/scribus.dir/build.make:9290 : scribus/scribus] Erreur 1 make[1]: *** [CMakeFiles/Makefile2:2189 : scribus/CMakeFiles/scribus.dir/all] Erreur 2 make: *** [Makefile:156 : all] Erreur 2 | ||||
Additional Information | Downoaded witn snv checkout When downloaded from git : no build error | ||||
Tags | No tags attached. | ||||
Patch | No | ||||
|
Unable to reproduce with today checkout from trunk. You likely have leftover from old builds in your build directory. Delete your build directory completely and run cmake again. |
|
I was able to reproduce it with r26254 Looks like the scribusindigomainwindow is comment out from CMakeLists_Sources.txt #if(WANT_QTADS) # set(SCRIBUS_SOURCES # ${SCRIBUS_SOURCES} # scribusindigomainwindow.cpp # ) #endif() Anyway, with current svn version we don't need that window anymore. The attached patch removes this window. cleanup_indigo_mainwindow.patch (11,034 bytes)
Index: scribus/CMakeLists_Sources.txt =================================================================== --- scribus/CMakeLists_Sources.txt (Revision 26254) +++ scribus/CMakeLists_Sources.txt (Arbeitskopie) @@ -569,13 +569,6 @@ ${SCRIBUS_JPEGXL_SRC} ) -#if(WANT_QTADS) -# set(SCRIBUS_SOURCES -# ${SCRIBUS_SOURCES} -# scribusindigomainwindow.cpp -# ) -#endif() - if(NOT HAVE_HYPHEN) include_directories(third_party/hyphen) set(SCRIBUS_SOURCES Index: scribus/scribusapp.cpp =================================================================== --- scribus/scribusapp.cpp (Revision 26254) +++ scribus/scribusapp.cpp (Arbeitskopie) @@ -238,10 +238,6 @@ { useGUI = false; } - else if (arg == ARG_INDIGO_UI || arg == ARG_INDIGO_UI_SHORT) - { - m_use_indigo_ui = true; - } else if (arg == ARG_FONTINFO || arg == ARG_FONTINFO_SHORT) { m_showFontInfo = true; @@ -357,7 +353,7 @@ return EXIT_FAILURE; ScCore = m_ScCore; processEvents(QEventLoop::ExcludeUserInputEvents|QEventLoop::ExcludeSocketNotifiers, 1000); - ScCore->init(useGUI, m_use_indigo_ui, m_filesToLoad); + ScCore->init(useGUI, m_filesToLoad); processEvents(); /* TODO: * When Scribus is truly able to run without GUI Index: scribus/scribusapp.h =================================================================== --- scribus/scribusapp.h (Revision 26254) +++ scribus/scribusapp.h (Arbeitskopie) @@ -106,7 +106,6 @@ bool m_showSplash {true}; bool m_showFontInfo {false}; bool m_showProfileInfo {false}; - bool m_use_indigo_ui {false}; //! \brief If is there user given prefs file... QString m_prefsUserDir; QList<QString> m_filesToLoad; Index: scribus/scribuscore.cpp =================================================================== --- scribus/scribuscore.cpp (Revision 26254) +++ scribus/scribuscore.cpp (Arbeitskopie) @@ -47,11 +47,6 @@ #include "util_debug.h" #include "util_ghostscript.h" -#ifdef HAVE_QTADS -#include "scribusindigomainwindow.h" -#endif - - //extern ScribusQApp* ScQApp; ScribusCore::ScribusCore() : defaultEngine(colorMgmtEngineFactory.createDefaultEngine()), @@ -66,14 +61,13 @@ ScribusCore::~ScribusCore() { - if(!m_use_indigo_ui) + + while (m_ScMWList.count() > 0) { - while (m_ScMWList.count() > 0) - { - ScribusMainWindow *mainWindow = m_ScMWList.takeAt(0); - delete mainWindow; - } + ScribusMainWindow *mainWindow = m_ScMWList.takeAt(0); + delete mainWindow; } + delete pluginManager; } @@ -86,10 +80,9 @@ } #endif -int ScribusCore::init(bool useGUI, bool use_indigo_ui, const QList<QString>& filesToUse) +int ScribusCore::init(bool useGUI, const QList<QString>& filesToUse) { m_useGUI = useGUI; - m_use_indigo_ui = use_indigo_ui; m_Files = filesToUse; #if !defined(NDEBUG) && !defined(_WIN32) qInstallMessageHandler( & abort_on_error ); @@ -99,77 +92,56 @@ int ScribusCore::startGUI(bool showSplash, bool showFontInfo, bool showProfileInfo, const QString& newGuiLanguage) { - if (!m_use_indigo_ui) - { - auto* scribus = new ScribusMainWindow(); - Q_CHECK_PTR(scribus); - if (!scribus) - return EXIT_FAILURE; - m_ScMWList.append(scribus); - int retVal = initScribusCore(showSplash, showFontInfo, showProfileInfo, newGuiLanguage); - if (retVal == EXIT_FAILURE) - return EXIT_FAILURE; + auto* scribus = new ScribusMainWindow(); + Q_CHECK_PTR(scribus); + if (!scribus) + return EXIT_FAILURE; + m_ScMWList.append(scribus); + int retVal = initScribusCore(showSplash, showFontInfo, showProfileInfo, newGuiLanguage); + if (retVal == EXIT_FAILURE) + return EXIT_FAILURE; - retVal = scribus->initScMW(true); - if (retVal == EXIT_FAILURE) - return EXIT_FAILURE; + retVal = scribus->initScMW(true); + if (retVal == EXIT_FAILURE) + return EXIT_FAILURE; - closeSplash(); - m_scribusInitialized = true; - connect(ScQApp, SIGNAL(lastWindowClosed()), ScQApp, SLOT(quit())); + closeSplash(); + m_scribusInitialized = true; + connect(ScQApp, SIGNAL(lastWindowClosed()), ScQApp, SLOT(quit())); - scribus->show(); - scribus->setupMainWindow(); + scribus->show(); + scribus->setupMainWindow(); - QStringList recoverFiles = scribus->findRecoverableFile(); - int subsRet = scribus->ShowSubs(); - if (subsRet == 0) + QStringList recoverFiles = scribus->findRecoverableFile(); + int subsRet = scribus->ShowSubs(); + if (subsRet == 0) + { + if (!m_Files.isEmpty()) { - if (!m_Files.isEmpty()) + for (int i = 0; i < m_Files.size(); ++i) + scribus->loadDoc(m_Files.at(i)); + } + else if ((recoverFiles.count() > 0) && usingGUI()) + { + if (!scribus->recoverFile(recoverFiles)) { - for (int i = 0; i < m_Files.size(); ++i) - scribus->loadDoc(m_Files.at(i)); - } - else if ((recoverFiles.count() > 0) && usingGUI()) - { - if (!scribus->recoverFile(recoverFiles)) - { - if (PrefsManager::instance().appPrefs.uiPrefs.showStartupDialog) - scribus->startUpDialog(); - } - } - else - { - if (PrefsManager::instance().appPrefs.uiPrefs.showStartupDialog && usingGUI()) + if (PrefsManager::instance().appPrefs.uiPrefs.showStartupDialog) scribus->startUpDialog(); - else - scribus->setFocus(); } } - else if (subsRet == QMessageBox::Help) + else { - scribus->slotRaiseOnlineHelp(); + if (PrefsManager::instance().appPrefs.uiPrefs.showStartupDialog && usingGUI()) + scribus->startUpDialog(); + else + scribus->setFocus(); } } - else + else if (subsRet == QMessageBox::Help) { - qDebug()<<"Indigo UI - a new look"; -#ifdef HAVE_QTADS - auto* scribusi = new ScribusIndigoMainWindow(); - Q_CHECK_PTR(scribusi); - if (!scribusi) - return EXIT_FAILURE; - int retVal = scribusi->initScIMW(); - if (retVal == EXIT_FAILURE) - return EXIT_FAILURE; - scribusi->show(); - scribusi->resize(1024, 768); + scribus->slotRaiseOnlineHelp(); + } -// connect(ScQApp, SIGNAL(lastWindowClosed()), ScQApp, SLOT(quit())); -#else - return EXIT_FAILURE; -#endif - } return EXIT_SUCCESS; } Index: scribus/scribuscore.h =================================================================== --- scribus/scribuscore.h (Revision 26254) +++ scribus/scribuscore.h (Arbeitskopie) @@ -64,7 +64,7 @@ int exportToSVG() {return 0;} int runScript() {return 0;} */ - int init(bool useGUI, bool use_indigo_ui, const QList<QString>& filesToUse); + int init(bool useGUI, const QList<QString>& filesToUse); int initScribusCore(bool showSplash, bool showFontInfo, bool showProfileInfo, const QString& newGuiLanguage); bool initialized() const {return m_scribusInitialized;} const QString& getGuiLanguage() const; @@ -140,7 +140,6 @@ bool m_haveTiffSep {false}; bool m_scribusInitialized {false}; bool m_useGUI {false}; - bool m_use_indigo_ui {false}; int m_currScMW {0}; }; Index: scribus/scribusindigomainwindow.cpp =================================================================== --- scribus/scribusindigomainwindow.cpp (Revision 26254) +++ scribus/scribusindigomainwindow.cpp (nicht existent) @@ -1,68 +0,0 @@ -#include <QApplication> - -#include "scconfig.h" -#include "api/api_application.h" -#include "scribusapi.h" -#include "scribusindigomainwindow.h" - -#include "third_party/Qt-Advanced-Docking-System/src/DockAreaWidget.h" -#include "third_party/Qt-Advanced-Docking-System/src/DockAreaTitleBar.h" -#include "third_party/Qt-Advanced-Docking-System/src/DockAreaTabBar.h" -#include "third_party/Qt-Advanced-Docking-System/src/DockManager.h" -#include "third_party/Qt-Advanced-Docking-System/src/IconProvider.h" - -#include "iconmanager.h" -#include "manager/dock_manager.h" - -ScribusIndigoMainWindow::ScribusIndigoMainWindow(QWidget *parent) - : QMainWindow{parent} - { - - // Documentation: - // https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/blob/master/doc/user-guide.md -// ads::CDockManager::setConfigFlag(ads::CDockManager::AlwaysShowTabs, false); -// ads::CDockManager::setConfigFlag(ads::CDockManager::FloatingContainerHasWidgetIcon, true); -// ads::CDockManager::setConfigFlag(ads::CDockManager::FloatingContainerHasWidgetTitle, true); -// ads::CDockManager::setConfigFlag(ads::CDockManager::HideSingleCentralWidgetTitleBar, false); -// ads::CDockManager::setConfigFlag(ads::CDockManager::OpaqueSplitterResize, true); -// ads::CDockManager::setConfigFlag(ads::CDockManager::TabCloseButtonIsToolButton, true); -// ads::CDockManager::setConfigFlag(ads::CDockManager::AllTabsHaveCloseButton, false); -// ads::CDockManager::setConfigFlag(ads::CDockManager::DockAreaDynamicTabsMenuButtonVisibility, true); -// ads::CDockManager::setConfigFlag(ads::CDockManager::DockAreaHasCloseButton, false); -// ads::CDockManager::setConfigFlag(ads::CDockManager::DockAreaHasUndockButton, false); -// ads::CDockManager::setConfigFlag(ads::CDockManager::DockAreaHideDisabledButtons, true); - -//// ads::CDockManager::iconProvider().registerCustomIcon(ads::TabCloseIcon, IconManager::instance().loadIcon("close")); -//// ads::CDockManager::iconProvider().registerCustomIcon(ads::DockAreaCloseIcon, IconManager::instance().loadIcon("close")); -//// ads::CDockManager::iconProvider().registerCustomIcon(ads::DockAreaMenuIcon, IconManager::instance().loadIcon("menu-down")); -//// ads::CDockManager::iconProvider().registerCustomIcon(ads::DockAreaUndockIcon, IconManager::instance().loadIcon("dock-float")); - -// dockManager = new DockManager(this); - - - } - - - -ScribusIndigoMainWindow::~ScribusIndigoMainWindow() -{ - -} - -int ScribusIndigoMainWindow::initScIMW() -{ - int retVal = 0; - - QString scribusTitle(ScribusAPI::getVersionScribusTranslated()); - if (ScribusAPI::isSVN() && ScribusAPI::haveSVNRevision()) - scribusTitle.append(QString(" (r%1) - Indigo UI Mockup") - .arg(ScribusAPI::getSVNRevision())); - setWindowTitle(scribusTitle); - setObjectName("MainWindow"); - QWidget *widget = new QWidget; - setCentralWidget(widget); - QApplication::processEvents(); - resize(1024, 768); - - return retVal; -} Property changes on: scribus/scribusindigomainwindow.cpp ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Index: scribus/scribusindigomainwindow.h =================================================================== --- scribus/scribusindigomainwindow.h (Revision 26254) +++ scribus/scribusindigomainwindow.h (nicht existent) @@ -1,26 +0,0 @@ -#ifndef SCRIBUSINDIGOMAINWINDOW_H -#define SCRIBUSINDIGOMAINWINDOW_H - -#include <QMainWindow> - -#include "scribusapi.h" - -//class DockManager; - -class SCRIBUS_API ScribusIndigoMainWindow : public QMainWindow - { - Q_OBJECT - public: - explicit ScribusIndigoMainWindow(QWidget *parent = nullptr); - ~ScribusIndigoMainWindow(); - - int initScIMW(); - signals: - private: - - //DockManager *dockManager; - - - }; - -#endif // SCRIBUSINDIGOMAINWINDOW_H Property changes on: scribus/scribusindigomainwindow.h ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property |
|
Yeah, my guess was that the build failure was caused by HAVE_QTADS and/or WANT_QTADS remaining in the CMakeCache.txt file from an old build. Thanks for the cleanup patch. i just applied it to trunk. |
|
When prior build error, build directory was new and empty. From current snv and cleanup_indigo_mainwindow.patch applied, it build nicely without error and run. |
Date Modified | Username | Field | Change |
---|---|---|---|
2024-08-17 18:17 | placroix | New Issue | |
2024-08-17 19:58 | jghali | Note Added: 0051268 | |
2024-08-17 20:11 | nitramr | Note Added: 0051269 | |
2024-08-17 20:11 | nitramr | File Added: cleanup_indigo_mainwindow.patch | |
2024-08-17 21:31 | jghali | Note Added: 0051271 | |
2024-08-17 21:31 | jghali | Assigned To | => nitramr |
2024-08-17 21:31 | jghali | Status | new => resolved |
2024-08-17 21:31 | jghali | Resolution | open => fixed |
2024-08-17 21:31 | jghali | Fixed in Version | => 1.7.0.svn |
2024-08-17 21:57 | placroix | Note Added: 0051273 | |
2024-09-16 20:54 | cbradney | Status | resolved => closed |