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: dev-unsubscr...@celix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org