wks


Namewks JSON
Version 0.3.3 PyPI version JSON
download
home_pagehttps://github.com/rhoban/wks/
SummarySimple dependencies manager for cmake projects in your workspace
upload_time2023-07-01 14:45:48
maintainer
docs_urlNone
authorRhoban team
requires_python>=3.6
license
keywords wks workspace deps
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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:

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

cmakes:
    - client
    - server
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/rhoban/wks/",
    "name": "wks",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "wks workspace deps",
    "author": "Rhoban team",
    "author_email": "team@rhoban.com",
    "download_url": "https://files.pythonhosted.org/packages/cb/fa/65bd0dda04f4d4d6c769d767389efe52196f1e793ddc1e92d51010de29b9/wks-0.3.3.tar.gz",
    "platform": null,
    "description": "# wks: Simple CMake workspace manager\n\n## How it works\n\nThe basic purpose of `wks` is to spawn repositories to build a project, then generate a `CMakeLists.txt`\ncontaining `add_subdirectory()` directives for all of them.\n\nThis way, the project can be built using the top-level generated `CMakeLists.txt`.\n\n## Usage\n\nThe following commands are available:\n\n* `wks install [repository]`: If a repository is given, `wks` will install it first. Then, `wks` will scan for\n  dependencies in the `wks.yml` files (see below) and install them until all requirements are met. This way, it is\n  possible that dependencies of dependencies are installed. Calling `wks install` without repository argument will\n  cause dependencies scan. The `CMakeLists.txt` will eventually be generated.\n* `wks cmake`: This will cause the `CMakeLists.txt` to be re-generated.\n* `wks build [target]`: Will create a build and run it. `wks` will try to create a Ninja build, and\n  fall back to makefiles if it is not available. The `[target]` you can pass will be given to the build command\n  (`make [target]` or `ninja [target]`). The build will be stored in `build/` directory.\n* `wks pull`: Will run a `git pull` in all repositories. This will then scan for dependencies (equivalent to `wks install`\n  with no argument) and re-generate the `CMakeLists.txt`.\n* `wks status`: Gives insight on the status of your repositories, this will check for:\n  * Untracked files\n  * Changes without commits\n  * Changes commited but not pushed\n\nAll sources will be stored in `src/`, under `src/vendor/repository`.\n\n## Repositories format\n\nAll repositories are fetched for GitHub, and repositories can have those formats:\n\n* `vendor/repository`\n* `vendor/repository#branch`\n* `vendor/repository@tag`\n\n## The `wks.yml` file\n\nThe `wks.yml` can contain the following sections:\n\n* `deps`: a list of dependencies that the repository want to be installed\n* `optional`: a list of optional dependencies, they will not be installed but it ensure that the projects will appear\n  in the proper order in the generated `CMakeLists.txt`\n* `cmakes`: if the `CMakeLists.txt` for this repository is not at the top level (or not unique), you can specify them\n  using this section\n* `install`: a list of shell command that should be run post install\n* `cmake_prefix`: a list of directories to be added to `CMAKE_PREFIX_PATH`\n\nAn example is:\n\n```yaml\ndeps:\n    - rhoban/utils@v1.0\n    - rhoban/geometry@v2.0\n\ncmakes:\n    - client\n    - server\n```\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Simple dependencies manager for cmake projects in your workspace",
    "version": "0.3.3",
    "project_urls": {
        "Homepage": "https://github.com/rhoban/wks/"
    },
    "split_keywords": [
        "wks",
        "workspace",
        "deps"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b97ed74ec26acbe4288c59153d6588fc52f780057b1d0f40428df53fff7a96a1",
                "md5": "3161c51fafa4e68ba6b2dec5978a6bdf",
                "sha256": "214d10ab40df8431ca2a8bba2bc53ae18bf6d034853005d1209c7fda5a06ad6a"
            },
            "downloads": -1,
            "filename": "wks-0.3.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3161c51fafa4e68ba6b2dec5978a6bdf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 11959,
            "upload_time": "2023-07-01T14:45:47",
            "upload_time_iso_8601": "2023-07-01T14:45:47.280990Z",
            "url": "https://files.pythonhosted.org/packages/b9/7e/d74ec26acbe4288c59153d6588fc52f780057b1d0f40428df53fff7a96a1/wks-0.3.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cbfa65bd0dda04f4d4d6c769d767389efe52196f1e793ddc1e92d51010de29b9",
                "md5": "066700498e6c2e687efaa72f8287c984",
                "sha256": "784834d72a266079275693fdf253a21c8e7ee1ea2943a94fe32c7cea8cf472a4"
            },
            "downloads": -1,
            "filename": "wks-0.3.3.tar.gz",
            "has_sig": false,
            "md5_digest": "066700498e6c2e687efaa72f8287c984",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 8033,
            "upload_time": "2023-07-01T14:45:48",
            "upload_time_iso_8601": "2023-07-01T14:45:48.914705Z",
            "url": "https://files.pythonhosted.org/packages/cb/fa/65bd0dda04f4d4d6c769d767389efe52196f1e793ddc1e92d51010de29b9/wks-0.3.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-01 14:45:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rhoban",
    "github_project": "wks",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "wks"
}
        
Elapsed time: 0.09966s