KDE Core/Platform 11/Buildsystem/FindFilesSurvey: Difference between revisions

From KDE Community Wiki
No edit summary
Line 7: Line 7:




== Check*.cmake files ==
= Check*.cmake files =
{| border="1"
{| border="1"
| File Name   
| File Name   
Line 67: Line 67:
|}
|}


== Generic Macros ==
= Generic Macros =
{| border="1"
{| border="1"
| File Name
| File Name
Line 198: Line 198:
|}
|}


== Find*.cmake ==
= Find*.cmake =
In this table, "upstreaming" a module can mean sending it to either CMake itself or the external modules collection.
In this table, "upstreaming" a module can mean sending it to either CMake itself or the external modules collection.


=== kdelibs ===
== kdelibs ==
{| border="1"
{| border="1"
| File Name
| File Name
Line 725: Line 725:
|}
|}


=== kde-baseapps ===
== kde-baseapps ==
{| border="1"
{| border="1"
| File Name   
| File Name   
Line 740: Line 740:
|}
|}


=== kde-runtime ===
== kde-runtime ==
{| border="1"
{| border="1"
| File Name   
| File Name   
Line 773: Line 773:
|}
|}


=== kde-workspace ===
== kde-workspace ==
{| border="1"
{| border="1"
| File Name
| File Name
Line 841: Line 841:
|}
|}


=== kdepimlibs ===
== kdepimlibs ==
{| border="1"
{| border="1"
| File Name
| File Name
Line 874: Line 874:
|}
|}


== Framework-specific ==
= Framework-specific =
In general, they contain KDE-specific code which should not be upstreamed.
In general, they contain KDE-specific code which should not be upstreamed.


Line 910: Line 910:
|}
|}


== Other files in kdelibs ==
= Other files in kdelibs =
{| border="1"
{| border="1"
| File Name
| File Name

Revision as of 20:19, 29 June 2011

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.


Check*.cmake files

File Name Exists in CMake Plan Status Style Status Who
CheckCXXSourceCompiles.cmake Yes Upstream to ECM, merge in changes from CMake Our version supports linking against imported targets, upstream CMake doesn't. 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). Ok Decided ?
CheckCXXSourceRuns.cmake Yes See above. See above Ok Decided ?
CheckCXXSymbolExists.cmake No Upstream to CMake (or ECM) 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. Ok Decided ?
CheckPointerMember.cmake No Upstream to CMake (or ECM) Only used by krdc. Calls check_cxx_source_compiles on a struct with a given member. Ok Need feedback. ?
CheckPrototypeExists.cmake No Upstream to CMake (or ECM) 1d0e1a0 says this was going to be upstreamed. Try again? Ok Need feedback ?
CheckStructMember.cmake No Remove CMake has CheckStructHasMember.cmake - Decided -

Generic Macros

File Name Exists in CMake Plan Comments Style Status Who
MacroAddCompileFlags.cmake No Remove A trivial macro, used only in few places (kdm mainly I think). - Need feedback -
MacroAddLinkFlags.cmake No Remove A trivial macro, used only in few places (kdm mainly I think). - Need feedback -
MacroAdditionalCleanFiles.cmake No Remove Use set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES file1 ... ) instead - Decided -
MacroAppendIf.cmake No Remove Not used anywhere. (Raphael) Really ? (Alex) Ok Need feedback ?
MacroBoolTo01.cmake No Upstream to ECM Ok Need feedback ?
MacroEnsureOutOfSourceBuild.cmake No Upstream to ECM or CMake Many people request something like this on the cmake list. Ok Need feedback ?
MacroEnsureVersion.cmake No Upstream? to ECM ? Or Remove ? It doesn't do much more than if(... VERSION_GREATER ...) . This was not available yet in 2007 when the macro was written. Ok Need feedback ?
MacroKAuth.cmake No Remove. Already deprecated. - Decided -
MacroLibrary.cmake No Upstream to ECM The idea of this file is that it simply includes all macro files so as user you have to include only this one file and get all macro from ECM. Ok Need feedback. ?
MacroLogFeature.cmake No Remove and extend CMake's FeatureSummary as necessary. Investigate CMake's FeatureSummary, what needs to be added so that MacroLogFeature becomes unnecessary. This requires some real work. Ok Need feedback ?
MacroOptionalAddSubdirectory.cmake No Upstream to ECM Will not be accepted into CMake Ok Decided ?
MacroOptionalDependPackage.cmake No Remove Broken, expects a FindFoo.cmake possibly provided by the application itself. - Decided -
MacroOptionalFindPackage.cmake No Remove in CMake 2.8.6 each find_package() call can be disabled via CMAKE_DISABLE_FIND_PACKAGE_PackageName. - Decided -
MacroPushRequiredVars.cmake No Upstream to CMake or ECM Useful when testing for stuff using check_function_exists() etc. Ok Decided Alex
MacroWriteBasicCMakeVersionFile.cmake and BasicFindPackageVersion.cmake.in No Upstream to CMake or ECM Useful for every package which installs a FooConfig.cmake file Ok Decided Alex

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 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 Remove once we depend on 2.8.6 Ok Yes
FindPhonon.cmake No Remove in favour of a Config.cmake file.
FindPkgConfig.cmake Yes Upstream to cmake. Upstream is pretty much identical, but I think we have the additional QUIET keyword.
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 to cmake ?
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.

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.