]> git.ipfire.org Git - thirdparty/ccache.git/commit
C++-ify source code
authorJoel Rosdahl <joel@rosdahl.net>
Wed, 24 Jul 2019 11:18:17 +0000 (13:18 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Wed, 14 Aug 2019 19:41:28 +0000 (21:41 +0200)
commit68e42bd71650d003cb8f01d6572020015ecc2e58
tree00f1cc30a983379696a8318c488aab2b50360fc6
parentfc49e169b480c43dbe9598a64bb89b6743c3bc7e
C++-ify source code

The ccache source code will be converted to C++, targeting C++11. This
commit only arranges the existing C-style code to be built as C++ code.
This makes it possible to call new C++ code from old C-style code.
Gradual conversion to C++ functionality and idioms will follow in a slow
and controlled fashion – no big bang rewrites.

The alternative would be to convert code in a top-down fashion, i.e.
only calling legacy C code from new C++ code, not the other way around.
That approach is however not a good idea since the code that will
benefit most from being written in proper C++ is code deep down in the
call chains.

Except for renaming source code files to .cpp and .hpp, this commit
makes minimal changes to make the code base buildable again, for
example:

- Instructs configure.ac to look for a mandatory C++11-compliant
  compiler.
- Adds Makefile rules for building C++ code.
- Sets up Travis-CI to pass C++ compiler flags and similar to the build.
- Adds new casts where needed.
- Adds const keywords where needed.
- Renames variables to something else than C++ keywords (e.g.
  “template”).
- Rearranges some code to avoid complaints about goto jumps that cross
  variable lifetimes.
79 files changed:
.editorconfig
.gitignore
.travis.sh
.travis.yml
CONTRIBUTING.md
LICENSE.adoc
Makefile.in
configure.ac
dev.mk.in
doc/INSTALL-from-release-archive.md
doc/INSTALL.md
m4/ax_cxx_compile_stdcxx.m4 [new file with mode: 0644]
misc/uncrustify.cfg
src/args.cpp [moved from src/args.c with 94% similarity]
src/ccache.cpp [moved from src/ccache.c with 96% similarity]
src/ccache.hpp [moved from src/ccache.h with 97% similarity]
src/cleanup.cpp [moved from src/cleanup.c with 99% similarity]
src/common_header.cpp [moved from src/common_header.c with 97% similarity]
src/common_header.hpp [moved from src/common_header.h with 99% similarity]
src/compopt.cpp [moved from src/compopt.c with 98% similarity]
src/compopt.hpp [moved from src/compopt.h with 98% similarity]
src/compr_none.cpp [moved from src/compr_none.c with 94% similarity]
src/compr_zstd.cpp [moved from src/compr_zstd.c with 97% similarity]
src/compress.cpp [moved from src/compress.c with 90% similarity]
src/compression.cpp [moved from src/compression.c with 97% similarity]
src/compression.hpp [moved from src/compression.h with 99% similarity]
src/conf.cpp [moved from src/conf.c with 97% similarity]
src/conf.hpp [moved from src/conf.h with 99% similarity]
src/confitems.cpp [moved from src/confitems.c with 99% similarity]
src/confitems.gperf
src/confitems.hpp [moved from src/confitems.h with 99% similarity]
src/counters.cpp [moved from src/counters.c with 90% similarity]
src/counters.hpp [moved from src/counters.h with 100% similarity]
src/decompr_none.cpp [moved from src/decompr_none.c with 94% similarity]
src/decompr_zstd.cpp [moved from src/decompr_zstd.c with 96% similarity]
src/envtoconfitems.gperf
src/envtoconfitems.hpp [moved from src/envtoconfitems.h with 92% similarity]
src/execute.cpp [moved from src/execute.c with 97% similarity]
src/exitfn.cpp [moved from src/exitfn.c with 87% similarity]
src/hash.cpp [moved from src/hash.c with 95% similarity]
src/hash.hpp [moved from src/hash.h with 99% similarity]
src/hashutil.cpp [moved from src/hashutil.c with 98% similarity]
src/hashutil.hpp [moved from src/hashutil.h with 97% similarity]
src/int_bytes_conversion.hpp [moved from src/int_bytes_conversion.h with 100% similarity]
src/language.cpp [moved from src/language.c with 98% similarity]
src/language.hpp [moved from src/language.h with 100% similarity]
src/lockfile.cpp [moved from src/lockfile.c with 97% similarity]
src/macroskip.hpp [moved from src/macroskip.h with 100% similarity]
src/main.cpp [moved from src/main.c with 100% similarity]
src/manifest.cpp [moved from src/manifest.c with 90% similarity]
src/manifest.hpp [moved from src/manifest.h with 96% similarity]
src/result.cpp [moved from src/result.c with 88% similarity]
src/result.hpp [moved from src/result.h with 98% similarity]
src/stats.cpp [moved from src/stats.c with 99% similarity]
src/system.hpp [moved from src/system.h with 97% similarity]
src/third_party/hashtable.h
src/third_party/hashtable_itr.h
src/third_party/hashtable_private.h
src/third_party/snprintf.c
src/unify.cpp [moved from src/unify.c with 90% similarity]
src/unify.hpp [moved from src/unify.h with 97% similarity]
src/util.cpp [moved from src/util.c with 97% similarity]
unittest/framework.cpp [moved from unittest/framework.c with 91% similarity]
unittest/framework.hpp [moved from unittest/framework.h with 93% similarity]
unittest/main.cpp [moved from unittest/main.c with 96% similarity]
unittest/test_args.cpp [moved from unittest/test_args.c with 97% similarity]
unittest/test_argument_processing.cpp [moved from unittest/test_argument_processing.c with 99% similarity]
unittest/test_compopt.cpp [moved from unittest/test_compopt.c with 95% similarity]
unittest/test_compr_none.cpp [moved from unittest/test_compr_none.c with 96% similarity]
unittest/test_compr_zstd.cpp [moved from unittest/test_compr_zstd.c with 97% similarity]
unittest/test_conf.cpp [moved from unittest/test_conf.c with 88% similarity]
unittest/test_counters.cpp [moved from unittest/test_counters.c with 90% similarity]
unittest/test_hash.cpp [moved from unittest/test_hash.c with 97% similarity]
unittest/test_hashutil.cpp [moved from unittest/test_hashutil.c with 98% similarity]
unittest/test_lockfile.cpp [moved from unittest/test_lockfile.c with 93% similarity]
unittest/test_stats.cpp [moved from unittest/test_stats.c with 88% similarity]
unittest/test_util.cpp [moved from unittest/test_util.c with 94% similarity]
unittest/util.cpp [moved from unittest/util.c with 91% similarity]
unittest/util.hpp [moved from unittest/util.h with 100% similarity]