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.

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
├── assets
│   └── public
│       └── TestSharedLibrary
├── cmake
│   ├── conan.cmake
│   ├── symlink.cmake
│   └── symlink.py
├── src
│   ├── main.cpp
│   └── main.h
├── test
│   └── test.cpp
├── .clang-format
├── .gitignore
├── .gitlab-ci.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.
  • 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

1.79

Download files

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

Source Distribution

newconan-1.79.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

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

newconan-1.79-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: newconan-1.79.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.1

File hashes

Hashes for newconan-1.79.tar.gz
Algorithm Hash digest
SHA256 02bf4e7f07178c365e0f10388b7bf579b6cd84510abb1dc5b72b084d38bf81bd
MD5 ead13d8dd32c5d58f7ed52b3178dd9b7
BLAKE2b-256 bb7e7883dc2884a76084ea187f802ac2ef843aa2ebda16a4dd207b89dc4ff4ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: newconan-1.79-py3-none-any.whl
  • Upload date:
  • Size: 17.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.1

File hashes

Hashes for newconan-1.79-py3-none-any.whl
Algorithm Hash digest
SHA256 477ff5c30f10603e7983bfd00eda37a227b27b84979420121aa961360c017bbf
MD5 c0293479ae636161c3ea217da95d8099
BLAKE2b-256 0c779a1f9e9d2db9350f04164ae1c8488b5649ff05c581338663eda575158094

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