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

1.87

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.87.tar.gz (15.3 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.87-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: newconan-1.87.tar.gz
  • Upload date:
  • Size: 15.3 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.87.tar.gz
Algorithm Hash digest
SHA256 3e2ce11bb1474367e90fed41bd7fa88a8c43608ce3788d2a6d2840f91add75e3
MD5 1bce9c7a043b4b9746b5193c74ec54b7
BLAKE2b-256 43fae17debbc7af5c99b8b1da0964b0a35b3c21ff75e6f269bb0247a67044b23

See more details on using hashes here.

File details

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

File metadata

  • Download URL: newconan-1.87-py3-none-any.whl
  • Upload date:
  • Size: 18.9 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.87-py3-none-any.whl
Algorithm Hash digest
SHA256 6328d7bfb0bd7e30baff1135aa796e4579044c64471cf6ee256984a63ac66303
MD5 96af75ac7470a75f203ecf963ab969d7
BLAKE2b-256 be796589fd3e4c91a11e0d865951ea26b450ca3a99ba68c936c4786d4d251421

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