initial commit
This commit is contained in:
commit
d14dd678d3
179
.gitignore
vendored
Normal file
179
.gitignore
vendored
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
# Created by https://www.gitignore.io/api/c,c++,ninja,macos,linux,cmake,windows,visualstudiocode
|
||||||
|
# Edit at https://www.gitignore.io/?templates=c,c++,ninja,macos,linux,cmake,windows,visualstudiocode
|
||||||
|
|
||||||
|
### C ###
|
||||||
|
# Prerequisites
|
||||||
|
*.d
|
||||||
|
|
||||||
|
# Object files
|
||||||
|
*.o
|
||||||
|
*.ko
|
||||||
|
*.obj
|
||||||
|
*.elf
|
||||||
|
|
||||||
|
# Linker output
|
||||||
|
*.ilk
|
||||||
|
*.map
|
||||||
|
*.exp
|
||||||
|
|
||||||
|
# Precompiled Headers
|
||||||
|
*.gch
|
||||||
|
*.pch
|
||||||
|
|
||||||
|
# Libraries
|
||||||
|
*.lib
|
||||||
|
*.a
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
|
||||||
|
# Shared objects (inc. Windows DLLs)
|
||||||
|
*.dll
|
||||||
|
*.so
|
||||||
|
*.so.*
|
||||||
|
*.dylib
|
||||||
|
|
||||||
|
# Executables
|
||||||
|
*.exe
|
||||||
|
*.out
|
||||||
|
*.app
|
||||||
|
*.i*86
|
||||||
|
*.x86_64
|
||||||
|
*.hex
|
||||||
|
|
||||||
|
# Debug files
|
||||||
|
*.dSYM/
|
||||||
|
*.su
|
||||||
|
*.idb
|
||||||
|
*.pdb
|
||||||
|
|
||||||
|
# Kernel Module Compile Results
|
||||||
|
*.mod*
|
||||||
|
*.cmd
|
||||||
|
.tmp_versions/
|
||||||
|
modules.order
|
||||||
|
Module.symvers
|
||||||
|
Mkfile.old
|
||||||
|
dkms.conf
|
||||||
|
|
||||||
|
### C++ ###
|
||||||
|
# Prerequisites
|
||||||
|
|
||||||
|
# Compiled Object files
|
||||||
|
*.slo
|
||||||
|
|
||||||
|
# Precompiled Headers
|
||||||
|
|
||||||
|
# Compiled Dynamic libraries
|
||||||
|
|
||||||
|
# Fortran module files
|
||||||
|
*.mod
|
||||||
|
*.smod
|
||||||
|
|
||||||
|
# Compiled Static libraries
|
||||||
|
*.lai
|
||||||
|
|
||||||
|
# Executables
|
||||||
|
|
||||||
|
### CMake ###
|
||||||
|
CMakeLists.txt.user
|
||||||
|
CMakeCache.txt
|
||||||
|
CMakeFiles
|
||||||
|
CMakeScripts
|
||||||
|
Testing
|
||||||
|
Makefile
|
||||||
|
cmake_install.cmake
|
||||||
|
install_manifest.txt
|
||||||
|
compile_commands.json
|
||||||
|
CTestTestfile.cmake
|
||||||
|
_deps
|
||||||
|
|
||||||
|
### CMake Patch ###
|
||||||
|
# External projects
|
||||||
|
*-prefix/
|
||||||
|
|
||||||
|
### Linux ###
|
||||||
|
*~
|
||||||
|
|
||||||
|
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||||
|
.fuse_hidden*
|
||||||
|
|
||||||
|
# KDE directory preferences
|
||||||
|
.directory
|
||||||
|
|
||||||
|
# Linux trash folder which might appear on any partition or disk
|
||||||
|
.Trash-*
|
||||||
|
|
||||||
|
# .nfs files are created when an open file is removed but is still being accessed
|
||||||
|
.nfs*
|
||||||
|
|
||||||
|
### macOS ###
|
||||||
|
# General
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Icon must end with two \r
|
||||||
|
Icon
|
||||||
|
|
||||||
|
# Thumbnails
|
||||||
|
._*
|
||||||
|
|
||||||
|
# Files that might appear in the root of a volume
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
|
.VolumeIcon.icns
|
||||||
|
.com.apple.timemachine.donotpresent
|
||||||
|
|
||||||
|
# Directories potentially created on remote AFP share
|
||||||
|
.AppleDB
|
||||||
|
.AppleDesktop
|
||||||
|
Network Trash Folder
|
||||||
|
Temporary Items
|
||||||
|
.apdisk
|
||||||
|
|
||||||
|
### Ninja ###
|
||||||
|
.ninja_deps
|
||||||
|
.ninja_log
|
||||||
|
|
||||||
|
### VisualStudioCode ###
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
|
||||||
|
### VisualStudioCode Patch ###
|
||||||
|
# Ignore all local history of files
|
||||||
|
.history
|
||||||
|
|
||||||
|
### Windows ###
|
||||||
|
# Windows thumbnail cache files
|
||||||
|
Thumbs.db
|
||||||
|
ehthumbs.db
|
||||||
|
ehthumbs_vista.db
|
||||||
|
|
||||||
|
# Dump file
|
||||||
|
*.stackdump
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
[Dd]esktop.ini
|
||||||
|
|
||||||
|
# Recycle Bin used on file shares
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# Windows Installer files
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msix
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
|
||||||
|
# Windows shortcuts
|
||||||
|
*.lnk
|
||||||
|
|
||||||
|
# End of https://www.gitignore.io/api/c,c++,ninja,macos,linux,cmake,windows,visualstudiocode
|
||||||
|
|
||||||
|
build
|
44
CMakeLists.txt
Normal file
44
CMakeLists.txt
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
|
project("AwesomeCppTemplate"
|
||||||
|
VERSION 0.1.2
|
||||||
|
DESCRIPTION "Configure C++17 project files layout fast and simply."
|
||||||
|
HOMEPAGE_URL "https://github.com/devkoriel/AwesomeCppTemplate"
|
||||||
|
LANGUAGES CXX)
|
||||||
|
# project(<PROJECT-NAME>
|
||||||
|
# [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
|
||||||
|
# [DESCRIPTION <project-description-string>]
|
||||||
|
# [HOMEPAGE_URL <url-string>]
|
||||||
|
# [LANGUAGES <language-name>...])
|
||||||
|
|
||||||
|
set(SRC_FILES src/main.cpp)
|
||||||
|
# Example: set(SRC_FILES <SOURCE FILES>)
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
||||||
|
# find_package(Foo REQUIRED) # FOO_INCLUDE_DIR, FOO_LIBRARIES
|
||||||
|
# find_package(Boo REQUIRED) # BOO_INCLUDE_DIR, BOO_LIBRARIES
|
||||||
|
|
||||||
|
include(functions)
|
||||||
|
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
|
||||||
|
conan_basic_setup()
|
||||||
|
|
||||||
|
enable_cxx_compiler_flag_if_supported("-Wall")
|
||||||
|
enable_cxx_compiler_flag_if_supported("-pedantic")
|
||||||
|
|
||||||
|
# include_directories(<PUBLIC HEADER DIRECTORIES>)
|
||||||
|
add_executable(md5 ${SRC_FILES})
|
||||||
|
target_compile_features(md5 PRIVATE cxx_std_17)
|
||||||
|
target_include_directories(md5 PRIVATE include/libfoo)
|
||||||
|
target_link_libraries(md5 ${CONAN_LIBS})
|
||||||
|
|
||||||
|
# OS specific instructions.
|
||||||
|
if(APPLE)
|
||||||
|
elseif(WIN32)
|
||||||
|
# Windows developer environment specific instructions.
|
||||||
|
if(MINGW)
|
||||||
|
elseif(MSYS)
|
||||||
|
elseif(CYGWIN)
|
||||||
|
endif()
|
||||||
|
elseif(UNIX)
|
||||||
|
else()
|
||||||
|
endif()
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2019 Jinsoo Heo
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
206
README.md
Normal file
206
README.md
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
# 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
|
||||||
|
```
|
46
README.org
Normal file
46
README.org
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
[[http://spacemacs.org][file:https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]]
|
||||||
|
|
||||||
|
* Genetic image generation
|
||||||
|
|
||||||
|
This project is a university assignment that aims at regenerating a reference
|
||||||
|
image from random shapes of random color applied. There will be lots of
|
||||||
|
different tests on what method is the best and/or the fastest to get a new
|
||||||
|
image as close as possible to the reference image.
|
||||||
|
|
||||||
|
* Technical information
|
||||||
|
|
||||||
|
This project is built with conan, ninja and cmake using clang-7 for C++17. To
|
||||||
|
use it, first install clang-7 and lldb 7, then run this:
|
||||||
|
#+begin_src shell
|
||||||
|
conan profile new default --detect
|
||||||
|
conan profile update settings.compiler=clang default
|
||||||
|
conan profile update settings.compiler.version=7.0 default
|
||||||
|
conan profile update settings.compiler.libcxx=libstdc++11 default
|
||||||
|
conan profile update env.CC=/bin/clang default
|
||||||
|
conan profile update env.CXX=/bin/clang++ default
|
||||||
|
#+end_src
|
||||||
|
If you do not wish to overwrite your ~default~ profile, you can instead create a
|
||||||
|
new one, for instance ~clang~. To do so, write the name of your new profile (in
|
||||||
|
this example ~clang~) instead of ~default~ in the commands shown above.
|
||||||
|
|
||||||
|
Then, To build and run the program, go to the root of the project and run this:
|
||||||
|
#+begin_src shell
|
||||||
|
mkdir build && cd build
|
||||||
|
conan install .. --build missing
|
||||||
|
export CC=clang
|
||||||
|
export CXX=clang++
|
||||||
|
cmake .. -G Ninja
|
||||||
|
cmake --build .
|
||||||
|
#+end_src
|
||||||
|
If you want to use another profile than your default one, you should run the
|
||||||
|
following line instead of the second line:
|
||||||
|
#+begin_src shell
|
||||||
|
conan install .. --build missing --profile <your_profile>
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
This project was built and tested using clang-7, lldb and gdb on Void Linux
|
||||||
|
(kernel 4.19) and Arch Linux (kernel 5.0).
|
||||||
|
|
||||||
|
* Credits
|
||||||
|
|
||||||
|
Awesome C++ project template by [[https://github.com/devkoriel/AwesomeCppTemplate][devkoriel]].
|
12
cmake/functions.cmake
Normal file
12
cmake/functions.cmake
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
INCLUDE(CheckCXXCompilerFlag)
|
||||||
|
|
||||||
|
function(enable_cxx_compiler_flag_if_supported flag)
|
||||||
|
string(FIND "${CMAKE_CXX_FLAGS}" "${flag}" flag_already_set)
|
||||||
|
if(flag_already_set EQUAL -1)
|
||||||
|
check_cxx_compiler_flag("${flag}" flag_supported)
|
||||||
|
if(flag_supported)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
unset(flag_supported CACHE)
|
||||||
|
endif()
|
||||||
|
endfunction()
|
16
conanfile.py
Normal file
16
conanfile.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
from conans import ConanFile, CMake
|
||||||
|
|
||||||
|
|
||||||
|
class PocoTimerConan(ConanFile):
|
||||||
|
settings = "os", "compiler", "build_type", "arch"
|
||||||
|
requires = "opencv/4.0.1@conan/stable"
|
||||||
|
generators = "cmake", "gcc", "txt"
|
||||||
|
|
||||||
|
def imports(self):
|
||||||
|
self.copy("*.dll", dst="bin", src="bin") # From bin to bin
|
||||||
|
self.copy("*.dylib*", dst="bin", src="lib") # From lib to bin
|
||||||
|
|
||||||
|
def build(self):
|
||||||
|
cmake = CMake(self)
|
||||||
|
cmake.configure()
|
||||||
|
cmake.build()
|
6
src/main.cpp
Normal file
6
src/main.cpp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
std::cout << "Hello World!\n";
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user