diff options
Diffstat (limited to 'docs/nncc/getting_started.md')
-rw-r--r-- | docs/nncc/getting_started.md | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/docs/nncc/getting_started.md b/docs/nncc/getting_started.md new file mode 100644 index 000000000..8f01bd2a4 --- /dev/null +++ b/docs/nncc/getting_started.md @@ -0,0 +1,73 @@ +#### Prerequisites + +The following toolchains are needed to build _nncc_ project: + - CMake (>= 3.1) + - g++ (>= 4.8) + +#### How to build _nncc_ with docker + +_nncc_ provides ``Dockerfile`` in order to make it easy to setup development environment. + +One may build ``nncc`` docker image with the following command: +``` +nncc$ cat infra/docker/Dockerfile | docker build -t nncc - +... +``` + +By default, this ``Dockerfile`` uses "archive.ubuntu.com" which may be quite slow. One may use mirror site via ``UBUNTU_MIRROR`` variable. +For example, one may enable the use of ``kr.archive.ubuntu.com`` via the following command +``` +nncc$ cat infra/docker/Dockerfile | docker build --build-arg UBUNTU_MIRROR="kr.archive.ubuntu.com" -t nncc - +... +``` + +One who works behind proxy should provide proxy configuration via the following command: +``` +nncc$ cat infra/docker/Dockerfile | docker build --build-arg HTTP_PROXY=<HTTP proxy address> --build-arg HTTPS_PROXY=<HTTPS proxy address> -t nncc - +... +``` +One may use simplified command if ``HTTP_PROXY`` and ``HTTPS_PROXY`` environment variables are already set: +``` +nncc$ export +... +declare -x HTTP_PROXY=... +declare -x HTTPS_PROXY=... +... +nncc$ cat infra/docker/Dockerfile | docker build --build-arg HTTP_PROXY --build-arg HTTPS_PROXY -t nncc - +... +``` + +Note that these configurations are orthogonal to each other. One may freely combine these options as follows: +``` +nncc$ cat infra/docker/Dockerfile | docker build --build-arg HTTP_PROXY --build-arg HTTPS_PROXY --build-arg UBUNTU_MIRROR="kr.archive.ubuntu.com" -t nncc - +``` + +One may easily build _nncc_ with the following command once ``nncc`` docker image is built. +``` +nncc$ ./nncc docker-nncc configure +... +nncc$ ./nncc docker-nncc build +... +``` + +#### How to build _nncc_ with ninja + +You may build _nncc_ with ninja (instead of make) if ninja is available. Please try the following commands: +``` +nncc$ rm -rf build +nncc$ ./nncc configure -G Ninja +nncc$ ./nncc build +``` + +#### How to build and run _nncc_ unittests + +_nncc_ includes various unittests to check its correctness. One may build and run these unittests via the following command: +``` +nncc$ rm -rf build +nncc$ ./nncc configure -DENABLE_TEST=1 +nncc$ ./nncc build +nncc$ ./nncc test +``` + +**NOTE** As _nncc_ unittests are implemented on top of google test framework (_gtest_), _nncc_ build script will automatically download _gtest_ 1.8 from public GitHub. +If you are not able to access public GitHub from your machine, please override download URL via ``GTEST_URL`` environment variable. |