KDE Core/Platform 11/Buildsystem/FindFilesSurvey
Appearance
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. | |
No | Either check if we still support | Almost equivalent to CMake's CheckSymbolExists.cmake, just | | | glibc 2.9, perhaps try | creates .cxx files instead of .c ones. | | | upstreaming. | | | ||
No | Only used by krdc; remove from kdelibs? | Calls check_cxx_source_compiles on a struct with a given member. | | ||||
No | 1d0e1a0 says this was going to be | | | | upstreamed. Try again? | | | |||
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 | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindACL.cmake | No | | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindAGG.cmake | No | | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindAlsa.cmake | No | Upstream without config.h? | | | config-alsa.h.cmake | | | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | 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 | We have some macros used in release tarballs. | | | | separately. | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | 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 | No | ? | | | FindKDEWIN_Packager.cmake | | | | | FindKDEWin.cmake | | | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | 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 | | | | | file. | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindPostgreSQL.cmake | Yes | Probably remove. | Upstream looks more complete. | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindPulseAudio.cmak | No | Upstream? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindPyKDE4.cmake | No | ? | | | FindPyKDE4.py | | | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindPyQt4.cmake | No | ? | | | FindPyQt.py | | | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindPythonLibrary.cmake | Yes: | Try to merge with CMake. | | | | FindPythonInterp.cmake | | | | | FindPythonLibs.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 | Yes | Probably remove; Alex knows best. | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindRUBY.cmake | Yes (FindRuby.cmake) | Remove? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindSamba.cmake | No | Upstream? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindSane.cmake | No | Upstream? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindSasl2.cmake | No | Upstream? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindSharedDesktopOntologies.cmake | No | Remove in favour of a Config.cmake | | | | | file. | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindSharedMimeInfo.cmake | No | Upstream? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindSoprano.cmake | No | Remove in favour of a Config.cmake | | | | | file. | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindSqlite.cmake | No | Upstream? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | 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? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindUSB.cmake | No | Rename and upstream? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindWcecompat.cmake | No | ? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindX11.cmake | Yes | Remove. | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindXKB.cmake | No | Upstream? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindXine.cmake | No | Upstream? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------| | FindXMMS.cmake | No | Remove as XMMS is dead? | | |-------------------------------------+------------------------+---------------------------------------+------------------------------------------------|
kde-baseapps
|-------------------+-----------------+-----------+----------| | File Name | Exists in CMake | Plan | Comments | |-------------------+-----------------+-----------+----------| | FindLibTidy.cmake | No | Upstream? | | |-------------------+-----------------+-----------+----------|
kde-runtime
|-------------------+-----------------+-----------+----------| | File Name | Exists in CMake | Plan | Comments | |-------------------+-----------------+-----------+----------| | 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 | - | | | FindKDE4Internal.cmake | | | |----------------------------------+---------------------------------+-------------------------------------------------------| | KDE4Macros.cmake | - | Need to check each macro and see what can be dropped. | |----------------------------------+---------------------------------+-------------------------------------------------------| | Qt4ConfigDependentSettings.cmake | Remove our copy | | | Qt4Macros.cmake | | | |----------------------------------+---------------------------------+-------------------------------------------------------| | NepomukAddOntologyClasses.cmake | Merge into NepomukMacros.cmake? | Need to contact trueg about that. | |----------------------------------+---------------------------------+-------------------------------------------------------| | NepomukMacros.cmake | - | | |----------------------------------+---------------------------------+-------------------------------------------------------| | PythonCompile.py | Upstream? | | | PythonMacros.cmake | | | |----------------------------------+---------------------------------+-------------------------------------------------------| | 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 if upstreamed. | | |------------------------------------+---------------------------------------+--------------------------------------------------------------------| | kde4init_dummy.cpp.in | ? | | | kde4init_win32lib_dummy.cpp.in | | | |------------------------------------+---------------------------------------+--------------------------------------------------------------------| | kde4uic.cmake | Remove if possible. | | |------------------------------------+---------------------------------------+--------------------------------------------------------------------|