Hello,

I have an idea to improve the CMake build system by integrating with the abi-compliance-checker [1] tool. It's a tool for checking for API/ABI backward compatibility of C/C++ libraries. In the Java world there is an alternative tool called Clirr, which is already integrated to the Ant and Maven build systems as a plug-in. But there is no such thing in the C/C++ world yet. So, people have to create custom scripts (phonon/cmake [2], mysql++/make [3], ...) to integrate the abi-compliance-checker tool into the build system.

It would be great if CMake users could be able to check API/ABI changes using two easy built-in CMake commands: "make abidump" and "make abicheck", without the need to understand how the abi-compliance-checker tool works. The first command ("make abidump") should create a snapshot of a "stable" library ABI, which will be compared with the next releases by the second command ("make abicheck"):

"make abidump": abi-compliance-checker --lib=name --dump=v1.xml --dump-path=snapshot-v1.abi.tar.gz "make abicheck": abi-compliance-checker --lib=name --d1=snapshot-v1.abi.tar.gz --d2=v2.xml

v1.xml and v2.xml are XML-descriptors of old (snapshot) and new (current) versions of a library(ies):

<version>
    1.0
</version>

<headers>
/directory/with/headers/
</headers>

<libs>
/directory/with/libraries/
</libs>

I'm not familiar with the CMake internals and cannot implement this feature by myself. It would be great if some experts in CMake could write it. Considering the great number of C/C++ libraries using CMake, this feature should make upstream development of C/C++ libraries more stable.

Thanks!

[1] http://forge.ispras.ru/projects/abi-compliance-checker
[2] https://projects.kde.org/projects/kdesupport/phonon/phonon/repository/revisions/8f6dd7b114773cb83920ddf73b16e4a35883d746
[3] http://svn.gna.org/viewcvs/mysqlpp/trunk/mysql%2B%2B.bkl?view=markup

--
Andrey Ponomarenko
Department for Operating Systems at ISPRAS
 web:    http://www.LinuxTesting.org
 mail:   aponomare...@ispras.ru

--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to