[ccache] Migration from autotools to cmake

Иван Вайгульт i.vaigult at gmail.com
Tue Jul 12 10:03:17 UTC 2016


Hi all,

In order to enable visual studio build I did full build replica using
cmake. My fork is here
<https://github.com/ivaigult/ccache/tree/autotools2cmake>. Travis build is
enabled <https://travis-ci.org/ivaigult/ccache/builds> using cmake. You may
try it by:

mkdir build # For out of soruce build
cd build
cmake ..
cmake --build . # Builds ccache
ctest -V # Runs all tests
cpack -G TGZ # Creates .tgz package
cpack -G DEB # Creates .deb package

Use cmake -G "Visual Studio 12 2013 Win64" for visual studio solution
generation.

As it was in autotools build, I created config.h file using cmake. All the
feature macroses remains the same. So, I am pretty sure that at least cross
compilation build for exotic OSes like HP-UX, OpenBSD, Solaris 8 etc.
should be still functional, but I have not tried it yet.

I also ported useful developer targets. Gperf generation is here,
basically, if gperf is installed build system will generate necessary files
automatically, if it's not BS will fallback to pre-generated one. All the
documentation (man page and *.html files) is generated at build stage and
properly packed. If asciidoc and xsltproc are not installed on host system,
BS will silently skip documentation stage. Also `uncrustify` target is
available by `make uncrustify`.

Please note, that build system doesn't depend on gnu tools like awk, grep
or even bash. For example, patching of gperf output is done by cmake script
`count_confitems.cmake`.

Autools build is still functional, but in order to support only one build
system I'm planning to remove it. Note, that it will also allow to avoid
python's license dependency (m4/feature_macros.m4).

Any feedback from you is desired. Please let me know if I left something
unimplemented.

I will be ready for doing PR as soon as all the issues are resolved and
everybody is agree.

-Ivan


More information about the ccache mailing list