Poac is a package manager for C++ users.
Poac can download project's dependencies and compile a project. Please see poac.pm, installation instructions, and The Poac Book for more details.
By using Poac, you can create a C++ project, build sources, and execute an application:
Linux | macOS |
---|---|
Please see 1.1. Installation · The Poac Book for more information about supported OS.
curl -fsSL https://sh.poac.pm | bash
For Arch Linux users, there are AUR packages: poac, poac-devel-git, and poac-git
Poac requires the following compilers, tools, and packages to build:
- Compilers which support C++20
cmake
:3.17
or later
The packages with names in italics are not needed installing before the following commands because they will be automatically installed when configuring by CMake.
boost
:1.70.0
or later- algorithm
- asio
- beast
- dynamic_bitset
- graph
- predef
- property_tree
- range
- scope_exit
- test (dev)
- uuid
clipp
:master
branchfmt
:7.1.3
or latergit2-cpp
:main
branchlibarchive
:3.4.3
or laterlibgit2
:0.27
or latermitama-cpp-result
:master
branchopenssl
: as new as possiblespdlog
:1.9.0
or latertoml11
:3.0.0
or later
After you prepared the requirements, you can build Poac using the following commands:
$ git clone https://github.com/poacpm/poac.git
$ cd poac
$ mkdir build && cd $_
$ cmake .. -DCMAKE_BUILD_TYPE=Release
$ make # or ninja
$ make install
I often see that C++ was said to be a complex language, and I saw many people shunned it just because of C++. It is thought that it is hard to construct a C++ environment, there is no definitive package manager, and the strange syntax of build systems such as CMake are the causes that make us feel hesitant.
By developing a package manager and a build system, which have an intuitively easy-to-use interface like npm and Cargo, and make users be able to develop applications and libraries without being aware of CMake, developers will be able to focus on learning C++ without stumbling. I also plan to implement integration with many other build systems and package managers, so you should be able to switch seamlessly.
Please see CONTRIBUTING.md. You can also find the useful architecture documentation.
Poac is licensed under the terms of the Apache License version 2.0.
Please see LICENSE for details.
- boost - https://github.com/boostorg/boost/blob/master/LICENSE_1_0.txt
- clipp - https://github.com/muellan/clipp/blob/master/LICENSE
- fmt - https://github.com/fmtlib/fmt/blob/master/LICENSE.rst
- git2-cpp - https://github.com/ken-matsui/git2-cpp/blob/main/LICENSE
- libarchive - https://github.com/libarchive/libarchive/blob/master/COPYING
- libgit2 - https://github.com/libgit2/libgit2/blob/master/COPYING
- mitama-cpp-result - https://github.com/LoliGothick/mitama-cpp-result/blob/master/LICENSE
- openssl - https://github.com/openssl/openssl/blob/master/LICENSE.txt
- spdlog - https://github.com/gabime/spdlog/blob/v1.x/LICENSE
- toml11 - https://github.com/ToruNiina/toml11/blob/master/LICENSE