All Projects → injae → cppm

injae / cppm

Licence: other
c++ package manager only use CMake

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to cppm

Npx
execute npm package binaries (moved)
Stars: ✭ 2,634 (+7018.92%)
Mutual labels:  package-manager
libdnf
Package management library.
Stars: ✭ 157 (+324.32%)
Mutual labels:  package-manager
vanat
🔨 Dependency Manager for Vala 🚧 App under development!
Stars: ✭ 14 (-62.16%)
Mutual labels:  package-manager
Bower
A package manager for the web
Stars: ✭ 15,095 (+40697.3%)
Mutual labels:  package-manager
pacstall
An AUR-inspired package manager for Ubuntu
Stars: ✭ 842 (+2175.68%)
Mutual labels:  package-manager
carbon
Carbon is a package manager for Kubernetes. It allows to operate with your application along with Kubernetes manifests as a holistic package.
Stars: ✭ 12 (-67.57%)
Mutual labels:  package-manager
Pack
📦 The missing vim8 package manager.
Stars: ✭ 238 (+543.24%)
Mutual labels:  package-manager
registry
Package registry for vpkg
Stars: ✭ 13 (-64.86%)
Mutual labels:  package-manager
MHArmory
Armor Set Search application for Monster Hunter: World
Stars: ✭ 20 (-45.95%)
Mutual labels:  hunter
kustomizer
An experimental package manager for distributing Kubernetes configuration as OCI artifacts.
Stars: ✭ 239 (+545.95%)
Mutual labels:  package-manager
xconfigure
High-Performance configuration patterns and recipes.
Stars: ✭ 42 (+13.51%)
Mutual labels:  package-manager
vscode-npm-gui
vscode nuget package manager gui https://marketplace.visualstudio.com/items?itemName=aliasadidev.nugetpackagemanagergui
Stars: ✭ 36 (-2.7%)
Mutual labels:  package-manager
cget-recipes
Recipes for cget
Stars: ✭ 17 (-54.05%)
Mutual labels:  package-manager
Rubygems
Library packaging and distribution for Ruby.
Stars: ✭ 2,902 (+7743.24%)
Mutual labels:  package-manager
ansible-nodejs
Ansible role to set up the latest version of Node.js and npm in Debian-like systems
Stars: ✭ 14 (-62.16%)
Mutual labels:  package-manager
Qlot
A project-local library installer for Common Lisp
Stars: ✭ 242 (+554.05%)
Mutual labels:  package-manager
flora
A distributed smart contract package manager to create a better and shared authority in the space.
Stars: ✭ 19 (-48.65%)
Mutual labels:  package-manager
aspen
Passerine's package manager.
Stars: ✭ 22 (-40.54%)
Mutual labels:  package-manager
dex
docker executables - run applications without installing them or their dependencies
Stars: ✭ 31 (-16.22%)
Mutual labels:  package-manager
Build-Scripts
Collection of build scripts useful when testing on downlevel, abandonware and ransomware clients
Stars: ✭ 61 (+64.86%)
Mutual labels:  package-manager

Cppm (BETA) Documents

Linux Windows MacOS
Linux Windows MacOS

Dependencies

  • c++ compiler (c++17)
  • CMake (minimum 3.12)
  • Git
  • Ccache (optional)

My native language is not English.
Since I used a translator, please let me know if you have any problems with grammar.
This project was inspired by Rust's Cargo.
Cppm is a cross platform C++ project manager
So the configuration of the configuration file is almost similar to Rust's Cargo.toml.
Using cppm, you can easily create a cross-platform c ++ project.
Projects made with cppm only need c ++ compiler, cmake and git.
Projects written in cppm automatically install dependencies.
Not many libraries are supported by the cppkg yet. But cppkg package make easy
So cppm made the package of the Hunter Package Manager available.
If there is a library you want to add, please issue a pull request to the Cppkg repository
Cppm auto detect vcpkg toolchain.

Easy Config file

# cppm project config file
[package]
name    = "cppm"
version = "0.0.10"
description = "c++ cmake maker use to toml like Cargo"
git = "https://github.com/injae/cppm.git"
#vcpkg =true # vcpkg auto detect flag, but not recommended option

[cmake]
include  = ["cmake/cppm_install.cmake"]

[lib]
name = "cppm-core"
source = ["src/core/.*", "src/util/.*", "src/cppkg/.*"]

[[bin]]
name   = "cppm"
source = ["src/cmake/.*","src/option/.*", "src/util/.*", "src/main.cpp"]

[[test]]
name   = "cppm-test-check"
source = ["tests/test.cpp"]

[[example]]
name   = "cppm-core-load"
source = ["examples/example.cpp"]

[workspace]
    member = ["libs/nlpo", "libs/tomlpp"]

[dependencies]
fmt      = "6.2.0"
hashpp   = "git"
range-v3 = "git"

[dev-dependencies]
    Catch2 = "2.9.1"

#[target.x64-unix.dependencies]
#[target.x64-unix.dev-dependencies]
#[target.x64-windows.dependencies]
#[target.windows.dev-dependencies]

Easy to make Unregistered Package Add

$ cd {package root}/thirdparty
$ cppm cppkg init -U "https://github.com/fmtlib/fmt/releases/download/6.2.0/fmt-6.2.0.zip" fmt
# fmt/6.2.0/cppkg.toml
[fmt]
version = "6.2.0"
description = ""
module = "fmt::fmt"
url="https://github.com/fmtlib/fmt/releases/download/6.2.0/fmt-6.2.0.zip"
$ cd {package root}/thirdparty
$ cppm cppkg init -U "https://github.com/fmtlib/fmt.git" fmt
# fmt/git/cppkg.toml
[fmt]
version = "git"
description = ""
module = "fmt::fmt"
git="https://github.com/fmtlib/fmt.git"
flags="-DFMT_DOC=OFF -DFMT_TEST=OFF -DFMT_FUZZ=OFF" # (optional) for cmake build fast flags

Installation

Linux

# install c++17 compiler, cmake and git
git clone --recurse-submodules https://github.com/injae/cppm.git
cd cppm
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release
cd build
cmake --build . --config Release
cd Release
./cppm build install
# Adding to cppm path
export PATH="$HOME/.cppm/bin:$PATH"

Macos

# AppleClang not working (can't use filesystem and optional)
brew install llvm cmake
# Adding to llvm clang env
# export CC=#llvm clang path
# export CXX=#llvm clang++ path 
git clone --recurse-submodules https://github.com/injae/cppm.git
cd cppm
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DUSE_CPPM_PATH=ON .
cd build
cmake --build . --config Release
cd Release
./cppm build install
# Adding to cppm path
export PATH="$HOME/.cppm/bin:$PATH"

Windows

# need visual studio , git , cmake
# scoop install git cmake
git clone --recurse-submodules https://github.com/injae/cppm.git
cd cppm
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DUSE_CPPM_PATH=ON .
cd build
cmake --build . --config Release --target install --target cppm_link
# Add System Path %USERPROFILE%\.cppm\bin

Features

  • easy configure file (cppm.toml)
  • generate build command (cppm build {options})
  • cmake dependencies auto installer (cppkg)
  • none cppm base project build (cppm build) (with cppm-toolchain) command
  • easy cppkg file generator (cppm cppkg init)
  • auto add CMake project uninstall target (cppm build uninstall) (with cppm-toolchain)
  • no sudo, package local install path (~/.cppm/)
  • unit test option (cppm test)
  • Cppkg package search (cppm search)
  • cmake project initialize (cppm init {options} {name})
  • cppkg repository update (cppm cppkg update)
  • hunter package dependency available
  • auto detect vcpkg
  • can use hunter package manager
  • sub project option (cppm.toml [workspace])

Document

GitBook

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].