Simple dependencies manager for cmake projects in your workspace
Project description
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,wkswill install it first. Then,wkswill scan for dependencies in thewks.ymlfiles (see below) and install them until all requirements are met. This way, it is possible that dependencies of dependencies are installed. Callingwks installwithout repository argument will cause dependencies scan. TheCMakeLists.txtwill eventually be generated.wks cmake: This will cause theCMakeLists.txtto be re-generated.wks build [target]: Will create a build and run it.wkswill 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]orninja [target]). The build will be stored inbuild/directory.wks pull: Will run agit pullin all repositories. This will then scan for dependencies (equivalent towks installwith no argument) and re-generate theCMakeLists.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/repositoryvendor/repository#branchvendor/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 installedoptional: a list of optional dependencies, they will not be installed but it ensure that the projects will appear in the proper order in the generatedCMakeLists.txtcmakes: if theCMakeLists.txtfor this repository is not at the top level (or not unique), you can specify them using this sectioninstall: a list of shell command that should be run post installcmake_prefix: a list of directories to be added toCMAKE_PREFIX_PATH
An example is:
deps:
- rhoban/utils@v1.0
- rhoban/geometry@v2.0
cmakes:
- client
- server
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file wks-0.5.0.tar.gz.
File metadata
- Download URL: wks-0.5.0.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
700adbf22b25262240267ab6b8a454d3ee2d2f57377dd2fbfed3443e4dcba393
|
|
| MD5 |
4c41ad7bac09843ecd0011ea1000d3c3
|
|
| BLAKE2b-256 |
4f20d7c6a4ddb98633cbcd9a4987fff8adb3c6b258a24a13bc0825790e9c993d
|
Provenance
The following attestation bundles were made for wks-0.5.0.tar.gz:
Publisher:
wheels.yml on Rhoban/wks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wks-0.5.0.tar.gz -
Subject digest:
700adbf22b25262240267ab6b8a454d3ee2d2f57377dd2fbfed3443e4dcba393 - Sigstore transparency entry: 722610559
- Sigstore integration time:
-
Permalink:
Rhoban/wks@9fa1d53c0d7e4001a3709c2f9169d47916162c4b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/Rhoban
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@9fa1d53c0d7e4001a3709c2f9169d47916162c4b -
Trigger Event:
release
-
Statement type: