Skip to main content

Enterprise package management for C/C++ development base on conan

Project description

Enterprise package manager for C/C++ development base on conan and docker.

check website for details


EPM is an enterprise package manager base on Conan and Docker, intended for C/C++ development team, and it extends many utilities to manage build, test, document and continuous integration to improve team development efficiency and quality.

EPM , is inspired by npm (Node.JS package manager), uses meta-information manifest ( package.yml) to manipulate development activities of the package.

EPM can be use to :

  • create project skeleton.
  • all conan features (building, cache, publish package ...)
  • run built program in sandbox no need to set dependent dynamic libraries paths
  • a command to generate CI configure file to avoid complicated configure.
  • collaborate with Gitlab (via .gitlab-ci.yml) to easy continuous integration
  • manage versioning document of Markdown by underlying MKdocs .


please read installation guide.

Your first EPM project

If EPM installed successfully, type following command to verify your installation

$ epm --version
EPM 0.1.0

Now let's make your epm project step by step.

Create package project

Let create an application program with name HelloWorld.

C:\>mkdir Hello

C:\>cd Hello

C:\Hello>epm init --name HelloWorld
app package <HelloWorld> project created successfully.
To build project, run command:  epm -c vs2019 build

After creation, you can find some folders and files under this directory. Open source/main.c you will see

#include <stdio.h>

int main( int argc, char** argv )
    printf("HelloWorld 0.0.1\n");
    return 0;

Build package

C:\Hello>epm -c vs2019 build
[configure ......]
compiler=Visual Studio
[build ......]
Using lockfile: 'C:\Hello\.epm\vs2019\build/conan.lock'
Using cached profile from lockfile (HelloWorld/0.0.1@epm-public/dev): Running build()
-- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.18362.
-- The C compiler identification is MSVC 19.23.28106.4
  HelloWorld.vcxproj -> C:\Hello\.epm\vs2019\build\bin\HelloWorld.exe
  Building Custom Rule C:/Hello/CMakeLists.txt
  CMake does not need to re-run because 
[install ......]
  -- Install configuration: "Release"
  -- Installing: C:/Hello/.epm/vs2019/package/bin/HelloWorld.exe

[package testing  ......]
Using layout file: C:\Hello\.epm\vs2019\conan.layout

HelloWorld/0.0.1@epm-public/dev (test package): Installing package
    HelloWorld/0.0.1@epm-public/dev from user folder - Editable
    HelloWorld/0.0.1@epm-public/dev:3fb49604f9c2f729b85ba3115852006824e72cab - Editable

HelloWorld/0.0.1@epm-public/dev (test package): Running build()
HelloWorld/0.0.1@epm-public/dev (test package): Running test()

Run the built package

C:\Hello>epm -c vs2019 sandbox HelloWorld
HelloWorld 0.0.1



project base on conan, license also adhere to it.

MIT License

Project details

Download files

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

Source Distribution

epm-0.0.57.tar.gz (69.4 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page