KDE Core/Platform 11/Buildsystem/FindFilesSurvey: Difference between revisions
(71 intermediate revisions by 2 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. | ||
= Check*.cmake files = | |||
{| border="1" | {| border="1" | ||
| File Name | | File Name | ||
| Exists in CMake | | Exists in CMake | ||
| Plan | | Plan | ||
| | | Comments | ||
| Style | | Style | ||
| Status | | Status | ||
Line 20: | Line 19: | ||
| CheckCXXSourceCompiles.cmake | | CheckCXXSourceCompiles.cmake | ||
| Yes | | Yes | ||
| Upstream to | | 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). | | 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 | | Ok | ||
| | | DONE | ||
| | | Alex | ||
|- | |- | ||
| CheckCXXSourceRuns.cmake | | CheckCXXSourceRuns.cmake | ||
Line 31: | Line 30: | ||
| See above | | See above | ||
| Ok | | Ok | ||
| | | DONE | ||
| | | Alex | ||
|- | |- | ||
| CheckCXXSymbolExists.cmake | | CheckCXXSymbolExists.cmake | ||
| No | | No | ||
| Upstream to CMake | | 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. | | 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 | | Ok | ||
| | | DONE | ||
| | | Alex | ||
|- | |- | ||
| CheckPointerMember.cmake | | CheckPointerMember.cmake | ||
Line 52: | Line 51: | ||
| CheckPrototypeExists.cmake | | CheckPrototypeExists.cmake | ||
| No | | No | ||
| | | Port to CheckPrototypeDefinition.cmake | ||
| | | | ||
| Ok | | Ok | ||
| | | Usages still need to be replaced | ||
| ? | | ? | ||
|- | |- | ||
| CheckStructMember.cmake | | CheckStructMember.cmake | ||
| No | | No | ||
| Remove | | Remove | ||
| CMake has CheckStructHasMember.cmake | | 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" | {| border="1" | ||
| File Name | | File Name | ||
Line 81: | Line 80: | ||
| No | | No | ||
| Remove | | Remove | ||
| A trivial macro, used only in few places (kdm mainly I think). | | A trivial macro, used only in few places (kdm mainly I think). Use set_property(APPEND_STRING) instead | ||
| - | | - | ||
| | | DONE | ||
| | | Alex | ||
|- | |- | ||
| MacroAddLinkFlags.cmake | | MacroAddLinkFlags.cmake | ||
| No | | No | ||
| Remove | | Remove | ||
| A trivial macro, used only in few places (kdm mainly I think). | | A trivial macro, used only in few places (kdm mainly I think).Use set_property(APPEND_STRING) instead | ||
| - | | - | ||
| | | DONE | ||
| | | Alex | ||
|- | |- | ||
| MacroAdditionalCleanFiles.cmake | | MacroAdditionalCleanFiles.cmake | ||
Line 99: | Line 98: | ||
| Use set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES file1 ... ) instead | | Use set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES file1 ... ) instead | ||
| - | | - | ||
| | | DONE | ||
| | | Alex | ||
|- | |- | ||
| MacroAppendIf.cmake | | MacroAppendIf.cmake | ||
Line 120: | Line 119: | ||
| MacroEnsureOutOfSourceBuild.cmake | | MacroEnsureOutOfSourceBuild.cmake | ||
| No | | No | ||
| Upstream to ECM | | Upstream to CMake (or ECM) | ||
| Many people request something like this on the cmake list. | | Many people request something like this on the cmake list. | ||
| Ok | | Ok | ||
Line 136: | Line 135: | ||
| MacroKAuth.cmake | | MacroKAuth.cmake | ||
| No | | No | ||
| Remove. Already deprecated. | | Remove. | ||
| Already deprecated. | |||
| - | | - | ||
| DONE | |||
| Alex | |||
|- | |- | ||
| MacroLibrary.cmake | | MacroLibrary.cmake | ||
Line 155: | Line 154: | ||
| Investigate CMake's FeatureSummary, what needs to be added so that MacroLogFeature becomes unnecessary. This requires some real work. | | Investigate CMake's FeatureSummary, what needs to be added so that MacroLogFeature becomes unnecessary. This requires some real work. | ||
| Ok | | Ok | ||
| | | DONE | ||
| | | Alex | ||
|- | |- | ||
| MacroOptionalAddSubdirectory.cmake | | MacroOptionalAddSubdirectory.cmake | ||
Line 163: | Line 162: | ||
| Will not be accepted into CMake | | Will not be accepted into CMake | ||
| Ok | | Ok | ||
| | | DONE | ||
| | | Alex | ||
|- | |- | ||
| MacroOptionalDependPackage.cmake | | MacroOptionalDependPackage.cmake | ||
Line 171: | Line 170: | ||
| Broken, expects a FindFoo.cmake possibly provided by the application itself. | | Broken, expects a FindFoo.cmake possibly provided by the application itself. | ||
| - | | - | ||
| | | DONE | ||
| | | Alex | ||
|- | |- | ||
| MacroOptionalFindPackage.cmake | | MacroOptionalFindPackage.cmake | ||
Line 179: | Line 178: | ||
| in CMake 2.8.6 each find_package() call can be disabled via CMAKE_DISABLE_FIND_PACKAGE_PackageName. | | in CMake 2.8.6 each find_package() call can be disabled via CMAKE_DISABLE_FIND_PACKAGE_PackageName. | ||
| - | | - | ||
| | | DONE | ||
| | | Alex | ||
|- | |- | ||
| MacroPushRequiredVars.cmake | | MacroPushRequiredVars.cmake | ||
| No | | No | ||
| Upstream to CMake | | Upstream to CMake | ||
| Useful when testing for stuff using check_function_exists() etc. | | Useful when testing for stuff using check_function_exists() etc. Renamed to cmake_push/pop_check_state() | ||
| Ok | | Ok | ||
| | | DONE | ||
| Alex | | Alex | ||
|- | |- | ||
| MacroWriteBasicCMakeVersionFile.cmake and BasicFindPackageVersion.cmake.in | | MacroWriteBasicCMakeVersionFile.cmake and BasicFindPackageVersion.cmake.in | ||
| No | | No | ||
| Upstream to CMake | | Upstream to CMake | ||
| Useful for every package which installs a FooConfig.cmake file | | Useful for every package which installs a FooConfig.cmake file | ||
| Ok | | 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 | | 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. | 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 | |||
* all features of the version from CMake are kept | |||
* the module from CMake stays 100% source compatible | |||
* 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 | |||
{| 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" | {| border="1" | ||
| File Name | | File Name | ||
Line 232: | Line 419: | ||
| FindAutomoc4.cmake | | FindAutomoc4.cmake | ||
| No | | No | ||
| | | Remove, automoc is now in cmake since 2.8.6. | ||
| | | DONE | ||
|- | |- | ||
| FindAvahi.cmake | | FindAvahi.cmake | ||
Line 253: | Line 440: | ||
| No | | No | ||
| Upstream? | | Upstream? | ||
| | | | ||
|- | |- | ||
Line 311: | Line 493: | ||
|- | |- | ||
| FindFlac.cmake | | FindFlac.cmake | ||
| No | | No | ||
| Upstream? | | Upstream? | ||
Line 323: | Line 500: | ||
| No | | No | ||
| Upstream? | | Upstream? | ||
| | | | ||
|- | |- | ||
| FindGLIB2.cmake | | FindGLIB2.cmake | ||
| No | | No | ||
| Upstream? | | Upstream? Merge with FindQObject ? | ||
| | | | ||
|- | |- | ||
Line 347: | Line 514: | ||
| FindGObject.cmake | | FindGObject.cmake | ||
| No | | No | ||
| Upstream? | | Upstream? Merge with FindGLIB2.cmake ? | ||
| | | | ||
|- | |- | ||
Line 359: | Line 526: | ||
| Upstream? | | Upstream? | ||
| | | | ||
|- | |- | ||
| FindGphoto2.cmake | | FindGphoto2.cmake | ||
Line 416: | Line 579: | ||
| FindKdepim.cmake | | FindKdepim.cmake | ||
| No | | No | ||
| Remove | | Remove | ||
| | | DONE | ||
|- | |- | ||
| FindKdepimLibs.cmake | | FindKdepimLibs.cmake | ||
| No | | No | ||
| Remove in favour of a Config.cmake file. | | Remove in favour of a Config.cmake file. | ||
| | | DONE | ||
|- | |- | ||
| FindKexiv2.cmake | | FindKexiv2.cmake | ||
Line 473: | Line 636: | ||
| Upstream? | | Upstream? | ||
| | | | ||
|- | |- | ||
| FindLibintl.cmake | | FindLibintl.cmake | ||
Line 531: | Line 686: | ||
| Upstream? | | Upstream? | ||
| | | | ||
|- | |- | ||
| FindPCRE.cmake | | FindPCRE.cmake | ||
Line 540: | Line 691: | ||
| Upstream? | | Upstream? | ||
| | | | ||
|- | |- | ||
| FindPhonon.cmake | | FindPhonon.cmake | ||
| No | | No | ||
| Remove in favour of a Config.cmake file. | | Remove in favour of a Config.cmake file. | ||
| | | | ||
|- | |- | ||
| FindPlasma.cmake | | FindPlasma.cmake | ||
| No | | No | ||
| Remove | | Remove, Deprecated. | ||
| | | DONE | ||
|- | |- | ||
| FindPolkitQt-1.cmake | | FindPolkitQt-1.cmake | ||
Line 576: | Line 715: | ||
| No | | No | ||
| Ask tsdgeos to provide a Config.cmake | | Ask tsdgeos to provide a Config.cmake | ||
| | | | ||
|- | |- | ||
Line 597: | Line 730: | ||
| No | | No | ||
| ? | | ? | ||
| | | | ||
|- | |- | ||
Line 612: | Line 740: | ||
| No | | No | ||
| Remove in favour of a Config.cmake file? | | Remove in favour of a Config.cmake file? | ||
| | | | ||
|- | |- | ||
Line 661: | Line 776: | ||
| No | | No | ||
| Remove in favour of a Config.cmake file. | | Remove in favour of a Config.cmake file. | ||
| | | DONE | ||
| | | | ||
| | | | ||
Line 701: | Line 816: | ||
| No | | No | ||
| What is this ? | | What is this ? | ||
| | | | ||
|- | |- | ||
Line 726: | Line 834: | ||
|} | |} | ||
== kde-baseapps == | |||
{| border="1" | {| border="1" | ||
| File Name | | File Name | ||
Line 741: | Line 849: | ||
|} | |} | ||
== kde-runtime == | |||
{| border="1" | {| border="1" | ||
| File Name | | File Name | ||
Line 774: | Line 882: | ||
|} | |} | ||
== kde-workspace == | |||
{| border="1" | {| border="1" | ||
| File Name | | File Name | ||
Line 842: | Line 950: | ||
|} | |} | ||
== kdepimlibs == | |||
{| border="1" | {| border="1" | ||
| File Name | | File Name | ||
Line 851: | Line 959: | ||
| FindAkonadi.cmake | | FindAkonadi.cmake | ||
| No | | No | ||
| | | Remove | ||
| | | Done | ||
|- | |- | ||
| FindGpgme.cmake | | FindGpgme.cmake | ||
Line 875: | Line 983: | ||
|} | |} | ||
= 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 883: | Line 991: | ||
| Comments | | Comments | ||
|- | |- | ||
| Need to check each macro and see what can be dropped. | | | Need to check each macro and see what can be dropped. | | ||
|- | |- | ||
Line 904: | Line 1,006: | ||
| SIPMacros.cmake | | SIPMacros.cmake | ||
| Upstream? | | Upstream? | ||
| | | | ||
|} | |} | ||
= | = TODOs = | ||
* http://community.kde.org/Frameworks/Epics/CMake | |||
* add cmake issues to "done" definition of http://community.kde.org/Frameworks/Epics/Splitting_kdelibs | |||
* 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 | |||
* contact Sune about multiarch | |||
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
- all features of the version from CMake are kept
- the module from CMake stays 100% source compatible
- 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
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
- http://community.kde.org/Frameworks/Epics/CMake
- add cmake issues to "done" definition of http://community.kde.org/Frameworks/Epics/Splitting_kdelibs
- 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
- contact Sune about multiarch