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

Reply via email to