Rationale
One of the "coding" tasks consisted of actually going through our Find*.cmake files in kdelibs and its siblings and check what could be removed, upstreamed or merged in the future.
The following tables look not only at the Find files, but also at some helper CMake files which may also cease to exist or move together with their Find counterparts.
kdelibs, kdepimlibs, kde-baseapps, kde-runtime and kde-workspace were analysed.
By the way, these tables were created using Emacs' org-mode, and there was no easy way to convert them to MediaWiki's syntax :)
Check*.cmake files
File Name
|
Exists in CMake
|
Plan
|
Comments
|
Status
|
CheckCXXSourceCompiles.cmake
|
Yes
|
Search mailing list for CMake developers' rationale, maybe upstream.
|
Began to diverge; CMake has FAIL_REGEX support, our version handles imported targets (Alex said CMake developers did not accept this feature upstream, need to search the mailing list archives).
|
|
CheckCXXSourceRuns.cmake
|
Yes
|
Idem.
|
Idem.
|
|
CheckCXXSymbolExists.cmake
|
No
|
Either check if we still support glibc 2.9, perhaps try upstreaming.
|
Almost equivalent to CMake's CheckSymbolExists.cmake, just creates .cxx files instead of .c ones.
|
|
CheckPointerMember.cmake
|
No
|
Only used by krdc; remove from kdelibs?
|
Calls check_cxx_source_compiles on a struct with a given member.
|
|
CheckPrototypeExists.cmake
|
No
|
1d0e1a0 says this was going to be upstreamed. Try again?
|
|
|
CheckStructMember.cmake
|
No
|
Remove; CMake has CheckStructHasMember.cmake
|
|
|
Find*.cmake
In this table, "upstreaming" a module can mean sending it to either CMake itself or the external modules collection.
kdelibs
File Name
|
Exists in CMake
|
Plan
|
Comments
|
Style
|
Reviewed
|
FindACL.cmake
|
No
|
|
|
FindAGG.cmake
|
No
|
|
|
FindAlsa.cmake and config-alsa.h.cmake
|
No
|
Upstream without config.h?
|
|
FindAkode.cmake
|
No
|
Remove.
|
|
FindAutomoc4.cmake
|
No
|
Depends on the future of automoc.
|
|
FindAvahi.cmake
|
No
|
Upstream?
|
|
FindBerkeleyDB.cmake
|
No
|
Upstream?
|
|
FindBlitz.cmake
|
No
|
Remove, already deprecated.
|
|
FindBlueZ.cmake
|
No
|
Upstream?
|
|
FindBoost.cmake
|
Yes
|
Remove. Already deprecated.
|
|
FindCarbon.cmake
|
No
|
?
|
|
FindDBusMenuQt.cmake
|
No
|
Remove in favour of DBMQ providing a Config.cmake file?
|
|
FindDNSSD.cmake
|
No
|
Merge with FindAvahi.cmake and upstream?
|
|
FindDocBookXML.cmake
|
No
|
Upstream?
|
|
FindDocBookXSL.cmake
|
No
|
Upstream?
|
|
FindENCHANT.cmake
|
No
|
Upstream?
|
|
FindEigen.cmake
|
No
|
Remove, already deprecated.
|
|
FindEigen2.cmake
|
No
|
Remove in favour of Eigen providing a Config.cmake file?
|
|
FindFAM.cmake
|
No
|
Upstream?
|
|
FindFFmpeg.cmake
|
No
|
Upstream?
|
|
FindFlac.cmake
|
No
|
Upstream?
|
|
FindFlex.cmake
|
No
|
Upstream?
|
|
FindFontconfig.cmake
|
No
|
Upstream?
|
|
FindFreetype.cmake
|
Yes
|
Merge or remove.
|
|
FindGIF.cmake
|
Yes
|
Probably remove.
|
|
FindGLIB2.cmake
|
No
|
Upstream?
|
|
FindGMP.cmake
|
No
|
Upstream?
|
|
FindGObject.cmake
|
No
|
Upstream?
|
|
FindGSSAPI.cmake
|
No
|
Upstream?
|
|
FindGStreamer.cmake
|
No
|
Upstream?
|
|
FindGettext.cmake
|
Yes
|
Merge or provide our macros separately.
|
We have some macros used in release tarballs.
|
FindGphoto2.cmake
|
No
|
Upstream?
|
|
FindHUNSPELL.cmake
|
No
|
Upstream?
|
|
FindHUpnp.cmake
|
No
|
Upstream?
|
|
FindIOKit.cmake
|
No
|
Upstream?
|
|
FindKDEWorkspace.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindKDEWIN32.cmake, FindKDEWIN_Packager.cmake and FindKDEWin.cmake
|
No
|
?
|
|
FindKDevPlatform.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindKNepomuk.cmake
|
No
|
Already deprecated?
|
|
FindKdcraw.cmake
|
No
|
Upstream?
|
|
FindKdeMultimedia.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindKdepim.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindKdepimLibs.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindKexiv2.cmake
|
No
|
Upstream?
|
|
FindKipi.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindKopete.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindKorundum.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindKonto.cmake
|
No
|
Already deprecated?
|
|
FindLCMS.cmake
|
No
|
Upstream?
|
|
FindLibArt.cmake
|
No
|
Upstream?
|
|
FindLibAttica.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindLibKonq.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindLibLZMA.cmake
|
No
|
Upstream?
|
|
FindLibXml2.cmake
|
Yes
|
Remove.
|
Upstream is pretty much identical, LIBXSLT_XSLTPROC_EXECUTABLE is not used.
|
FindLibXslt.cmake
|
Yes
|
Remove.
|
Upstream is pretty much identical.
|
FindLibintl.cmake
|
No
|
Upstream?
|
|
FindLibraryWithDebug.cmake
|
No
|
Upstream to CMake?
|
|
FindLinuxWirelesstools.cmake
|
No
|
Upstream?
|
|
FindMsgfmt.cmake
|
No
|
Upstream?
|
|
FindMusicBrainz.cmake
|
No
|
Upstream?
|
|
FindMySQL.cmake
|
No
|
Upstream?
|
|
FindNepomuk.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindNetworkManager.cmake
|
No
|
Upstream?
|
|
FindOggVorbis.cmake
|
No
|
Upstream?
|
|
FindOpenEXR.cmake
|
No
|
Upstream?
|
|
FindOpenSSL.cmake
|
Yes
|
Remove.
|
Upstream is pretty much identical, should even solve some reported build issues.
|
FindPCRE.cmake
|
No
|
Upstream?
|
|
FindPackageHandleStandardArgs.cmake
|
Yes
|
Long story; let Alex decide.
|
|
FindPhonon.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindPkgConfig.cmake
|
Yes
|
Remove.
|
Upstream is pretty much identical.
|
FindPlasma.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindPolkitQt-1.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindPolkitQt.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindPopplerQt4.cmake
|
No
|
Ask tsdgeos to provide a Config.cmake
|
|
FindPostgreSQL.cmake
|
Yes
|
Probably remove.
|
Upstream looks more complete.
|
FindPulseAudio.cmake
|
No
|
Upstream?
|
|
FindPyKDE4.cmake and FindPyKDE4.py
|
No
|
?
|
|
FindPyQt4.cmake and FindPyQt.py
|
No
|
?
|
|
FindPythonLibrary.cmake
|
Yes: FindPythonInterp.cmake and FindPythonLibs.cmake
|
Try to merge with CMake.
|
|
FindQCA2.cmake
|
No
|
Remove in favour of a Config.cmake file?
|
|
FindQImageBlitz.cmake
|
No
|
Remove in favour of a Config.cmake file?
|
|
FindQt4.cmake, Qt4Macros.cmake and Qt4ConfigDependentSettings.cmake
|
Yes
|
Sync with CMake 2.8.6, then maybe remove our copy
|
We may need to keep a copy because we often need newest Qt but don't want to depend on newest CMake all the time
|
Ok
|
Yes
|
FindRUBY.cmake
|
Yes (FindRuby.cmake)
|
Remove our copy, or at least get rid of the duplication between FindRuby.cmake and FindRUBY.cmake, which is a mess currently
|
|
|
|
FindSamba.cmake
|
No
|
Upstream to cmake ?
|
|
FindSane.cmake
|
No
|
Upstream to cmake ?
|
|
|
|
FindSasl2.cmake
|
No
|
Upstream to cmake ?
|
|
|
|
FindSharedDesktopOntologies.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
FindSharedMimeInfo.cmake
|
No
|
Upstream to ecm
|
|
|
|
FindSoprano.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
|
|
FindSqlite.cmake
|
No
|
Upstream to cmake ?
|
|
|
|
FindStrigi.cmake
|
No
|
Remove in favour of a Config.cmake file? Strigi is messy.
|
|
|
|
FindTaglib.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
|
|
FindUDev.cmake
|
No
|
Upstream to cmake ?
|
|
|
|
FindUSB.cmake
|
No
|
Rename and upstream?
|
|
FindWcecompat.cmake
|
No
|
What is this ?
|
|
FindX11.cmake
|
Yes
|
Remove. It has some small difference to the one in cmake AFAIK.
|
|
|
|
FindXKB.cmake
|
No
|
Upstream to cmake
|
|
FindXine.cmake
|
No
|
Upstream to cmake ?
|
|
FindXMMS.cmake
|
No
|
Remove as XMMS is dead?
|
|
kde-baseapps
File Name
|
Exists in CMake
|
Plan
|
Comments
|
Status
|
FindLibTidy.cmake
|
No
|
Upstream?
|
|
|
kde-runtime
File Name
|
Exists in CMake
|
Plan
|
Comments
|
Status
|
FindCLucene.cmake
|
No
|
Upstream?
|
|
|
FindLibSSH.cmake
|
No
|
Upstream?
|
|
|
FindQNtrack.cmake
|
No
|
Upstream?
|
|
|
FindSLP.cmake
|
No
|
Upstream?
|
|
|
kde-workspace
File Name
|
Exists in CMake
|
Plan
|
Comments
|
FindCkConnector.cmake
|
No
|
Upstream?
|
|
FindDBus.cmake
|
No
|
Upstream one of the many different copies in the KDE tree.
|
|
FindGooglegadgets.cmake
|
No
|
Does this still exist? If not, remove.
|
|
FindLibXKlavier.cmake
|
No
|
Upstream?
|
|
FindPAM.cmake
|
No
|
Upstream?
|
|
FindPCIUTILS.cmake
|
No
|
Upstream?
|
|
FindQalculate.cmake
|
No
|
Upstream?
|
|
FindRAW1394.cmake
|
No
|
Upstream?
|
|
FindSensors.cmake
|
No
|
Rename and upstream?
|
|
FindOpenGLES.cmake
|
No
|
Upstream?
|
|
FindKephal.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
Findlibgps.cmake
|
No
|
Rename and upstream?
|
|
kdepimlibs
File Name
|
Exists in CMake
|
Plan
|
Comments
|
FindAkonadi.cmake
|
No
|
Should not be needed if Akonadi starts using Config.cmake files.
|
|
FindGpgme.cmake
|
No
|
Upstream?
|
|
FindLdap.cmake
|
No
|
Upstream?
|
|
FindLibical.cmake
|
No
|
Upstream?
|
|
FindQgpgme.cmake
|
No
|
Remove in favour of a Config.cmake file.
|
|
Framework-specific
In general, they contain KDE-specific code which should not be upstreamed.
File Name
|
Plan
|
Comments
|
KDE4Defaults.cmake and FindKDE4Internal.cmake
|
|
|
KDE4Macros.cmake
|
-
|
|
NepomukAddOntologyClasses.cmake
|
Merge into NepomukMacros.cmake?
|
Need to contact trueg about that.
|
NepomukMacros.cmake
|
|
PythonCompile.py and PythonMacros.cmake
|
Upstream?
|
|
SIPMacros.cmake
|
Upstream?
|
|
Win32Macros.cmake
|
No idea.
|
|
Generic Macros
File Name
|
Exists in CMake
|
Plan
|
Comments
|
MacroAddCompileFlags.cmake
|
No
|
Upstream?
|
|
MacroAddLinkFlags.cmake
|
No
|
Upstream?
|
|
MacroAdditionalCleanFiles.cmake
|
No
|
Upstream?
|
|
MacroAppendIf.cmake
|
No
|
Not used anywhere; remove?
|
|
MacroBoolTo01.cmake
|
No
|
Upstream?
|
|
MacroEnsureOutOfSourceBuild.cmake
|
No
|
Remove? People should know they should not build in the source directory.
|
|
MacroEnsureVersion.cmake
|
No
|
Upstream?
|
|
MacroKAuth.cmake
|
No
|
Remove. Already deprecated.
|
|
MacroLibrary.cmake
|
No
|
Move functionality to FindKDE4?
|
|
MacroLogFeature.cmake
|
No
|
Investigate CMake's FeatureSummary.
|
|
MacroOptionalAddSubdirectory.cmake
|
No
|
See outcome of Alex's upstreaming efforts.
|
|
MacroOptionalDependPackage.cmake
|
No
|
Broken, expects a FindFoo.cmake possibly provided by the application itself. Remove?
|
|
MacroOptionalFindPackage.cmake
|
No
|
See outcome of Alex's upstreaming efforts.
|
|
MacroPushRequiredVars.cmake
|
No
|
|
Too specific to upstream?
|
MacroWriteBasicCMakeVersionFile.cmake
|
No
|
?
|
|
Other files in kdelibs
File Name
|
Plan
|
Comments
|
check_installed_exports_file.cmake
|
Remove?
|
Alex writes in kdelibs/CMakeLists.txt that the target installation code was going to change.
|
kde4_cmake_uninstall.cmake.in
|
?
|
|
kde4_exec_via_sh.cmake
|
?
|
|
kde4automoc.files.in
|
Remove once automoc is upstream.
|
|
kde4exportsheader.h.in
|
Remove if this feature is upstreamed.
|
|
kde4init_dummy.cpp.in and kde4init_win32lib_dummy.cpp.in
|
?
|
|
kde4uic.cmake
|
Remove if possible.
|
|