On Windows do not install static kdeinit library intended for internal usage only
Needs ReviewPublic

Authored by habacker on Apr 30 2019, 12:21 AM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Test Plan

cross compiled for windows

Diff Detail

Repository
R125 KHelpCenter
Branch
master
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 11370
Build 11388: arc lint + arc unit
habacker created this revision.Apr 30 2019, 12:21 AM
Restricted Application added a project: Documentation. · View Herald TranscriptApr 30 2019, 12:21 AM
Restricted Application added a subscriber: kde-doc-english. · View Herald Transcript
habacker requested review of this revision.Apr 30 2019, 12:21 AM
habacker added a comment.EditedApr 30 2019, 12:25 AM

https://cgit.kde.org/kinit.git/tree/KF5InitMacros.cmake#n30 mentions that the kdeinit related library is intended to build the related executable only and therefore should not be installed on Windows.

@vonreth Windows do you have any comment about this? The way I read the comment in the KF5_ADD_KDEINIT_EXECUTABLE macro does not imply that the library should not be installed. If it should not be installe,d I guess that similar changes should be applied to other applications (I found at least dolphin and kcalc).

I think it depends on whether any external project tries to link to it, and I have no idea whether thats the case.

habacker added a comment.EditedApr 30 2019, 3:02 PM

What is the purpose of kdeinit libraries ? They are intended for faster process creating (see https://api.kde.org/frameworks/kinit/html/index.html) and therefore kdeinit libraries need to be installed on platforms supporting fork-and-exec to be reachable by kdeinit. Because Windows have no such support this libraries are obsolete and are only used internal to be linked into the final application like khelpcenter.

I scanned whole kde git repos for related locations with

find -name 'CMakeLists.txt' -exec gawk 'BEGIN { k=0 } $0 ~ /kf5_add_kdeinit/ { k=1 } k == 1 && $0 ~ /install/ && $0 ~ /kdeinit_/ { print FILENAME ":" NR ":" $0 }'   {} \;

and got 41 locations:

/ksysguard/gui/CMakeLists.txt:65:install(TARGETS kdeinit_ksysguard ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
./konqueror/src/CMakeLists.txt:119:    install(TARGETS kdeinit_konqueror  ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
./konqueror/client/CMakeLists.txt:34:    install(TARGETS kdeinit_kfmclient  ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
./kmenuedit/CMakeLists.txt:81:install(TARGETS kdeinit_kmenuedit  DESTINATION ${KDE_INSTALL_LIBDIR} )
./calligra/sheets/CMakeLists.txt:489:install(TARGETS kdeinit_calligrasheets  ${INSTALL_TARGETS_DEFAULT_ARGS})
./calligra/flow/part/CMakeLists.txt:49:install(TARGETS kdeinit_calligraflow ${INSTALL_TARGETS_DEFAULT_ARGS})
./calligra/karbon/CMakeLists.txt:74:install(TARGETS kdeinit_karbon  ${INSTALL_TARGETS_DEFAULT_ARGS})
./calligra/words/app/CMakeLists.txt:27:install(TARGETS kdeinit_calligrawords  ${INSTALL_TARGETS_DEFAULT_ARGS})
./calligra/stage/app/CMakeLists.txt:26:install(TARGETS kdeinit_calligrastage ${INSTALL_TARGETS_DEFAULT_ARGS})
./konsole/src/CMakeLists.txt:203:install(TARGETS kdeinit_konsole konsole
./kde-baseapps/konqueror/src/CMakeLists.txt:128:    install(TARGETS kdeinit_konqueror  ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
./kde-baseapps/konqueror/client/CMakeLists.txt:25:    install(TARGETS kdeinit_kfmclient  ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
./kile/src/CMakeLists.txt:261:install(TARGETS kdeinit_kile ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
./cervisia/cvsservice/CMakeLists.txt:29:install(TARGETS kdeinit_cvsservice_bin ${INSTALL_TARGETS_DEFAULT_ARGS} )
./cervisia/cvsservice/CMakeLists.txt:40:install(TARGETS kdeinit_cvsaskpass ${INSTALL_TARGETS_DEFAULT_ARGS} )
./cervisia/CMakeLists.txt:73:install(TARGETS kdeinit_cervisia ${INSTALL_TARGETS_DEFAULT_ARGS} )
./kde-cli-tools/kcmshell/CMakeLists.txt:18:install(TARGETS kdeinit_kcmshell5  ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
./plasma-workspace/ksmserver/CMakeLists.txt:84:install(TARGETS kdeinit_ksmserver ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
./plasma-workspace/startkde/kcminit/CMakeLists.txt:22:install(TARGETS kdeinit_kcminit ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
./plasma-workspace/startkde/kcminit/CMakeLists.txt:40:install(TARGETS kdeinit_kcminit_startup ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
./plasma-workspace/klipper/CMakeLists.txt:67:install(TARGETS kdeinit_klipper ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
./plasma-workspace/kuiserver/CMakeLists.txt:74:install(TARGETS kdeinit_kuiserver5 ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
./kmplayer/src/CMakeLists.txt:121:install(TARGETS kdeinit_kmplayer  ${INSTALL_TARGETS_DEFAULT_ARGS} )
./kcalc/CMakeLists.txt:125:install(TARGETS kdeinit_kcalc ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
./dolphin/src/CMakeLists.txt:315:install(TARGETS kdeinit_dolphin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
./kde-workspace/ksysguard/gui/CMakeLists.txt:61:install(TARGETS kdeinit_ksysguard ${INSTALL_TARGETS_DEFAULT_ARGS})
./kde-workspace/kmenuedit/CMakeLists.txt:73:install(TARGETS kdeinit_kmenuedit  DESTINATION ${LIB_INSTALL_DIR} )
./kde-workspace/plasma-workspace/ksmserver/CMakeLists.txt:82:install(TARGETS kdeinit_ksmserver ${INSTALL_TARGETS_DEFAULT_ARGS})
./kde-workspace/plasma-workspace/startkde/kcminit/CMakeLists.txt:12:install(TARGETS kdeinit_kcminit ${INSTALL_TARGETS_DEFAULT_ARGS} )
./kde-workspace/plasma-workspace/startkde/kcminit/CMakeLists.txt:27:install(TARGETS kdeinit_kcminit_startup ${INSTALL_TARGETS_DEFAULT_ARGS} )
./kde-workspace/plasma-workspace/klipper/CMakeLists.txt:47:install(TARGETS kdeinit_klipper ${INSTALL_TARGETS_DEFAULT_ARGS})
./kde-workspace/plasma-desktop/kcms/access/CMakeLists.txt:51:install(TARGETS kdeinit_kaccess ${INSTALL_TARGETS_DEFAULT_ARGS} )
./kde-workspace/kwin/CMakeLists.txt:488:install(TARGETS kdeinit_kwin ${INSTALL_TARGETS_DEFAULT_ARGS} )
./kde-workspace/kwin/kcmkwin/kwinrules/CMakeLists.txt:38:install(TARGETS kdeinit_kwin_rules_dialog ${INSTALL_TARGETS_DEFAULT_ARGS} )
./kuickshow/src/CMakeLists.txt:66:install(TARGETS kdeinit_kuickshow  ${INSTALL_TARGETS_DEFAULT_ARGS} )
./kded/src/CMakeLists.txt:25:install(TARGETS kdeinit_kded5 EXPORT KDEDTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
./khelpcenter/CMakeLists.txt:112:install(TARGETS kdeinit_khelpcenter  ${INSTALL_TARGETS_DEFAULT_ARGS} )
./plasma-desktop/kaccess/CMakeLists.txt:28:install(TARGETS kdeinit_kaccess ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
./kwin/CMakeLists.txt:658:install(TARGETS kdeinit_kwin_x11 ${INSTALL_TARGETS_DEFAULT_ARGS} )
./kwin/kcmkwin/kwinrules/CMakeLists.txt:40:install(TARGETS kdeinit_kwin_rules_dialog ${INSTALL_TARGETS_DEFAULT_ARGS} )
./kinit/src/klauncher/CMakeLists.txt:34:install(TARGETS kdeinit_klauncher ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})