All Projects → wsjcpp → wsjcpp

wsjcpp / wsjcpp

Licence: MIT license
Yet another... C++ Source Package Manager

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to wsjcpp

xconfigure
High-Performance configuration patterns and recipes.
Stars: ✭ 42 (+133.33%)
Mutual labels:  package-manager, build
micromamba-docker
Rapid builds of small Conda-based containers using micromamba.
Stars: ✭ 97 (+438.89%)
Mutual labels:  build
mix script
A build tool which allows you to use mix packages in an elixir script
Stars: ✭ 16 (-11.11%)
Mutual labels:  build
glam
A cross-platform package manager.
Stars: ✭ 61 (+238.89%)
Mutual labels:  package-manager
awesome-package-manager
☘ Awesome package manager resources
Stars: ✭ 87 (+383.33%)
Mutual labels:  package-manager
get-bin-path
Get the current package's binary path
Stars: ✭ 25 (+38.89%)
Mutual labels:  package-manager
honest
Are your installed packages _really_ the same as you saw on GitHub?
Stars: ✭ 25 (+38.89%)
Mutual labels:  package-manager
Little-Ruler
A game engine that can be built for Android and Windows.
Stars: ✭ 16 (-11.11%)
Mutual labels:  cmakelists
icon-pipeline
🚚 SVG icon pipeline - Optimize icons & build SVG sprites
Stars: ✭ 43 (+138.89%)
Mutual labels:  build
sherpa
a mini-package-manager for QNAP NAS
Stars: ✭ 63 (+250%)
Mutual labels:  package-manager
whey
A simple Python wheel builder for simple projects.
Stars: ✭ 17 (-5.56%)
Mutual labels:  build
build verify
A Dart package to verify that the build is up-to-date with respect to a git repository
Stars: ✭ 28 (+55.56%)
Mutual labels:  build
agda-pkg
apkg - package manager for Agda
Stars: ✭ 30 (+66.67%)
Mutual labels:  package-manager
pint
A single-file command-line package manager for Windows.
Stars: ✭ 35 (+94.44%)
Mutual labels:  package-manager
ngp
New Go Package
Stars: ✭ 22 (+22.22%)
Mutual labels:  build
MGM-Ability
No description or website provided.
Stars: ✭ 64 (+255.56%)
Mutual labels:  package-manager
xcodedevtools
Xcode Development Scripts
Stars: ✭ 44 (+144.44%)
Mutual labels:  build
iridium
💎 Growing collection of VS Code extensions with a fancy name
Stars: ✭ 39 (+116.67%)
Mutual labels:  package-manager
build
Build system scripts based on GENie (https://github.com/bkaradzic/genie) project generator
Stars: ✭ 30 (+66.67%)
Mutual labels:  build
autosetup
A better, faster autoconf replacement
Stars: ✭ 60 (+233.33%)
Mutual labels:  build

wsjcpp

Build Status License: MIT Docker Pulls Github Stars Github Stars Github Forks Total alerts Language grade: C/C++ deepcode

Yet another... C++ Source Package Manager

Official site: https://wsjcpp.org/

Get for work

Use a docker

Docker:

$ docker pull sea5kg/wsjcpp:latest
$ docker run -it --rm \
    -v `pwd`/.:/root/project \
    sea5kg/wsjcpp:latest \
    bash
root@8b93098b8a07:~/project#

Now you can call wsjcpp inside a container For exit, just enter exit command after this container will be destroed.

Install to MacOS

$ brew tap wsjcpp/wsjcpp
$ brew install wsjcpp

Install on Ubuntu from ppa

$ sudo add-apt-repository ppa:sea5kg/wsjcpp
$ sudo apt-get update
$ sudo apt-get install wsjcpp

Build and install in Ubuntu/Debian

$ sudo apt install cmake make g++ pkg-config libcurl4-openssl-dev git-core
$ git clone https://github.com/wsjcpp/wsjcpp /tmp/wsjcpp.git
$ cd /tmp/wsjcpp.git
$ ./build_simple.sh
$ sudo cp -r /tmp/wsjcpp.git /bin/wsjcpp

More package managers for c++

Here

Basic usage

Init new project / package

Inside with your folder project

$ wsjcpp init .
$ chmod +x build_simple.sh
$ chmod +x unit-tests.wsjcpp/build_simple.sh

If you already have a project and want integrate to you project please look here: TODO

On this step will be generated different files, like (only if files not exists):

  • src.wsjcpp/CMakeLists.txt
  • src.wsjcpp/wsjcpp_core/* <- sample of package (core always required)
  • unit-tests.wsjcpp/* <- folder for unit-tests
  • src/main.cpp
  • .wsjcpp/* <- temporary folder
  • CMakeLists.txt
  • build_simple.sh
  • .gitignore
  • ...

Install packages

You can find on github package what a need you here (for example) https://github.com/topics/wsjcpp

And next command you can install package:

$ wsjcpp install https://github.com/wsjcpp/wsjcpp-print-tree:master

Also you can change 'master' to specific version or branch

After downloading wsjcpp will be automaticly update file: src.wsjcpp/CMakeLists.txt

Upgrade package

$ wsjcpp list 

  Dependencies: 
  * 'wsjcpp-core:v0.0.8' (https://github.com/wsjcpp/wsjcpp-core:master -> ./src.wsjcpp/wsjcpp_core)
  * 'wsjcpp-print-tree:v0.0.1' (https://github.com/wsjcpp/wsjcpp-print-tree:master -> ./src.wsjcpp/wsjcpp_print_tree)

$ wsjcpp reinstall wsjcpp-print-tree

Uninstall package

$ wsjcpp uninstall https://github.com/wsjcpp/wsjcpp-print-tree:master

Unit-tests

Create a new unit-test

$ wsjcpp unit-tests create SomeTest "Tesing some"

Will be created new files:

  • unit-tests.wsjcpp/src/unit_test_init_package.h
  • unit-tests.wsjcpp/src/unit_test_init_package.cpp

Also will be automaticly updated unit-tests.wsjcpp/CMakeLists.txt

For build and run unit-tests:

$ cd unit-tests.wsjcpp
$ ./build_simple.sh
$ ./unit-tests

P.S. For testing you package - you need define distribution files (for automaticly include to unit-tests.wsjcpp/CMakeLists.txt)

Specify distribution files from your package for uses your package

Add to distribution

$ wsjcpp distribution add src/your_source_file.h
$ wsjcpp distribution add src/your_source_file.cpp

Will be updated section 'distribution' in wsjcpp.yml

distribution:
  - source-file: "src/your_source_file.h"
    target-file: "your_source_file.h"
    type: "source-code"
  - source-file: "src/your_source_file.cpp"
    target-file: "your_source_file.cpp"
    type: "source-code"

Remove from distribution

$ wsjcpp distribution remove src/your_source_file.cpp

Manual changed wsjcpp.yml

For update automaticly generated files:

$ wsjcpp update

For building

wsjcpp prepare file 'build_simple.sh' for easy building

$ ./build_simple.sh

Build docker image

$ docker build -t sea5kg/wsjcpp:latest .
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].