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

From KDE Community Wiki
No edit summary
 
(97 intermediate revisions by 3 users not shown)
Line 6: Line 6:
kdelibs, kdepimlibs, kde-baseapps, kde-runtime and kde-workspace were analysed.
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 ==
= Check*.cmake files =
{|
{| border="1"
| File Name                   | Exists in CMake | Plan                                   | Comments                                                         |-
| File Name
| CheckCXXSourceCompiles.cmake | Yes            | Search mailing list for CMake          | Began to diverge; CMake has FAIL_REGEX support, our version      |
| Exists in CMake  
|                             |                | developers' rationale, maybe            | handle imported targets (Alex said CMake developers did not      |
| Plan  
|                             |                | upstream.                              | accept this feature upstream, need to search the mailing list    |
| Comments
|                              |                |                                        | archives).                                                      |
| Style
|-| CheckCXXSourceRuns.cmake    | Yes            | Idem.                                  | Idem.                                                            |
| Status
| Who
|-
|-
| CheckCXXSymbolExists.cmake   | No              | Either check if we still support        | Almost equivalent to CMake's CheckSymbolExists.cmake, just      |
| CheckCXXSourceCompiles.cmake  
|                              |                | glibc 2.9, perhaps try                  | creates .cxx files instead of .c ones.                          |
| Yes
|                             |                | upstreaming.                            |                                                                  |
| Upstream to 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
| DONE
| Alex
|-
|-
| CheckPointerMember.cmake     | No              | Only used by krdc; remove from kdelibs? | Calls check_cxx_source_compiles on a struct with a given member. |
| CheckCXXSourceRuns.cmake
| Yes
| See above.
| See above
| Ok
| DONE
| Alex
|-
|-
| CheckPrototypeExists.cmake   | No             | 1d0e1a0 says this was going to be      |                                                                 |
| CheckCXXSymbolExists.cmake
|                             |                | upstreamed. Try again?                  |                                                                  |
| No
| Upstream to CMake
| 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
| DONE
| Alex
|-
|-
| CheckStructMember.cmake     | No             | Remove; CMake has                      |                                                                 |
| CheckPointerMember.cmake
|                             |                | CheckStructHasMember.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
| Port to CheckPrototypeDefinition.cmake
|
| Ok
| Usages still need to be replaced
| ?
|-
| CheckStructMember.cmake
| No
| Remove
| CMake has CheckStructHasMember.cmake, but out version uses a C++ compiler for checking. Simply remove or add a CheckCXXStructHasMember.cmake to CMake ? Where is it used where C++ is needed ?
| -
| Need feedback
| -
|-
|}
= Generic Macros =
{| border="1"
| 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). Use set_property(APPEND_STRING) instead
|  -
| DONE
| Alex
|-
| MacroAddLinkFlags.cmake
| No
| Remove
| A trivial macro, used only in few places (kdm mainly I think).Use set_property(APPEND_STRING) instead
|  -
| DONE
| Alex
|-
| MacroAdditionalCleanFiles.cmake
| No
| Remove
| Use set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES file1 ... ) instead
|  -
| DONE
| Alex
|-
| 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 CMake (or ECM)
| 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.
| -
| DONE
| Alex
|-
| 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
| DONE
| Alex
|-
| MacroOptionalAddSubdirectory.cmake
| No
| Upstream to ECM
| Will not be accepted into CMake
| Ok
| DONE
| Alex
|-
| MacroOptionalDependPackage.cmake
| No
| Remove
| Broken, expects a FindFoo.cmake possibly provided by the application itself.
| -
| DONE
| Alex
|-
| MacroOptionalFindPackage.cmake
| No
| Remove
| in CMake 2.8.6 each find_package() call can be disabled via CMAKE_DISABLE_FIND_PACKAGE_PackageName.
| -
| DONE
| Alex
|-
| MacroPushRequiredVars.cmake
| No
| Upstream to CMake
| Useful when testing for stuff using check_function_exists() etc. Renamed to cmake_push/pop_check_state()
| Ok
| DONE
| Alex
|-
| MacroWriteBasicCMakeVersionFile.cmake and BasicFindPackageVersion.cmake.in
| No
| Upstream to CMake
| Useful for every package which installs a FooConfig.cmake file
| Ok
| DONE
| Alex
|-
| kde4exportsheader.h.in
| No
| Upstream to CMake
| Used in KDE4Macros.cmake
| Ok
| DONE
| Stephen
|}
|}


= KDE specific stuff =
In this table, files are listed which are mostly KDE4-specific and which belong to KDE.
Still some of them might be candidates for upstreaming.
{| border="1"
| File Name
| Plan
| Comments
| Style
| Status
| Who
|-
| FindKDE4Internal.cmake
| Keep in kdelibs, but mostly replace with installed FooConfig.cmake files
| The FooConfig.cmake files feature did not exist when we started to use cmake for KDE. If it would have already existed back then, this file wouldn't exist in the form as it is today.
| Ok
| Need feedback
| ?
|-
| KDE4Macros.cmake
| Keep in kdelibs
| Will be included from the installed Config.cmake file
| Ok
| Need feedback
| ?
|-
| Win32Macros.cmake
| Keep, refactor/rename.
| Used by KDE4Macros.cmake under Windows. It contains currently exactly one macro, so the name is misleading.
| So-so
| Need feedback
| ?
|-
| kde4init_dummy.cpp.in and kde4init_win32lib_dummy.cpp.in
| Keep in kdelibs
| Used by KDE4Macros.cmake. Necessary for kdeinit support
| Ok
| Decided
| -
|-
| kde4_exec_via_sh.cmake
| Keep in kdelibs
| Used by KDE4Macros.cmake
| Ok
| Decided.
| -
|-
| kde4uic.cmake
| Keep in kdelibs or remove
| Still necessary with Qt5 ?
| Ok
| Need feedback
| ?
|-
| KDE4Defaults.cmake
| Keep in kdelibs
| Ok
| Need feedback
| ?
| -
|-
| kde4automoc.files.in
| Remove
| This file is unused, it is already in automoc in kdesupport
| -
| Decided
| -
|-
| kde4_cmake_uninstall.cmake.in
| Upstream to CMake (or ECM)
| This is used to automatically create an uninstall target. Currently done by FindKDE4Internal.cmake. This could be made into a macro in ECM, which is called by FindKDE4Internal.cmake
| Ok
| Need feedback
| ?
|-
| check_installed_exports_file.cmake
| ?
| Have to check. Looks like keep or upstream. I think the issue mentioned in the file is still valid.
| Ok
| Need feedback
| ?
|}


== 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 ==
<pre>
|-------------------------------------+------------------------+---------------------------------------+------------------------------------------------|
| 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?              |                                                |
|-------------------------------------+------------------------+---------------------------------------+------------------------------------------------|
</pre>


=== kde-baseapps ===
=== Exist in cmake ===
<pre>
|-------------------+-----------------+-----------+----------|
| File Name        | Exists in CMake | Plan      | Comments |
|-------------------+-----------------+-----------+----------|
| FindLibTidy.cmake | No              | Upstream? |          |
|-------------------+-----------------+-----------+----------|
</pre>


=== kde-runtime ===
All the following modules should be synced with CMake, so we can remove our own copies.
<pre>
|-------------------+-----------------+-----------+----------|
| File Name        | Exists in CMake | Plan      | Comments |
|-------------------+-----------------+-----------+----------|
| FindCLucene.cmake | No              | Upstream? |          |
|-------------------+-----------------+-----------+----------|
| FindLibSSH.cmake  | No              | Upstream? |          |
|-------------------+-----------------+-----------+----------|
| FindQNtrack.cmake | No              | Upstream? |          |
|-------------------+-----------------+-----------+----------|
| FindSLP.cmake    | No              | Upstream? |          |
|-------------------+-----------------+-----------+----------|
</pre>


=== kde-workspace ===
We have to make sure that
<pre>
* all features of the version from CMake are kept
|-------------------------+-----------------+------------------------------------------+----------|
* the module from CMake stays 100% source compatible
| File Name              | Exists in CMake | Plan                                    | Comments |
* probably also all features from our version are kept
|-------------------------+-----------------+------------------------------------------+----------|
* source compatibility for our version may be broken, but must be documented here: http://techbase.kde.org/Development/ECM_SourceIncompatChanges
| 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?                    |          |
|-------------------------+-----------------+------------------------------------------+----------|
</pre>


=== kdepimlibs ===
   
<pre>
|-------------------+-----------------+------------------------------------------+----------|
| 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. |          |
|-------------------+-----------------+------------------------------------------+----------|
</pre>


== Framework-specific ==
{| border="1"
| File Name
| Comments
| Status
| Who
|-
| FindBoost.cmake
| Remove. Already deprecated.
| DONE
| Alex
|-
| FindFlex.cmake
| Merge with FindFLEX.cmake in CMake.
| DONE
| Alex
|-
| FindFreetype.cmake
| Upstream is more complete. Remove our version.
| DONE
| Alex
|-
| FindGIF.cmake
| Merge with cmake
| DONE
| Alex
|-
| FindGettext.cmake
| Merge or provide our macros separately. We have some macros used in release tarballs.
| DONE
| Raphael
|-
| FindLibXml2.cmake
| Remove. Upstream is identical.
| DONE
| Alex
|-
| FindLibXslt.cmake
| Our version has some more features. Merge them into the cmake version, then remove our version.
| DONE
| Alex
|-
| FindOpenSSL.cmake
| Remove. Upstream is pretty much identical, should even solve some reported build issues.
| DONE
| Raphael, Alex
|-
| FindPackageHandleStandardArgs.cmake
| Remove once we depend on 2.8.4
| DONE
| Alex
|-
| FindPkgConfig.cmake
| Remove, upstream is identical.
| DONE
| Alex
|-
| FindPostgreSQL.cmake
| Probably remove. Upstream looks more complete.
| DONE
| Alex
|-
| FindPythonLibrary.cmake
| CMake has FindPythonInterp.cmake and FindPythonLibs.cmake. Try to merge with CMake.
| TODO
| Marcus
|-
| FindQt4.cmake, Qt4Macros.cmake and Qt4ConfigDependentSettings.cmake
| Sync with CMake 2.8.6, then 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. But with Qt5 FindQt4 will be obsolete anyway.
| TODO
| ?
|-
| FindRUBY.cmake
| CMake has FindRuby.cmake.Remove our copy
| DONE
| Alex
|-
| FindX11.cmake
| Merge with CMake.
| DONE
| Alex
|-
|}
 
===Does not exist in cmake===
{| border="1"
| 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
| Remove, automoc is now in cmake since 2.8.6.
| DONE
|-
| FindAvahi.cmake
| No
| Upstream?
|
|-
| FindBerkeleyDB.cmake
| No
| Upstream?
|
|-
| FindBlitz.cmake
| No
| Remove, already deprecated.
|
|-
| FindBlueZ.cmake
| No
| Upstream?
|
|-
| 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?
|
|-
| FindFontconfig.cmake
| No
| Upstream?
|
|-
| FindGLIB2.cmake
| No
| Upstream? Merge with FindQObject ?
|
|-
| FindGMP.cmake
| No
| Upstream?
|
|-
| FindGObject.cmake
| No
| Upstream? Merge with FindGLIB2.cmake ?
|
|-
| FindGSSAPI.cmake
| No
| Upstream?
|
|-
| FindGStreamer.cmake
| No
| Upstream?
|
|-
| 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
| DONE
|-
| FindKdepimLibs.cmake
| No
| Remove in favour of a Config.cmake file.
| DONE
|-
| 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?
|
|-
| 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?
|
|-
| FindPCRE.cmake
| No
| Upstream?
|
|-
| FindPhonon.cmake
| No
| Remove in favour of a Config.cmake file.
|
|-
| FindPlasma.cmake
| No
| Remove, Deprecated.
| DONE
|-
| 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
|
|-
| FindPulseAudio.cmake
| No
| Upstream to cmake ?
|
|-
| FindPyKDE4.cmake and FindPyKDE4.py
| No
| ?
|
|-
| FindPyQt4.cmake and FindPyQt.py
| No
| ?
|
|-
| FindQCA2.cmake
| No
| Remove in favour of a Config.cmake file?
|
|-
| FindQImageBlitz.cmake
| No
| Remove in favour of a Config.cmake file?
|
|-
| 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.
| DONE
|
|
|-
| 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 ?
|
|-
| FindXKB.cmake
| No
| Upstream to cmake
|
|-
| FindXine.cmake
| No
| Upstream to cmake ?
|
|-
| FindXMMS.cmake
| No
| Remove as XMMS is dead?
|
|}
 
== kde-baseapps ==
{| border="1"
| File Name 
| Exists in CMake
| Plan
| Comments                                                       
| Status
|-
| FindLibTidy.cmake
| No
| Upstream?
|
|
|}
 
== kde-runtime ==
{| border="1"
| 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 ==
{| border="1"
| 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 ==
{| border="1"
| File Name
| Exists in CMake
| Plan
| Comments
|-
| FindAkonadi.cmake
| No
| Remove
| Done
|-
| 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.
In general, they contain KDE-specific code which should not be upstreamed.


<pre>
{| border="1"
|----------------------------------+---------------------------------+-------------------------------------------------------|
| File Name
| File Name                       | Plan                           | Comments                                             |
| Plan
|----------------------------------+---------------------------------+-------------------------------------------------------|
| Comments
| KDE4Defaults.cmake              | -                               |                                                      |
|-
| FindKDE4Internal.cmake          |                                |                                                      |
| Need to check each macro and see what can be dropped. |
|----------------------------------+---------------------------------+-------------------------------------------------------|
|-
| KDE4Macros.cmake                | -                              | Need to check each macro and see what can be dropped. |
| NepomukAddOntologyClasses.cmake
|----------------------------------+---------------------------------+-------------------------------------------------------|
| Merge into NepomukMacros.cmake?
| Qt4ConfigDependentSettings.cmake | Remove our copy                |                                                      |
| Need to contact trueg about that.
| Qt4Macros.cmake                  |                                |                                                      |
|-
|----------------------------------+---------------------------------+-------------------------------------------------------|
| NepomukMacros.cmake
| NepomukAddOntologyClasses.cmake | Merge into NepomukMacros.cmake? | Need to contact trueg about that.                     |
| -                              |
|----------------------------------+---------------------------------+-------------------------------------------------------|
|-
| NepomukMacros.cmake             | -                              |                                                      |
| PythonCompile.py and PythonMacros.cmake
|----------------------------------+---------------------------------+-------------------------------------------------------|
| Upstream?
| PythonCompile.py                 | Upstream?                      |                                                      |
|
| PythonMacros.cmake               |                                |                                                      |
|-
|----------------------------------+---------------------------------+-------------------------------------------------------|
| SIPMacros.cmake
| SIPMacros.cmake                  | Upstream?                       |                                                      |
| Upstream?
|----------------------------------+---------------------------------+-------------------------------------------------------|
|
| Win32Macros.cmake                | No idea.                        |                                                      |
|}
|----------------------------------+---------------------------------+-------------------------------------------------------|
</pre>
 
== Generic Macros ==
<pre>
|---------------------------------------+-----------------+------------------------------------------+---------------------------|
| 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              | ?                                        |                          |
|---------------------------------------+-----------------+------------------------------------------+---------------------------|
</pre>


== Other files in kdelibs ==
= TODOs =
<pre>
* http://community.kde.org/Frameworks/Epics/CMake
|------------------------------------+---------------------------------------+--------------------------------------------------------------------|
* add cmake issues to "done" definition of http://community.kde.org/Frameworks/Epics/Splitting_kdelibs
| File Name                          | Plan                                  | Comments                                                          |
* notify k-f-d on incompatible changes in cmake
|------------------------------------+---------------------------------------+--------------------------------------------------------------------|
* when a library is modularized out of kdelibs, add needed Find-modules to e-c-m. Maintainer should notify kde-buildsystem
| check_installed_exports_file.cmake | Remove?                              | Alex writes in kdelibs/CMakeLists.txt that the target installation |
* contact Sune about multiarch
|                                    |                                      | 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.                  |                                                                    |
|------------------------------------+---------------------------------------+--------------------------------------------------------------------|
</pre>

Latest revision as of 19:54, 18 July 2013

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 Comments Style Status Who
CheckCXXSourceCompiles.cmake Yes Upstream to 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 DONE Alex
CheckCXXSourceRuns.cmake Yes See above. See above Ok DONE Alex
CheckCXXSymbolExists.cmake No Upstream to CMake 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 DONE Alex
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 Port to CheckPrototypeDefinition.cmake Ok Usages still need to be replaced ?
CheckStructMember.cmake No Remove CMake has CheckStructHasMember.cmake, but out version uses a C++ compiler for checking. Simply remove or add a CheckCXXStructHasMember.cmake to CMake ? Where is it used where C++ is needed ? - Need feedback -

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). Use set_property(APPEND_STRING) instead - DONE Alex
MacroAddLinkFlags.cmake No Remove A trivial macro, used only in few places (kdm mainly I think).Use set_property(APPEND_STRING) instead - DONE Alex
MacroAdditionalCleanFiles.cmake No Remove Use set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES file1 ... ) instead - DONE Alex
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 CMake (or ECM) 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. - DONE Alex
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 DONE Alex
MacroOptionalAddSubdirectory.cmake No Upstream to ECM Will not be accepted into CMake Ok DONE Alex
MacroOptionalDependPackage.cmake No Remove Broken, expects a FindFoo.cmake possibly provided by the application itself. - DONE Alex
MacroOptionalFindPackage.cmake No Remove in CMake 2.8.6 each find_package() call can be disabled via CMAKE_DISABLE_FIND_PACKAGE_PackageName. - DONE Alex
MacroPushRequiredVars.cmake No Upstream to CMake Useful when testing for stuff using check_function_exists() etc. Renamed to cmake_push/pop_check_state() Ok DONE Alex
MacroWriteBasicCMakeVersionFile.cmake and BasicFindPackageVersion.cmake.in No Upstream to CMake Useful for every package which installs a FooConfig.cmake file Ok DONE Alex
kde4exportsheader.h.in No Upstream to CMake Used in KDE4Macros.cmake Ok DONE Stephen

KDE specific stuff

In this table, files are listed which are mostly KDE4-specific and which belong to KDE. Still some of them might be candidates for upstreaming.

File Name Plan Comments Style Status Who
FindKDE4Internal.cmake Keep in kdelibs, but mostly replace with installed FooConfig.cmake files The FooConfig.cmake files feature did not exist when we started to use cmake for KDE. If it would have already existed back then, this file wouldn't exist in the form as it is today. Ok Need feedback ?
KDE4Macros.cmake Keep in kdelibs Will be included from the installed Config.cmake file Ok Need feedback ?
Win32Macros.cmake Keep, refactor/rename. Used by KDE4Macros.cmake under Windows. It contains currently exactly one macro, so the name is misleading. So-so Need feedback ?
kde4init_dummy.cpp.in and kde4init_win32lib_dummy.cpp.in Keep in kdelibs Used by KDE4Macros.cmake. Necessary for kdeinit support Ok Decided -
kde4_exec_via_sh.cmake Keep in kdelibs Used by KDE4Macros.cmake Ok Decided. -
kde4uic.cmake Keep in kdelibs or remove Still necessary with Qt5 ? Ok Need feedback ?
KDE4Defaults.cmake Keep in kdelibs Ok Need feedback ? -
kde4automoc.files.in Remove This file is unused, it is already in automoc in kdesupport - Decided -
kde4_cmake_uninstall.cmake.in Upstream to CMake (or ECM) This is used to automatically create an uninstall target. Currently done by FindKDE4Internal.cmake. This could be made into a macro in ECM, which is called by FindKDE4Internal.cmake Ok Need feedback ?
check_installed_exports_file.cmake ? Have to check. Looks like keep or upstream. I think the issue mentioned in the file is still valid. Ok Need feedback ?

Find*.cmake

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

kdelibs

Exist in cmake

All the following modules should be synced with CMake, so we can remove our own copies.

We have to make sure that


File Name Comments Status Who
FindBoost.cmake Remove. Already deprecated. DONE Alex
FindFlex.cmake Merge with FindFLEX.cmake in CMake. DONE Alex
FindFreetype.cmake Upstream is more complete. Remove our version. DONE Alex
FindGIF.cmake Merge with cmake DONE Alex
FindGettext.cmake Merge or provide our macros separately. We have some macros used in release tarballs. DONE Raphael
FindLibXml2.cmake Remove. Upstream is identical. DONE Alex
FindLibXslt.cmake Our version has some more features. Merge them into the cmake version, then remove our version. DONE Alex
FindOpenSSL.cmake Remove. Upstream is pretty much identical, should even solve some reported build issues. DONE Raphael, Alex
FindPackageHandleStandardArgs.cmake Remove once we depend on 2.8.4 DONE Alex
FindPkgConfig.cmake Remove, upstream is identical. DONE Alex
FindPostgreSQL.cmake Probably remove. Upstream looks more complete. DONE Alex
FindPythonLibrary.cmake CMake has FindPythonInterp.cmake and FindPythonLibs.cmake. Try to merge with CMake. TODO Marcus
FindQt4.cmake, Qt4Macros.cmake and Qt4ConfigDependentSettings.cmake Sync with CMake 2.8.6, then 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. But with Qt5 FindQt4 will be obsolete anyway. TODO ?
FindRUBY.cmake CMake has FindRuby.cmake.Remove our copy DONE Alex
FindX11.cmake Merge with CMake. DONE Alex

Does not exist in cmake

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 Remove, automoc is now in cmake since 2.8.6. DONE
FindAvahi.cmake No Upstream?
FindBerkeleyDB.cmake No Upstream?
FindBlitz.cmake No Remove, already deprecated.
FindBlueZ.cmake No Upstream?
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?
FindFontconfig.cmake No Upstream?
FindGLIB2.cmake No Upstream? Merge with FindQObject ?
FindGMP.cmake No Upstream?
FindGObject.cmake No Upstream? Merge with FindGLIB2.cmake ?
FindGSSAPI.cmake No Upstream?
FindGStreamer.cmake No Upstream?
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 DONE
FindKdepimLibs.cmake No Remove in favour of a Config.cmake file. DONE
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?
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?
FindPCRE.cmake No Upstream?
FindPhonon.cmake No Remove in favour of a Config.cmake file.
FindPlasma.cmake No Remove, Deprecated. DONE
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
FindPulseAudio.cmake No Upstream to cmake ?
FindPyKDE4.cmake and FindPyKDE4.py No ?
FindPyQt4.cmake and FindPyQt.py No ?
FindQCA2.cmake No Remove in favour of a Config.cmake file?
FindQImageBlitz.cmake No Remove in favour of a Config.cmake file?
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. DONE
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 ?
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 Remove Done
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
NepomukAddOntologyClasses.cmake Merge into NepomukMacros.cmake? Need to contact trueg about that.
NepomukMacros.cmake
PythonCompile.py and PythonMacros.cmake Upstream?
SIPMacros.cmake Upstream?

TODOs