Skip to main content

cmake-common

Basic usage Boost (toolsets) Examples (toolsets)

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 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.git
    

    All the scripts provided by the PyPI package are thin wrappers around the project package modules:

    Script Module
    boost-download python -m project.boost.download
    boost-build python -m project.boost.build
    project-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
  1. Both GNU make and MinGW mingw32-make.
  2. 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.

Tools

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 6.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cmake-common 6.1.7
File Size Uploaded
cmake_common-6.1.7.tar.gz 40.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cmake-common 6.1.7
File Interpreter ABI Platform
cmake_common-6.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 70.1 kB

Release files / cmake_common-6.1.7.tar.gz

Download URL cmake_common-6.1.7.tar.gz
Size 40.3 kB
Tags Source
SHA-256 checksum
How to use checksums
aed2e2f35349124a65e9f1dd2876f598a50b1fd2210a161093d9eb3490a7d9e0
BLAKE2b-256 checksum
How to use checksums
8a96ed71b13b36cccf01115e6c3cca5e4a2cd24baf63aa83036defa8dcc74b7c
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-6.1.7-py3-none-any.whl

Download URL cmake_common-6.1.7-py3-none-any.whl
Size 29.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b3ac3cbec12badedc4a0267a14ec959bd3678d7332870b1ad07adf88ceef97f5
BLAKE2b-256 checksum
How to use checksums
ce152b2f2e849cb151d76b622a0ffb0ad9e592b2faca949fac16da795fc41700
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

8.0.1

2 release files

8.0.0

2 release files

7.0.1

2 release files

7.0.0

2 release files

6.1.8

2 release files

This release

6.1.7 This release

2 release files

6.1.6

2 release files

6.1.5

2 release files

6.1.4

2 release files

6.1.3

2 release files

6.1.2

2 release files

6.1.1

2 release files

6.0.5

2 release files

6.0.4

2 release files

6.0.3

2 release files

6.0.2

2 release files

6.0.1

2 release files

6.0

2 release files

5.1

2 release files

5.0.1

2 release files

5.0

2 release files

4.0

2 release files

3.4.2

2 release files

3.4.1

2 release files

3.4

2 release files

3.3

2 release files

3.2

2 release files

3.1

2 release files

3.0

2 release files

2.4

2 release files

2.3

2 release files

2.2

2 release files

2.1.1

2 release files

2.1

2 release files

2.0

2 release files

1.0

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page