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 epmall.github.io/epm.

Introduction

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 .

Setup

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 ......]
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=Visual Studio
compiler.runtime=MD
compiler.version=16
os=Windows
os_build=Windows
[build ......]
Using lockfile: 'C:\Hello\.epm\vs2019\build/conan.lock'
Using cached profile from lockfile
conanfile.py (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
  main.c
  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
Requirements
    HelloWorld/0.0.1@epm-public/dev from user folder - Editable
Packages
    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

Contribution

License

project base on conan, license also adhere to it.

MIT License

Project details


Release history Release notifications

Download files

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

Files for epm, version 0.0.57
Filename, size File type Python version Upload date Hashes
Filename, size epm-0.0.57.tar.gz (69.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page