Jump to content

KDE Core/Platform 11/Buildsystem/FindFilesSurvey

From KDE Community Wiki
Revision as of 21:39, 23 June 2011 by OpenIDUser12 (talk | contribs) (Generic Macros: Convert table to mediawiki's syntax)

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                                       |
|-------------------------------------+------------------------+---------------------------------------+------------------------------------------------|
| 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 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 -
Qt4ConfigDependentSettings.cmake and Qt4Macros.cmake Remove our copy
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.