github.com/jlmucb/cloudproxy@v0.0.0-20170830161738-b5aa0b619bc4/src/README.md (about) 1 CloudProxy 2 ========== 3 4 The files in this directory are only used to allow C++-based applications to run 5 as hosted programs under the Tao. In other words, this is not the directory you 6 are looking for. See ../go for the core Tao libraries and applications based on 7 it. 8 9 Setup 10 ----- 11 12 The C++ client library for CloudProxy depends on third-party libraries installed 13 in `third_party`: google-glog, gflags, and several others. Additionally, 14 OpenSSL, and Protobuf development libraries must be installed, along with the 15 CMake build system. On Ubuntu, these can be installed with the command: 16 17 sudo apt-get install libssl-dev libprotoc-dev cmake ninja-build 18 19 Note: CloudProxy relies on newer versions of the protobuf 'protoc' compiler. 20 Version of protoc prior to version 2.5.0 that are packaged for some Ubuntu 21 systems may not work. 22 23 24 Build Process 25 ------------- 26 27 Let SRC be the directory that contains this README.md file. To build 28 CloudProxy, you create a build directory and call cmake then ninja from within 29 it. 30 31 mkdir ${SRC}/out 32 cd ${SRC}/out 33 cmake -G Ninja .. 34 ninja 35 36 The ninja build process updates the build if any CMakeLists.txt files were 37 changed, so there is usually no need to rerun CMake. 38 39 Code Style 40 ---------- 41 42 The C++ sources are formatted in accordance with [Google style 43 guidelines](https://google-styleguide.googlecode.com/svn/trunk/cppguide.html). 44 One easy way to make changes match this format is to use clang-format. On 45 Ubuntu, you can install clang-format using: 46 47 sudo apt-get install clang-format-3.4 48 49 The following command will then reformat file.cc in place: 50 51 clang-format --style=Google -i file.cc 52 53 Note, however, that clang-format does not rename anything to match the naming 54 conventions. Please see the files themselves for these conventions. 55 56 57 Documentation 58 ------------- 59 60 This version of CloudProxy has documentation in doxygen format. To build it, you 61 must have doxygen installed. It helps to have the dot tool (from graphviz) as 62 well. Once these are installed, you can build the documentation as follows: 63 64 cd ${SRC} && doxygen build/Doxyfile 65 66 This will produce html documentation in ${SRC}/doc/html. See index.html to get 67 started.