-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cimg: add v3.3.5, expose all available options, fix issues with fftw and opencv, avoid overlinking #22290
base: master
Are you sure you want to change the base?
Conversation
As a workaround for linking issues with ffmpeg both as a direct or transitive dependency.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thhanks!
self.options["cimg"].enable_curl = True | ||
self.options["cimg"].enable_ffmpeg = True | ||
self.options["cimg"].enable_fftw = True | ||
self.options["cimg"].enable_heif = True | ||
self.options["cimg"].enable_jpeg = "libjpeg" | ||
self.options["cimg"].enable_magick = False # Not yet Conan 2.0 compatible | ||
self.options["cimg"].enable_opencv = False # OpenCV v3 Requires OpenEXR v2 | ||
self.options["cimg"].enable_openexr = True | ||
self.options["cimg"].enable_openmp = True | ||
self.options["cimg"].enable_png = True | ||
self.options["cimg"].enable_tiff = True | ||
self.options["cimg"].enable_tinyexr = False # Conflicts with OpenEXR and ZLib | ||
self.options["cimg"].enable_zlib = True | ||
if self.settings.os in ["Linux", "FreeBSD", "Windows"]: | ||
self.options["cimg"].enable_display = True | ||
if self.settings.os in ["Linux", "FreeBSD"]: | ||
self.options["cimg"].enable_xrandr = True | ||
self.options["cimg"].enable_xshm = True |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this needed? Usually test packages should be much simpler than this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You usually can't do more extensive testing in test_package due to the corresponding binary not being built for non-default options. This limitation does not exist for header-only packages, though. It has been very useful in validating the full configuration, but I can comment out this part now that the build is passing. What do you think?
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Conan v1 pipeline ❌Failure in build 4 (
Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability. Conan v2 pipeline ❌
The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping Failure in build 4 (
Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability. |
For future reference - and this is something that we need to update in the guidance for all of Conan Center - exposing all options a library might have is not a goal in Conan Center - rather, we'd like to expose the most likely to be used, and most likely to be useful. On the other hand, I appreciate this particular recipe has a history of doing this already - but Conan options where designed for things that affect (in most cases) the package contents, and none of these options do - so this causes a situation where not only does it deviate from Conan guidelines, it also deviates from the usage patterns of this very same library when consumed from other repositories. I can see that the equivalent recipe for this library in other repositories don't expose any options and also don't register any dependencies. From a maintainability point of view - it is quite telling that a header only library that has no more than ~30 lines of recipe in other repos, has 10 times as much in Conan Center :( |
Should also hopefully fix the build error in #22257 caused by the default value for
cimg_display
being incorrect on Macos.