Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Small optimization of build process: QT_VERSION_MAJOR and WANT_PERL_DOCS #2634

Closed
VVD opened this issue Apr 29, 2024 · 10 comments · Fixed by #2635
Closed

Small optimization of build process: QT_VERSION_MAJOR and WANT_PERL_DOCS #2634

VVD opened this issue Apr 29, 2024 · 10 comments · Fixed by #2635

Comments

@VVD
Copy link

VVD commented Apr 29, 2024

Patch:

--- CMakeLists.txt.orig
+++ CMakeLists.txt
@@ -410,6 +410,8 @@ endif()
 # first check if Qt6 or Qt5 has to be used
 if(NOT DEFINED QT_VERSION_MAJOR)
        find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
+else()
+       find_package(QT NAMES Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)
 endif()
 # second, detect available modules for the specific Qt version
 find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
@@ -774,7 +776,10 @@ endif()
 option(WANT_PERL "Compile Perl support" ON)

 # Perl is needed for documentation, too
-find_package(Perl)
+option(WANT_PERL_DOCS "Use Perl for build documentation" ON)
+if(WANT_PERL_DOCS)
+       find_package(Perl)
+endif()

 if(WANT_PERL)
        if(PERL_FOUND)
  1. If run cmake with -DQT_VERSION_MAJOR=5 command line option then configure stage doesn't print Qt version:
    -- Qt version :
    with patch or without -DQT_VERSION_MAJOR=5:
    -- Qt version : 5.15.13

  2. If perl installed then it used for build documentation without any possibility to prevent this.

@DarthGandalf
Copy link
Member

Please attach it as a pull request, it'll be much easier to merge it

@VVD
Copy link
Author

VVD commented Apr 29, 2024

AFAIK, it's impossible to create pull request without fork full repo - I don't want create personal fork for "oneliners".

@DarthGandalf
Copy link
Member

You can always delete it later

ctrlaltca added a commit to ctrlaltca/KVIrc that referenced this issue Apr 30, 2024
@DarthGandalf
Copy link
Member

@VVD
Copy link
Author

VVD commented Apr 30, 2024

  1. If the build was without perl, then share/kvirc/5.2/help is not created and the check in KviApplication::checkGlobalKvircDirectory does not pass. Replace check help with config:
--- src/kvirc/kernel/KviApplication_setup.cpp.orig
+++ src/kvirc/kernel/KviApplication_setup.cpp
@@ -63,10 +63,10 @@ static QLibrary * g_pSetupLibrary = nullptr;

 bool KviApplication::checkGlobalKvircDirectory(const QString szDir)
 {
-       //First check if the help subdir exists
-       QString szHelpDir = szDir;
-       szHelpDir += KVI_PATH_SEPARATOR "help";
-       if(!KviFileUtils::directoryExists(szHelpDir))
+       //First check if the config subdir exists
+       QString szConfigDir = szDir;
+       szConfigDir += KVI_PATH_SEPARATOR "config";
+       if(!KviFileUtils::directoryExists(szConfigDir))
                return false;
        //Then check if the pics subdir exists
        QString szPicsDir = szDir;
  1. Build failed with error:
FAILED: src/kvirc/kvirc
: && /usr/bin/c++ -O3 -Wl,--undefined-version  -fstack-protector-strong   -Wl,--export-dynamic -Wl,-export-dynamic src/kvirc/CMakeFiles/kvirc.dir/kvirc_autogen/mocs_compilation.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviActionDrawer.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviChannelWindow.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviColorSelectionWindow.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviConsoleWindow.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviCryptController.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviCtcpPageDialog.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviCustomToolBar.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviDebugWindow.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviDynamicToolTip.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviFileDialog.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviMainWindow.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviHistoryWindow.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviHtmlDialog.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviImageDialog.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviInput.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviInputEditor.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviInputHistory.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviIpEditor.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviIrcToolBar.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviIrcView.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviIrcView_events.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviIrcView_getTextLine.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviIrcView_loghandling.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviIrcView_tools.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviMaskEditor.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviMenuBar.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviModeEditor.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviModeWidget.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviMessageBox.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviOptionsWidget.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviQueryWindow.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviScriptButton.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviScriptEditor.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviSelectors.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviStatusBar.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviStatusBarApplet.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviTextIconWindow.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviThemedComboBox.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviThemedLabel.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviThemedLineEdit.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviThemedTreeWidget.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviToolBar.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviWebPackageManagementDialog.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviWindowToolWidget.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviTopicWidget.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviUserListView.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviWindow.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviWindowListBase.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviWindowStack.cpp.o src/kvirc/CMakeFiles/kvirc.dir/ui/KviTreeWindowList.cpp.o src/kvirc/CMakeFiles/kvirc.dir/sparser/KviAntiSpam.cpp.o src/kvirc/CMakeFiles/kvirc.dir/sparser/KviIrcMessage.cpp.o src/kvirc/CMakeFiles/kvirc.dir/sparser/KviIrcServerParser_ctcp.cpp.o src/kvirc/CMakeFiles/kvirc.dir/sparser/KviIrcServerParser_literalHandlers.cpp.o src/kvirc/CMakeFiles/kvirc.dir/sparser/KviIrcServerParser_numericHandlers.cpp.o src/kvirc/CMakeFiles/kvirc.dir/sparser/KviIrcServerParser_tables.cpp.o src/kvirc/CMakeFiles/kvirc.dir/sparser/KviIrcServerParser.cpp.o src/kvirc/CMakeFiles/kvirc.dir/module/KviMexLinkFilter.cpp.o src/kvirc/CMakeFiles/kvirc.dir/module/KviMexServerImport.cpp.o src/kvirc/CMakeFiles/kvirc.dir/module/KviMexToolBar.cpp.o src/kvirc/CMakeFiles/kvirc.dir/module/KviModule.cpp.o src/kvirc/CMakeFiles/kvirc.dir/module/KviModuleExtension.cpp.o src/kvirc/CMakeFiles/kvirc.dir/module/KviModuleManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvs.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsAction.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsAliasManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsArray.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsArrayCast.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsAsyncDnsOperation.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsAsyncOperation.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCallbackObject.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreCallbackCommands.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreFunctions.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreFunctions_af.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreFunctions_gl.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreFunctions_mr.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreFunctions_sz.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreSimpleCommands.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreSimpleCommands_af.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreSimpleCommands_gl.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreSimpleCommands_mr.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsCoreSimpleCommands_sz.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsDnsManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsHash.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsKernel.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsModuleInterface.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsParameterProcessor.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsPopupManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsPopupMenu.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsProcessManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsReport.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsRunTimeCall.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsRunTimeContext.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsRWEvaluationResult.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsScript.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsScriptAddonManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsSwitchList.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsTimerManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsUserAction.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsVariant.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/KviKvsVariantList.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/event/KviKvsEvent.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/event/KviKvsEventHandler.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/event/KviKvsEventManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/event/KviKvsEventTable.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/object/KviKvsObject.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/object/KviKvsObjectClass.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/object/KviKvsObjectController.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/object/KviKvsObjectFunctionCall.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/object/KviKvsObjectFunctionHandler.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/object/KviKvsObjectFunctionHandlerImpl.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/parser/KviKvsParser.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/parser/KviKvsParser_command.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/parser/KviKvsParser_comment.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/parser/KviKvsParser_dollar.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/parser/KviKvsParser_expression.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/parser/KviKvsParser_lside.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/parser/KviKvsParser_specialCommands.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeAliasFunctionCall.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeAliasSimpleCommand.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeArrayCount.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeArrayElement.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeArrayOrHashElement.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeArrayReferenceAssert.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeBase.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeBaseObjectFunctionCall.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeCallbackCommand.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeCommand.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeCommandEvaluation.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeCommandWithParameters.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeCompositeData.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeConstantData.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeCoreCallbackCommand.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeCoreFunctionCall.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeCoreSimpleCommand.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeData.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeDataList.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeExpression.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeExpressionReturn.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeExtendedScopeVariable.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeFunctionCall.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeGlobalVariable.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeHashCount.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeHashElement.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeHashReferenceAssert.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeIndirectData.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeInstruction.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeInstructionBlock.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeLocalVariable.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeModuleCallbackCommand.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeModuleFunctionCall.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeModuleSimpleCommand.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeMultipleParameterIdentifier.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeObjectField.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeObjectFunctionCall.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeOperation.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeParameterCount.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeParameterReturn.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeRebindingSwitch.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeScopeOperator.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSimpleCommand.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSingleParameterIdentifier.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommand.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandBreak.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandClass.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandContinue.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandDefpopup.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandDo.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandFor.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandForeach.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandIf.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandSwitch.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandUnset.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSpecialCommandWhile.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeStringCase.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeSwitchList.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeThisObjectFunctionCall.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeVariable.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kvs/tree/KviKvsTreeNodeVoidFunctionCall.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviAction.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviActionManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviApplication.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviApplication_filesystem.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviApplication_setup.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviAsynchronousConnectionData.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviCoreActions.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviCustomToolBarDescriptor.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviCustomToolBarManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviDefaultScript.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviFileTransfer.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviHtmlGenerator.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIconManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviInternalCommand.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIpcSentinel.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnection.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnectionAntiCtcpFloodData.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnectionAsyncWhoisData.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnectionNetsplitDetectorData.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnectionRequestQueue.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnectionServerInfo.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnectionStateData.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnectionStatistics.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnectionTarget.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnectionTargetResolver.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcConnectionUserInfo.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcContext.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcDataStreamMonitor.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcLink.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcSocket.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviIrcUrl.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviLagMeter.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviMain.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviNotifyList.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviOptions.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviSSLMaster.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviTextIconManager.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviTheme.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviUserAction.cpp.o src/kvirc/CMakeFiles/kvirc.dir/kernel/KviUserInput.cpp.o -o src/kvirc/kvirc  -Wl,-rpath,/tmp/work/usr/ports/irc/kvirc/work/.build/src/kvilib:/usr/local/lib:/usr/local/lib/qt5:  src/kvilib/libkvilib.so.5.2.2  /usr/lib/libz.so  /usr/local/lib/libKF5Notifications.so.5.115.0  /usr/local/lib/libKF5Parts.so.5.115.0  /usr/local/lib/libXss.so  /usr/local/lib/libSM.so  /usr/local/lib/libICE.so  /usr/local/lib/libX11.so  /usr/local/lib/libXext.so  /usr/local/lib/libXrender.so  /usr/local/lib/libphonon4qt5.so.4.12.0  /usr/local/lib/libaudiofile.so  /usr/lib/libssl.so  /usr/lib/libcrypto.so  -L/usr/local/lib  -lenchant-2  /usr/local/lib/libtheoraenc.so  /usr/local/lib/libtheoradec.so  /usr/local/lib/libogg.so  /usr/local/lib/libvorbis.so  /usr/local/lib/libvorbisenc.so  /usr/local/lib/qt5/libQt5WebEngineWidgets.so.5.15.16  /usr/local/lib/libKF5XmlGui.so.5.115.0  /usr/local/lib/libKF5KIOWidgets.so.5.115.0  /usr/local/lib/libKF5KIOGui.so.5.115.0  /usr/local/lib/libKF5WindowSystem.so.5.115.0  /usr/local/lib/libX11.so  /usr/local/lib/libKF5KIOCore.so.5.115.0  /usr/local/lib/libKF5Service.so.5.115.0  /usr/local/lib/libKF5JobWidgets.so.5.115.0  /usr/local/lib/libKF5Solid.so.5.115.0  /usr/local/lib/libKF5TextWidgets.so.5.115.0  /usr/local/lib/libKF5ConfigWidgets.so.5.115.0  /usr/local/lib/libKF5I18n.so.5.115.0  /usr/local/lib/libKF5Codecs.so.5.115.0  /usr/local/lib/libKF5Auth.so.5.115.0  /usr/local/lib/libKF5AuthCore.so.5.115.0  /usr/local/lib/libKF5CoreAddons.so.5.115.0  /usr/local/lib/libKF5Completion.so.5.115.0  /usr/local/lib/libKF5WidgetsAddons.so.5.115.0  /usr/local/lib/libKF5ConfigGui.so.5.115.0  /usr/local/lib/libKF5ConfigCore.so.5.115.0  /usr/local/lib/libKF5SonnetUi.so.5.115.0  /usr/local/lib/qt5/libQt5Sql.so.5.15.13  /usr/local/lib/qt5/libQt5Xml.so.5.15.13  /usr/local/lib/qt5/libQt5Concurrent.so.5.15.13  /usr/local/lib/qt5/libQt5DBus.so.5.15.13  /usr/local/lib/qt5/libQt5PrintSupport.so.5.15.13  /usr/local/lib/qt5/libQt5WebEngineCore.so.5.15.16  /usr/local/lib/qt5/libQt5WebChannel.so.5.15.13  /usr/local/lib/qt5/libQt5Positioning.so.5.15.13  /usr/local/lib/qt5/libQt5Quick.so.5.15.13  /usr/local/lib/qt5/libQt5QmlModels.so.5.15.13  /usr/local/lib/qt5/libQt5Qml.so.5.15.13  /usr/local/lib/qt5/libQt5Svg.so.5.15.13  /usr/local/lib/qt5/libQt5X11Extras.so.5.15.13  /usr/local/lib/qt5/libQt5MultimediaWidgets.so.5.15.13  /usr/local/lib/qt5/libQt5Widgets.so.5.15.13  /usr/local/lib/qt5/libQt5Multimedia.so.5.15.13  /usr/local/lib/qt5/libQt5Gui.so.5.15.13  /usr/local/lib/qt5/libQt5Network.so.5.15.13  /usr/local/lib/qt5/libQt5Core.so.5.15.13  -Wl,-rpath-link,/usr/local/lib && cd /tmp/work/usr/ports/irc/kvirc/work/.build/src/kvirc && /usr/local/bin/strip /tmp/work/usr/ports/irc/kvirc/work/.build/src/kvirc/kvirc
ld: error: undefined reference due to --no-allow-shlib-undefined: pthread_create
>>> referenced by src/kvilib/libkvilib.so.5.2.2
c++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Patch:

--- src/kvilib/CMakeLists.txt.orig
+++ src/kvilib/CMakeLists.txt
@@ -130,6 +130,7 @@ endif()

 add_library(${KVILIB_BINARYNAME} SHARED ${kvilib_SRCS} ${kvilib_MOC_SRCS})
 target_link_libraries(${KVILIB_BINARYNAME} ${LIBS} ${qt_kvirc_modules})
+target_link_libraries(${KVILIB_BINARYNAME} Threads::Threads)

 # Enable C++17
 target_compile_features(${KVILIB_BINARYNAME} PUBLIC cxx_std_17)

Maybe it's specific for FreeBSD (13.3-p2 amd64) and better use this patch:

--- src/kvirc/CMakeLists.txt.orig
+++ src/kvirc/CMakeLists.txt
@@ -280,6 +280,7 @@ endif()
 
 if(CMAKE_HOST_SYSTEM MATCHES "FreeBSD")
        set_target_properties(${KVIRC_BINARYNAME} PROPERTIES LINK_FLAGS -Wl,-export-dynamic)
+       target_link_libraries(${KVILIB_BINARYNAME} Threads::Threads)
        message(STATUS "Patching for FreeBSD...")
 endif()
 

or

--- src/kvilib/CMakeLists.txt.orig
+++ src/kvilib/CMakeLists.txt
@@ -130,6 +130,10 @@ endif()

 add_library(${KVILIB_BINARYNAME} SHARED ${kvilib_SRCS} ${kvilib_MOC_SRCS})
 target_link_libraries(${KVILIB_BINARYNAME} ${LIBS} ${qt_kvirc_modules})
+if(CMAKE_HOST_SYSTEM MATCHES "FreeBSD")
+       target_link_libraries(${KVILIB_BINARYNAME} Threads::Threads)
+       message(STATUS "Patching for FreeBSD...")
+endif()

 # Enable C++17
 target_compile_features(${KVILIB_BINARYNAME} PUBLIC cxx_std_17)

@VVD
Copy link
Author

VVD commented Apr 30, 2024

  1. Question: with option -DWANT_KDE:BOOL=TRUE kvirc linked with qt5-dbus even if set -DWANT_QTDBUS:BOOL=FALSE - is it bug or feature or environment specific behavior?

@VVD
Copy link
Author

VVD commented Apr 30, 2024

@ctrlaltca, thanks!

@ctrlaltca
Copy link
Contributor

ctrlaltca commented Apr 30, 2024

5. Question: with option -DWANT_KDE:BOOL=TRUE kvirc linked with qt5-dbus even if set -DWANT_QTDBUS:BOOL=FALSE - is it bug or feature or environment specific behavior?

@VVD : if i get it correctly, the dependency comes from Qt5Gui that needs it: https://www.freshports.org/x11-toolkits/qt5-gui . Possibly some KDE libs explicitly adds it to the linked libraries.

@VVD
Copy link
Author

VVD commented Apr 30, 2024

  1. Question: with option -DWANT_KDE:BOOL=TRUE kvirc linked with qt5-dbus even if set -DWANT_QTDBUS:BOOL=FALSE - is it bug or feature or environment specific behavior?

@VVD : if i get it correctly, the dependency comes from Qt5Gui that needs it: https://www.freshports.org/x11-toolkits/qt5-gui . Possibly some KDE libs explicitly adds it to the linked libraries.

Weird: if build with -DWANT_KDE:BOOL=FALSE and -DWANT_QTDBUS:BOOL=FALSE then it isn't linked with qt5-dbus.

ctrlaltca added a commit that referenced this issue May 1, 2024
* Add cmake option WANT_PERL_DOCS to disable doc generation. Ensure Qt version is reported correctly by cmake. Fix #2634

* KviApplication::checkGlobalKvircDirectory: don't test for help subdir, it may not exist

* Cmake: use the imported target for Threads instead of CMAKE_THREAD_LIBS_INIT

* Cmake: always import the Threads target
@VVD
Copy link
Author

VVD commented May 1, 2024

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants