PengZheng opened a new pull request, #589:
URL: https://github.com/apache/celix/pull/589
This PR fixes #579 by implementing automatic dependency deduction among
components within the Celix package.
Now we can specify only what we need, and a minimal Conan package with
corresponding feature (and its internal dependencies, but nothing more) will be
built for us automatically.
For example, if we only need PushStreams, the following snippet should be
enough for any downstream project:
```python
self.requires("celix/2.3.0")
self.options['celix'].build_pushstreams = True
```
Or we can create a minimal Conan package with only PushStreams and Promises
support by the following command line:
```bash
conan create . -b missing -o celix:build_pushstreams=True
```
To this end:
- All `build_` options default to be `False`. Please note that CMake caches'
defaults are not changed.
- Error injectors for Celix components are under the control of
corresponding `build_` option. This is necessary to fix
https://github.com/apache/celix/actions/runs/5560191654/jobs/10156995210
- An `Celix::celix` dummy target is introduced. Now all components can be
turned off, which will result in empty package. Without this target,
`install(TARGETS ...)` will report unknown export "celix" error. Note that
creating an empty package is the fastest way of publishing a new conan package
(without actually building anything). In my day job, I normally publish
package this way (CI has already guaranteed that the package can be built
correctly).
- A GitHub work flow is introduced to try to create various Conan packages
with only one `build_` option enabled.
- etcdlib and promises can still be built the old way. Though building with
Conan is my preferred way.
Documentation has not been updated to reflect the above. We may need more
usage experience.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]