[CMake] providing library information, what's the cmake way

Rolf Eike Beer eike at sf-mail.de
Wed Nov 24 11:34:46 EST 2010


> On Wed, Nov 24, 2010 at 6:57 AM, Rolf Eike Beer <eike at sf-mail.de> wrote:
>>> In KDE we have a macro MACRO_WRITE_BASIC_CMAKE_VERSION_FILE() which
>>> helps
>>> with
>>> creating a basic version-info file which should be installed along with
>>> the
>>> Config-file.
>>> It consists of MacroWriteBasicCMakeVersionFile.cmake and
>>> BasicFindPackageVersion.cmake.in which you can find in
>>> http://websvn.kde.org/trunk/KDE/kdelibs/cmake/modules/ .
>>
>> I wonder why you use
>>
>> get_filename_component(_currentListFileDir ${CMAKE_CURRENT_LIST_FILE}
>> PATH)
>>
>> in there instead of CMAKE_CURRENT_LIST_DIR.

> Probably because CMAKE_CURRENT_LIST_DIR was just invented and is only
> in CMake 2.8.3... get_filename_component works with several versions
> of CMake, and does not require 2.8.3 or later.

So I think it is _really_ necessary to go through all the CMake
documentation items and add a line about when which feature was added.

Everyone looks into his local CMake documentation and uses what he finds
in there. And then it breaks on older versions. You currently have no
chance to know what works but to install all older versions and do a
binary search in the documentation. That simply does not scale.

Eike


More information about the CMake mailing list