diff --git a/README.md b/README.md index 4c56a2d..eecc425 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,49 @@ # ESRI C++ code assignment +## Requirements + +The requirements specification is provided in `assignment.pdf`. + + +## Design remarks + +For sake of simplicity most of validation and error handling is performed during +loading the input files. + + ## Setup -``` -aptitude install protobuf-compiler libprotobuf-c-dev ##libprotoc-dev -``` +Execute the bash script `install_deps.sh` on a Debian GNU/Linux system to install +the required dependencies. + +The protobuf dependencies are installed as Debian packages. All other dependencies +are installed using the CMake FetchContent feature. ## Build +Execute the bash script `build.sh` to perform both build and testing steps. + +The overall process is implemented using CMake. The application artifact is located +at `build/src/main`. + + +## Usage + +The command-line parameters can be passed as follows: ``` -mkdir build -cd build -cmake .. -make +main ``` +* At least one *input-file* and *json-ouptut-file* must be provided. +* Multiple *input-files* are supported. + ## Links -* https://developers.google.com/protocol-buffers/docs/cpptutorial -* https://github.com/protocolbuffers/protobuf/tree/master/examples -* https://cmake.org/cmake/help/latest/module/FindProtobuf.html - +* Protobuf + * https://developers.google.com/protocol-buffers/docs/cpptutorial + * https://github.com/protocolbuffers/protobuf/tree/master/examples + * https://cmake.org/cmake/help/latest/module/FindProtobuf.html +* Json C++ library + * https://github.com/nlohmann/json +* Catch2 unit testing framework + * https://github.com/catchorg/Catch2