X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=README.md;h=4bfe387f9f1487418942698150ddb7748cf79d9d;hb=d27d0f88a526cfe55e6018f9f32d54d5b61fc634;hp=e40349363c6d7cbb6270145148de454b717cc558;hpb=027a9f2b4181ebe40819c2fa8cc911da46dbee95;p=libdcp.git diff --git a/README.md b/README.md index e4034936..4bfe387f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,9 @@ -libdcp -====== +# libdcp Library for reading and writing Digital Cinema Packages (DCPs). -Acknowledgements -================ +# Acknowledgements Wolfgang Woehl's cinemaslides was most informative on the nasty details of encryption. @@ -14,8 +12,7 @@ libdcp is written by Carl Hetherington and Mart Jansink. Bugfixes were received from Philip Tschiemer. -Building -======== +# Building ``` ./waf configure @@ -24,26 +21,24 @@ Building ``` -Dependencies --------- +# Dependencies - pkg-config (for build system) - boost (1.45 or above): filesystem, signals2, datetime and unit testing libraries - openssl -- libsigc++ - libxml++ - xmlsec -- ImageMagick or GraphicsMagick - sndfile - openjpeg (1.5.0 or above) - [libasdcp-cth](https://github.com/cth103/asdcplib-cth/tree/cth) - [libcxml](https://github.com/cth103/libcxml) +- (optional) ImageMagick or GraphicsMagick (for examples) - (optional) OpenMP - (optional) gcov (for tests) -Build options ---------- +# Build options + ``` --target-windows set up to do a cross-compile to Windows --enable-debug build with debugging information and without optimisation @@ -57,8 +52,8 @@ Build options --force-cpp11 force use of C++11 ``` -A note on building for macOS --------- +# A note on building for macOS + As goto solution, all dependencies can be installed using [Homebrew](https://brew.sh/). Make sure to add the respective `PKG_CONFIG_PATH` paths so the packages are indeed found. @@ -86,9 +81,19 @@ export CXX=/usr/local/opt/llvm/bin/clang++ ``` -Documentation -============= +# Documentation Run doxygen in the top-level directory and then see build/doc/html/index.html. There are some examples in the examples/ directory. + + +# Coding style + +* Use C++11 but nothing higher, as we need the library to be usable on some quite old compilers. +* Put a Doxygen @file comment under the GPL banner in each source file. +* Two blank lines between methods, and between 'blocks' in headers. +* Doxygen comments in header files for public methods, source files for protected / private methods; no full stops after simple doxygen strings. +* Use `= delete` on copy constructors and assignment operators instead of boost::noncopyable. +* Initialise POD members in classes in the header. +* Use std::make_shared to create shared pointers to things.