Comments (8)
Yeah I've looked at that in the past, but it's missing a lot of development libraries (including freetype, sadly). I was recently made aware of a C/C++ package manager called Conan which looks like it does support freetype, but it seems complicated to set up and looks like it still requires you to build everything from source.
from aggdraw.
Look like we might have a new contender here: Microsoft, of all places, has apparently come up with a cross-platform package manager called vcpkg that builds/installs the binaries and headers for lots of common libraries (including Freetype) with a single terminal command (e.g. vcpkg install freetype
).
Apparently it's already pre-installed on all Appveyor images and supports both 32-bit and 64-bit Windows, so if it works, the only thing we'd need to do would be to copy its pre-built binary into the wheels somewhere and make sure that aggdraw can actually link to it. Over the holidays I'm going to try and figure out if vcpkg can help me get bundled .dlls for pysdl2 fully working, so if I'm successful I can hopefully apply what I've learned here, too.
from aggdraw.
Just wanted to mention that I might have a solution for including FreeType in the Windows wheels (which would solve this issue), though I won't have the time to test it out anytime soon: it looks like the freetype-py project has a build script for building FreeType on Windows that works with Appveyor, meaning that we could either adapt this code for aggdraw or alternatively just produce x86/x64 Windows FreeType DLLs using the script that we can then use for building aggdraw on Appveyor. We'd also need some code for bundling the .dll with the wheel (since there's no package to do this automatically like there is on macOS or Linux), but there are plenty of examples of other projects doing this that we could follow.
from aggdraw.
What about just depending on freetype-py?
Edit: And building against it when the wheels are generated, if needed.
from aggdraw.
That could work, but the built .dlls are buried within the wheels so building aggdraw wheels against it might be difficult. We could also just set up the appveyor CI to download and extract the .dll from the freetype-py wheel and then include that in the Windows wheels, which would likely be easier to implement while still keeping aggdraw dependency-free.
from aggdraw.
I'm not really familiar with linking when it comes to .dll's. If we can install freetype-py and point the AGGDRAW_FREETYPE_ROOT
environment variable where its .dll is, then that's probably the best overall solution. Oh wait...that wouldn't provide the headers needed for building. Could we modify the setup.py
to point at a system installed freetype for the headers and then point to the freetype-py .dll...no that's a terrible idea.
I'm not sure your suggestion would work either since we need the freetype headers.
from aggdraw.
Hmm, good point. Depending on how much it slows the builds, maybe integrating the build script is the best solution. Shame Windows doesn't have a package manager that would make getting the binaries/headers as easy as it is on Linux/macOS...
from aggdraw.
I think the astropy/ci-helpers
project uses "Chocolatey"?
Edit: https://chocolatey.org/
from aggdraw.
Related Issues (20)
- Default drawing behaviour different after merging agg2.4 HOT 14
- antigrain.com is squatted HOT 6
- multline text not supported HOT 1
- Line anti-aliasing issues due to missing sRGB mishandling HOT 5
- Resolve differences after agg 2.2 and agg 2.4 migration HOT 3
- aggdraw.Draw, aggdraw.Pen, aggdraw.Brush, etc... are not extendable (apparently) HOT 1
- Cannot install on Windows HOT 2
- MNT: Stop using ci-helpers in appveyor.yml HOT 1
- documentation has left the chat. HOT 1
- Latest Documentation? HOT 7
- pip install results in error Windows 10 21H1 HOT 4
- aggdraw does not some to be able to find fonts when installed in a venv HOT 3
- No arc symbols? HOT 1
- is there a way to draw squircle (rectangle with rounded edges) ? HOT 4
- Add support to release linux aarch64 wheels HOT 3
- PyPy3.8 support HOT 6
- Windows binaries are missing for aggdraw 1.3.13 on pypi.org HOT 4
- The value in the coordinates list cannot exceed 32767. HOT 1
- Diferences between pip version and source-compiled version HOT 4
- Misleading information in the document HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aggdraw.