项目作者: wumo-util

项目描述 :
C++ project template generator based on cMake, conan
高级语言: CMake
项目地址: git://github.com/wumo-util/newconan.git
创建时间: 2018-11-15T13:38:26Z
项目社区:https://github.com/wumo-util/newconan

开源协议:

下载


newconan creates default project structure that is convenient for developing in IDEs like Clion and Visual Studio.

Requirements

cmake >= 3.14

Installation

  1. $ pip install newconan

Create Project

  1. $ newconan TestExe # create exe project
  2. $ newconan TestSharedLibrary -shared # create shared library project
  3. $ newconan TestStaticLibrary -static # create static library project

Project Structure

  1. TestSharedLibrary
  2. ├── .git
  3. ├── .travis
  4. ├── install.sh
  5. └── run.sh
  6. ├── assets
  7. └── public
  8. └── TestSharedLibrary
  9. ├── cmake
  10. ├── conan.cmake
  11. ├── symlink.cmake
  12. └── symlink.py
  13. ├── src
  14. ├── main.cpp
  15. └── main.h
  16. ├── test
  17. └── test.cpp
  18. ├── .clang-format
  19. ├── .gitignore
  20. ├── .gitlab-ci.yml
  21. ├── .travis.yml
  22. ├── appveyor.yml
  23. ├── build.py
  24. ├── CMakeLists.txt
  25. ├── CMakeSettings.json
  26. ├── conanfile.py
  27. └── README.md
  • newconan will automatically create the git repository which is .git folder.
  • assets folder will contains resource files which will be symlink to ${CMAKE_CURRENT_BINARY_DIR}/bin/assets. In this way, your binary can use the relative path ./assets to access the resource files.
  • cmake folder contains some cmake macros to symlink folder and setup conan.
  • src folder contains the main source code for your project.
  • test folder contains all the test cpp files.
  • .clang-format is the default format that clang-format will use.
  • .gitignore ignores everything except exisiting folders and files. You can edit this file to add other folders to git.
  • .gitlab-ci.yml is the default ci configuration for gitlab.
  • .travis.yml and folder .travis is the default ci configuration for travis.
  • appveyor.yml is the default ci configuration for appveyor.
  • build.py will be used by gitlab-ci to build and upload this project as conan recipe for others to use your library.
  • CMakeLists.txt will define a target for your project and link all the necessary libraries against it. CMakeLists.txt also scans test folder and create corresponding a test target for each cpp file.
  • CMakeSettings.json is used by Visual Studio. This file will make Visual Studio put the build folder relative to your project rather than some hashed folder which you can’t find easily.
  • conanfile.py defines the library dependencies. conan will download and compile all the required libraries and copy *.dll/*.dylib to ${CMAKE_CURRENT_BINARY_DIR}/bin folder. At the same time, dependent library resource files will also be copied.
  • README.md shows how to build this project using cmake and conan.

Add dependency

You can add library dependencies to your project by modifying the requires attribute of conanfile.py:

  1. class ProjectNameConan(ConanFile):
  2. name = "ProjectName"
  3. version = "1.0.0"
  4. settings = "os", "compiler", "build_type", "arch"
  5. requires = ( # Add dependencies here.
  6. "library1/1.0.0@conan/stable",
  7. "library2/2.0.0@conan/testing",
  8. ...
  9. )

And then refresh cmake, conan will download and compile all the listed dependencies.