Poac is a package manager for C++ users.
By using Poac, you can create a C++ project, build sources, and execute an application:
Supported Operating Systems
Please see 1.1. Installation · The Poac Book for more information about supported OS.
curl -fsSL https://sh.poac.pm | bash
Manual install (Build)
Poac requires the following compilers, tools, and packages to build:
- Compilers which support C++20
The packages with names in italics are not needed installing before the following commands because they will be automatically installed when configuring by CMake.
- test (dev)
openssl: as new as possible
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
C++ is often considered to be a complicated language and shunned unconsciously by most people. 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.
This project exists thanks to all the people who contribute.
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