Skip to main content

New cmake project based on conan

Project description

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

Requirements

cmake >= 3.14

Installation

$ pip install newconan

Create Project

$ newconan TestExe                      # create exe project
$ newconan TestSharedLibrary -shared    # create shared library project
$ newconan TestStaticLibrary -static    # create static library project

Project Structure

TestSharedLibrary
├── .git
├── .travis
│   ├── install.sh
│   └── run.sh
├── assets
│   └── public
│       └── TestSharedLibrary
├── cmake
│   ├── conan.cmake
│   ├── symlink.cmake
│   └── symlink.py
├── src
│   ├── main.cpp
│   └── main.h
├── test
│   └── test.cpp
├── .clang-format
├── .gitignore
├── .gitlab-ci.yml
├── .travis.yml
├── appveyor.yml
├── build.py
├── CMakeLists.txt
├── CMakeSettings.json
├── conanfile.py
└── 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:

class ProjectNameConan(ConanFile):
    name = "ProjectName"
    version = "1.0.0"
    settings = "os", "compiler", "build_type", "arch"
    requires = ( # Add dependencies here.
        "library1/1.0.0@conan/stable", 
        "library2/2.0.0@conan/testing",
        ...
    ) 

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

Project details


Release history Release notifications | RSS feed

This version

2.6

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

newconan-2.6.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

newconan-2.6-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file newconan-2.6.tar.gz.

File metadata

  • Download URL: newconan-2.6.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for newconan-2.6.tar.gz
Algorithm Hash digest
SHA256 ff7e4f837179cb1ecc05bf33ec2cbd2ea5729a85703d7726ef65ae5544bcc4c4
MD5 e3572e143146b8f89125ddafaaa4cc65
BLAKE2b-256 3186d4c61671ac9939c47b16d593d4202d8d2b59beecac13321b90ae9dd1465f

See more details on using hashes here.

File details

Details for the file newconan-2.6-py3-none-any.whl.

File metadata

  • Download URL: newconan-2.6-py3-none-any.whl
  • Upload date:
  • Size: 20.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for newconan-2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 65aa8c8b32dea071f89e3800069e7a6ae09a22906e3f26b952960ccd704b33d0
MD5 2f6e54ec6e1fefc56d868ebff45c94ea
BLAKE2b-256 596066406c0085c4363c7f2fb8b42aa6e83876746f350eb06627fc46becd8f82

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page