UNPKG

namillum

Version:
99 lines (61 loc) 2.67 kB
- [ccache](#ccache) - [clang-format and clang-tidy](#clang-format-and-clang-tidy) - [git-extras](#git-extras) # ccache `ccache` works as a wrapper for C/C++ compiler and dramatically shorten the building time by caching the temporary files safely. It works even when you clean up your entire build (e.g. `git clean -dfx` or `make clean`, if apply). ## Installation - MacOS: `brew install ccache` - Ubuntu 16.04: `sudo apt install ccache` ## Usage ### **Speeding up different builds in the same directory** No configuring needed as CMake will find it and adopt it. It even accelerates build ### **Speeding up different builds in different directories** Two options needed to be appended to `ccache` config file `$HOME/.ccache/ccache.conf`. If the config file or the directory does not exist, you need to create them. ``` hash_dir = false base_dir = COMMON_ABSOLUTE_PATH ``` > **COMMON_ABSOLUTE_PATH** takes the common absolute path of two or more build directories. (e.g. It will be `/home/user/workspace` if you have two build directories `/home/user/workspace/zilliqa1` and `/home/user/workspace/zilliqa2`) ### **Cleaning up the cache if something went wrong** See `man ccache` to select either `ccache --clear` or `ccache --cleanup`. # clang-format and clang-tidy ## Installation The version (7.0.0+) is required: - MacOS: ``` brew install llvm@7 ``` - Ubuntu 16.04 (as in http://apt.llvm.org/): Create file `/etc/apt/sources.list.d/llvm-7.list` with the following content ``` deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main ``` Then run ```bash curl https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - sudo apt-get update sudo apt-get install clang-format-7 clang-tidy-7 -y ``` Also, `pyyaml` is required: `pip install pyyaml` ## Usage Use `./build.sh style` or add `-DLLVM_EXTRA_TOOLS=ON` flag to cmake ### Check (or fix) coding style violations - **`make clang-format`**: check the codebase against `.clang-format` and fail upon any violation. - **`make clang-format-fix`**: apply the suggested changes directly ### Check (or fix) wrong coding practices - **`make clang-tidy`**: check the codebase following `.clang-tidy` and suggest the changes - **`make clang-tidy-fix`**: apply the suggested changes directly ## Source see `cmake/LLVMExtraTools.cmake`. # git-extras ## Installation - MacOS: `brew install git-extras` - Ubuntu 16.04: `sudo apt-get install git-extras` ## Usage ### Checking out a specific pull-request locally If you want to check someone's pull-request, you can just do ``` git pr PR_NUMBER ```