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