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.