- Notifications
You must be signed in to change notification settings - Fork0
A C++ API usability checker I developed for my MSc. dissertation. An open access paper is available here:https://www.mdpi.com/2079-9292/9/7/1077
License
phitsc/check-cpp-api
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
check-cpp-api can be tried out on the libbitcoin libraries using thephitsc/check-libbitcoin-api Docker image. On any system with Docker installed, run the following command to start a Bash shell in a Docker container based on thephitsc/check-libbitcoin-api Docker image.
docker run -it --rm phitsc/check-libbitcoin-api:1.3 /bin/bash
Then, within the Bash shell in the newly started Docker container, run:
cd ~/libbitcoin-all find . -name '*.hpp' -exec check-cpp-api -kc-1-1-case-type=snake {} +
Follow the build instructions onhttps://clang.llvm.org/get_started.html . Make sure to include step 4 'extra Clang tools'.
Clone thecheck-cpp-api repository into
llvm/tools/clang/tools/extra/
.Add
add_subdirectory(check-cpp-api)
at the bottom ofllvm/tools/clang/tools/extra/CMakeLists.txt
Build everything as described in step 7 'Build LLVM and Clang' onhttps://clang.llvm.org/get_started.html .
Clone thecheck-cpp-api repository into a directory of your choice and change into that directory.
git clone --recursive https://github.com/phitsc/check-cpp-api.git cd check-cpp-api
Create thelibtooling docker image for building Clang tools.
sudo docker build -t libtooling api-utils-common/Docker
Run the make script.
./make
Change into
check-cpp-api/test/integration_tests
.cd test/integration_tests
Create the
builddir
directory and change into it.mkdir builddir cd builddir
Create the compilation database.
cmake -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
Make sure the
compile_commands.json
file has been created in theintegration_tests/builddir
directory.Change back into the
check-cpp-api
directory and runcheck-cpp-api.cd ../../.. ./check-cpp-api -p test/integration_tests/builddir test/integration_tests/src/main.cpp
Note thatcheck-cpp-api must be executed on the same host platform on which the compilation database was created or the script will not be able to map the source file paths from the host filesystem to to container filesystem.
About
A C++ API usability checker I developed for my MSc. dissertation. An open access paper is available here:https://www.mdpi.com/2079-9292/9/7/1077