From 0239487ffb78e4a3f8572357bf1cdcfd2791b755 Mon Sep 17 00:00:00 2001 From: Phuntsok Drak-pa Date: Tue, 19 Mar 2019 10:15:16 +0100 Subject: [PATCH] forgot to remove this --- README.md | 206 ------------------------------------------------------ 1 file changed, 206 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index fc2d5a9..0000000 --- a/README.md +++ /dev/null @@ -1,206 +0,0 @@ -# AwesomeCppTemplate - -> This project is in its infancy and I plan to continue to improve. It is designed to use C++17. I hope people be able to create the desired C++ project files layout fast and simply. and also I'm very welcome to contributions. - -My goal is to make C++ version of Python [cookiecutter](https://github.com/audreyr/cookiecutter). then people can create C++ project files layout very simply by a single line of command. I hope some contributors to participate. - -Possibly, the project name "AwesomeCppTemplate" make people confused with C++ Template Programming but it's not :). My first choice for the name sucks. My bad... "C++FilesLayout" is more appropriate I think. - -There a lot of useful opinions that I have to look at in Reddit thread for this project. -The link is [here](https://www.reddit.com/r/cpp/comments/b1u9fp/i_created_c17_cmake_conan_ninja_project_template/). - -## Suggestion of C++ programming environment - -I suggest using as much cross-platform open-source software as possible: - -- build system generator: CMake -- build system: Ninja -- compiler: clang++ -- IDE: - - Visual Studio Code - - ⁠Qt Creator -- static code analyzers: - - clang-tidy - - Cppcheck - - Clazy -- source code formatter: clang-format -- documentation generator: Doxygen -- package manager: - - ⁠Conan - - ⁠vcpkg -- libraries: - - Standard Library - - Boost - - string formatting: fmt - - logging: spdlog - - automated tests: Google Test / Google Mock - - GUI: Qt - -## Prerequisites - -### Ubuntu ---- - -1. Update and upgrade packages - -```shell -$ sudo apt update && sudo apt upgrade -y -``` - -2. Install Clang and LLVM (7 release) - -To add the apt repo, find the appropriate one for your Ubuntu version below and append it to `/etc/apt/sources.list` -``` -Trusty (14.04) - Last update : Tue, 26 Feb 2019 05:42:37 UTC / Revision: 354792 -deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty main -deb-src http://apt.llvm.org/trusty/ llvm-toolchain-trusty main -# 7 -deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main -deb-src http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main -# 8 -deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-8 main -deb-src http://apt.llvm.org/trusty/ llvm-toolchain-trusty-8 main - -# Also add the following for the appropriate libstdc++ -deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main -Xenial (16.04) - Last update : Thu, 14 Mar 2019 00:31:13 UTC / Revision: 356003 -deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial main -deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial main -# 7 -deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main -deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main -# 8 -deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main -deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main -Bionic (18.04) - Last update : Thu, 14 Mar 2019 03:23:34 UTC / Revision: 356096 -# i386 not available -deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main -deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic main -# 7 -deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main -deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main -# 8 -deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main -deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main -Cosmic (18.10) - Last update : Wed, 13 Mar 2019 12:53:46 UTC / Revision: 356030 -# i386 not available -deb http://apt.llvm.org/cosmic/ llvm-toolchain-cosmic main -deb-src http://apt.llvm.org/cosmic/ llvm-toolchain-cosmic main -# 7 -deb http://apt.llvm.org/cosmic/ llvm-toolchain-cosmic-7 main -deb-src http://apt.llvm.org/cosmic/ llvm-toolchain-cosmic-7 main -# 8 -deb http://apt.llvm.org/cosmic/ llvm-toolchain-cosmic-8 main -deb-src http://apt.llvm.org/cosmic/ llvm-toolchain-cosmic-8 main -Disco (19.04) - Last update : Wed, 13 Mar 2019 12:42:07 UTC / Revision: 356006 -# i386 not available -deb http://apt.llvm.org/disco/ llvm-toolchain-disco main -deb-src http://apt.llvm.org/disco/ llvm-toolchain-disco main -# 7 -deb http://apt.llvm.org/disco/ llvm-toolchain-disco-7 main -deb-src http://apt.llvm.org/disco/ llvm-toolchain-disco-7 main -# 8 -deb http://apt.llvm.org/disco/ llvm-toolchain-disco-8 main -deb-src http://apt.llvm.org/disco/ llvm-toolchain-disco-8 main -``` - -Update apt packages list: -```shell -$ sudo apt update -``` - -To retrieve the archive signature: -```shell -$ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - -# Fingerprint: 6084 F3CF 814B 57C1 CF12 EFD5 15CF 4D18 AF4F 7421 -``` - -To install just clang, lld and lldb: -```shell -$ sudo apt install clang-7 lldb-7 lld-7 -``` - -To install all key packages: -```shell -# LLVM -$ sudo apt install libllvm-7-ocaml-dev libllvm7 llvm-7 llvm-7-dev llvm-7-doc llvm-7-examples llvm-7-runtime - -# Clang and co -$ sudo apt install clang-7 clang-tools-7 clang-7-doc libclang-common-7-dev libclang-7-dev libclang1-7 clang-format-7 python-clang-7 - -# libfuzzer -$ sudo apt install libfuzzer-7-dev - -# lldb -$ sudo apt install lldb-7 - -# lld (linker) -$ sudo apt install lld-7 - -# libc++ -$ sudo apt install libc++-7-dev libc++abi-7-dev - -# OpenMP -$ sudo apt install libomp-7-dev -``` - -Finally, link each `clang-7` and `clang++-7` to `clang` and `clang++`. -```shell -$ sudo ln -s /usr/bin/clang-7 /usr/bin/clang -$ sudo ln -s /usr/bin/clang++-7 /usr/bin/clang++ -``` - -Check if all the packages are installed fine. -```shell -$ clang++ --version -clang version 7.0.0-3~ubuntu0.18.04.1 (tags/RELEASE_700/final) -Target: x86_64-pc-linux-gnu -Thread model: posix -InstalledDir: /usr/bin -``` - -3. Install CMake - -```shell -$ sudo apt install cmake -``` - -4. Install Conan - -```shell -$ sudo apt install python3 -$ sudo apt install python3-pip -$ sudo pip3 install --upgrade pip -$ pip install conan -``` -Then change default profile of conan: -```shell -$ conan profile new default --detect -$ conan profile update settings.compiler=clang++ -$ conan profile update settings.compiler.version=7.0 -$ conan profile update settings.compiler.libcxx=libc++ -``` - -5. Install Ninja - -```shell -$ sudo apt install ninja-build -``` - -## Build examples - -```shell -$ mkdir build && cd build -$ conan install .. -$ export CC=clang -$ export CXX=clang++ -$ cmake .. -G Ninja -$ cmake --build . -``` - -Try running the example binary! - -```shell -$ ./bin/md5 -c3fcd3d76192e4007dfb496cca67e13b -```