python-pillow / Pillow

Python Imaging Library (Fork)
https://python-pillow.org
Other
11.8k stars 2.13k forks source link

Make sure third-party libraries are found in debug build #8016

Open mrbean-bremen opened 1 month ago

mrbean-bremen commented 1 month ago

We build Pillow in debug mode and had the problem that the debug libraries (ending with "_d") were not found. Using this patch fixed this.

I did not add release notes, as this is internal build stuff only - let me know if they are needed (in case this PR will get accepted).

radarhere commented 1 month ago

Are you able to put together a Dockerfile that demonstrates the need for this?

mrbean-bremen commented 1 month ago

Are you able to put together a Dockerfile that demonstrates the need for this?

Sorry, missed that comment.

I have to check... we are building using conan (we also build the other dependencies), that would probably be overkill here. I first thaught to add a CI wheel build in debug mode, but that is hardly needed by anyone, so it would only make the build process even longer. Will think about it...

mrbean-bremen commented 1 month ago

The problem happens only if building against the debug libraries, which is not a common scenario (especially under Linux), except you build the libraries yourself (which we do). To reproduce this in a container, we would have to do this first (e.g. build the thirdparty libraries), as to my knowledge there is no ready container that already has them. As I wrote, we use conan to build the thirdparty libraries (and pillow) and store the build libraries in an artifactory, which would not be an option in the CI.

So, at the moment I don't have an idea how to test this with reasonable effort. I still think that the scenario is not completely outlandish, and it would make sense to support it (given that the underlying find_library_file from distutils supports it), but I can understand if you don't want to merge it without a test. We would patch it ourselves in this case.

And, by the way, thanks for all the work you put into this project, and for the fast and helpful feedback!