cps
cps copied to clipboard
Common Package Specification — A cross-tool mechanism for locating software dependencies
We recently (#63) added generation of a JSON schema. However, the schema covers only the "root" CPS file, while the specification allows for at least two flavors of supplemental files....
Add a link to the JSON schema from the main documentation. Pretty-print said schema and add `format` and `default`, with the latter also moving to the "machine readable" block in...
For various technical reasons, some packages are very likely to consist of several libraries of which some are not intended to be directly consumed by external users. Because CPS strongly...
Add an attribute specifying environment variables to set when executing a binary that uses a component. This is useful as components that do not live in system default search paths...
This is a case where I think that python with it's pyproject.toml made a really good choice, it specified that there would be a "tools" section, like so: ```toml [tools]...
``` Note that a value of null satisfies the condition of having the attribute. A value of null has the usual meaning where null is an acceptable value for the...
Following up from [discussion in slack](https://cpplang.slack.com/messages/C05KA1B6PNX/p1710541202610949?thread_ts=1710535467.028959). We agree that supporting link search paths and short names, ie `-L/usr/lib -lfoo` is more error prone than just supporting linking full paths, ie...
The schema itself should be versioned, and have a required "schema-version" field. It should use semantic versioning, so that a parser implementing 1.1 can parser 1.0 as valid schema, but...
[cps_version](https://cps-org.github.io/cps/schema.html#cps-version) is a required attribute of `package` the sample here is missing it https://cps-org.github.io/cps/sample.html
## Completion Criteria Documentation about how to practically convert existing CMake and/or pkg-config projects to CPS should be started. It can be iterated on as we gain experience, but sharing...