cmake-common
Utilities to help develop C++/CMake projects.
Description
This main goal of this project is to make it easier to build (potentially, cross-compile) Boost and CMake projects using different toolsets. It does so by providing a set of command-line utilities that allow users to download/build Boost & use it in a CMake project in a consistent way — no matter the compiler or the target platform.
Installation
-
Via PyPI:
pip install cmake-common -
As a submodule:
git submodule add https://github.com/egor-tensin/cmake-common.gitAll the scripts provided by the PyPI package are thin wrappers around the
projectpackage modules:Script Module boost-download python -m project.boost.downloadboost-build python -m project.boost.buildproject-build python -m project.build
Toolsets
Supported platform/build system/compiler combinations include, but are not limited to:
| Platform | Build system | Compiler |
|---|---|---|
| Linux | make | Clang |
| GCC | ||
| MinGW-w64 | ||
| Windows | make [1] | Clang [2] |
| MinGW-w64 | ||
| msbuild | MSVC |
- Both GNU make and MinGW mingw32-make.
- clang-cl is supported by Boost 1.69.0 or higher only.
All of those are verified continuously by the Boost (toolsets) and Examples (toolsets) workflows.
For a complete list of possible --toolset parameter values, pass the
--help-toolsets flag to either boost-build or project-build.
Usage
Boost
Download & build the Boost libraries in a cross-platform way.
$ boost-download 1.72.0
...
$ boost-build boost_1_72_0/ filesystem program_options
...
Pass the --help flag to view detailed usage information.
CMake project
Build (and optionally, install) a CMake project.
$ project-build --configuration release --install path/to/somewhere --boost path/to/boost -- examples/simple build/
...
$ ./path/to/somewhere/bin/foo
foo
Pass the --help flag to view detailed usage information.
Additional tools
- project-format —
clang-formatall C/C++ files in the project. - project-ctest-driver — wrap an executable for testing with CTest;
cross-platform
grep.
Examples
I use this in all of my C++/CMake projects, e.g. aes-tools and math-server.
License
Distributed under the MIT License. See LICENSE.txt for details.
Metadata
Release files for cmake-common 8.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cmake_common-8.0.0.tar.gz | 39.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cmake_common-8.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.3 kB
Release files / cmake_common-8.0.0.tar.gz
| Download URL | cmake_common-8.0.0.tar.gz |
|---|---|
| Size | 39.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
19645685f78970b73e0a31e6bfc96b7ee39d33718bde8f3f5235aeaf7ff3a639
|
|
BLAKE2b-256 checksum How to use checksums |
b8129788f1c7bcea3c246d4b001839df2533e134a7e09496ad0559681eb85347
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / cmake_common-8.0.0-py3-none-any.whl
| Download URL | cmake_common-8.0.0-py3-none-any.whl |
|---|---|
| Size | 29.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f5804850bc289e420e134f2f34e1879a1b6f58736f25c37a3928ac9a440ef68b
|
|
BLAKE2b-256 checksum How to use checksums |
a0b80a5f50595f65f45012e86c6d5ae39cd9c109e1d235ecadc7cd893970eb0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|