-
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
ncurses: migrate to Conan v2 #20355
ncurses: migrate to Conan v2 #20355
Conversation
I detected other pull requests that are modifying ncurses/all recipe: This message is automatically generated by https://github.com/ericLemanissier/conan-center-conflicting-prs so don't hesitate to report issues/improvements there. |
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.
Hooks produced the following warnings for commit e08332dncurses/6.3@#9c8ff067110359ed333d2451b482ab65
|
This comment has been minimized.
This comment has been minimized.
1f18ec1
to
f9c3edc
Compare
f9c3edc
to
f6352b3
Compare
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.
fcb2221
to
3c6e2ef
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
To fix the 'undefined symbol: _ZNSt3__14cerrE' error when using the shared lib with libc++.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
recipes/ncurses/all/conanfile.py
Outdated
"with_ticlib": ["auto", True, False], | ||
"with_ticlib": [True, False], | ||
"with_reentrant": [True, False], | ||
"with_tinfo": ["auto", True, False], | ||
"with_tinfo": [True, False], |
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.
Please, inform how do you change these values in term of always True, but considering that the system will actually do a check to enable/disable first.
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.
I restored the "auto" default value for clarity and backwards compatibility.
deade1c
to
7c4d860
Compare
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.
Okay, I checked https://cmake.org/cmake/help/latest/module/FindCurses.html and this file follows the variables there.
I've tested locally with these combinations which seem to work:
|
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.
Question about the handling of with_ticlib, looks good otherwise :)
|
||
def config_options(self): | ||
if self.settings.os == "Windows": | ||
del self.options.fPIC | ||
# Set the default value based on OS | ||
self.options.with_ticlib = self.settings.os != "Windows" |
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.
This is overriding whatever the user is setting these options as even if they are not set to auto, right?
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.
I see #20355 (comment) but not clear to me what the correct way would be
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.
This only overwrites the default "auto" value with a correct OS-specific default value. User-specified values for these options are not affected.
Believe me, this is approach is positively fantastic and I'm glad it works. Any alternatives approaches would need an insane amount of hacking around self.options
and self.info.options
being expected in different methods.
@valgur Could you please add |
@uilianries |
@valgur no problem! Thank you for trying, let's keep only test_package then. |
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.
LGTM
386cfc0
to
17cf0eb
Compare
Conan v1 pipeline ✔️All green in build 38 (
Conan v2 pipeline ✔️
All green in build 38 ( |
Some notable changes:
package_info()
.Curses::Curses
CMake target. CMake currently does not set one (https://gitlab.kitware.com/cmake/cmake/-/issues/23051), but I think having it is helpful and much less error-prone than using package variables.These can probably be closed if this PR gets merged: