Skip to main content

wks: Simple CMake workspace manager

How it works

The basic purpose of wks is to spawn repositories to build a project, then generate a CMakeLists.txt containing add_subdirectory() directives for all of them.

This way, the project can be built using the top-level generated CMakeLists.txt.

Usage

The following commands are available:

  • wks install [repository]: If a repository is given, wks will install it first. Then, wks will scan for dependencies in the wks.yml files (see below) and install them until all requirements are met. This way, it is possible that dependencies of dependencies are installed. Calling wks install without repository argument will cause dependencies scan. The CMakeLists.txt will eventually be generated.
  • wks cmake: This will cause the CMakeLists.txt to be re-generated.
  • wks build [target]: Will create a build and run it. wks will try to create a Ninja build, and fall back to makefiles if it is not available. The [target] you can pass will be given to the build command (make [target] or ninja [target]). The build will be stored in build/ directory.
  • wks pull: Will run a git pull in all repositories. This will then scan for dependencies (equivalent to wks install with no argument) and re-generate the CMakeLists.txt.
  • wks status: Gives insight on the status of your repositories, this will check for:
    • Untracked files
    • Changes without commits
    • Changes commited but not pushed

All sources will be stored in src/, under src/vendor/repository.

Repositories format

All repositories are fetched for GitHub, and repositories can have those formats:

  • vendor/repository
  • vendor/repository#branch
  • vendor/repository@tag

The wks.yml file

The wks.yml can contain the following sections:

  • deps: a list of dependencies that the repository want to be installed
  • optional: a list of optional dependencies, they will not be installed but it ensure that the projects will appear in the proper order in the generated CMakeLists.txt
  • cmakes: if the CMakeLists.txt for this repository is not at the top level (or not unique), you can specify them using this section
  • install: a list of shell command that should be run post install
  • cmake_prefix: a list of directories to be added to CMAKE_PREFIX_PATH

An example is:

deps:
    - rhoban/utils@v1.0
    - rhoban/geometry@v2.0

cmakes:
    - client
    - server

Metadata

Release files for wks 0.5.2

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

Source distribution (sdist)

Source distribution for wks 0.5.2
File Size Uploaded
wks-0.5.2.tar.gz 9.8 kB Details

Release files / wks-0.5.2.tar.gz

Download URL wks-0.5.2.tar.gz
Size 9.8 kB
Tags Source
SHA-256 checksum
How to use checksums
65685bd1754729eede55068eeb15cdb826c1faf76a44cb2731575be99cc8644c
BLAKE2b-256 checksum
How to use checksums
69b136ea41f4bb98a8a4d8df826255e653032b399b9bbff94d908f1591db5fec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.2 This release

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.9

1 release file

0.4.8

1 release file

0.4.7

1 release file

0.4.6

1 release file

0.4.5

1 release file

0.4.4

1 release file

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

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