Skip to content

BugFix: Allow usage of clang+mingw with zlib #18283

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

Closed
wants to merge 4 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion recipes/zlib/all/conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,11 @@ class ZlibConan(ConanFile):

@property
def _is_mingw(self):
return self.settings.os == "Windows" and self.settings.compiler == "gcc"
is_windows = self.settings.get_safe("os") == "Windows"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like a lot of "work" that will result in false in probably most cases (I don't have numbers but I assume mingw has quite a bit lower market share compared to gcc and msvc"
I guess it would still be better to get the short circuit behaviour compared to the old code where it returns false as soon as some condition is reached that makes it false.
I see later it is used for "if windows then _is_mingw()" but still thinks that it can do a lot lees most of the time.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This a copy of conan-io/conan#12678 which still hasn't been merged. If you have any issues with it I recommend posting them there.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Am I alright to resolve this?

Copy link
Contributor

@CJCombrink CJCombrink Jul 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@seppeon I still think this is overly complex for a simple check. I would still recommend considering early return (see my comment here)
I am also not a deciding voice so you can resolve if you don't intend to change 👍

is_cygwin = self.settings.get_safe("os.subsystem") == "cygwin"
host_compiler = self.settings.get_safe("compiler")
msvc_runtime = self.settings.get_safe("compiler.runtime") != None
return is_windows and not is_cygwin and (host_compiler == "gcc" or (host_compiler == "clang" and not msvc_runtime))

def export_sources(self):
export_conandata_patches(self)
Expand Down