Description
Hi all,
I want to finally have a clean build for ImageMagick.
There seem to be a lot of issues when building ImageMagick.
It seems to me as if the current build system relies on a lot of uncertainties,.
E.g.:
- using
__init__
, in an automatically generated include. Depending on where included and what Julia version you have,__init__
will be called at different points, which makes it hard to reason about onload
hooks are not guaranteed to get executed. Since there is no documentation its pretty opaque to me, but seems they don't get executed when the library is already present. But e.g. the variableENV["MAGICK_CODER_MODULE_PATH"]
should also be set even if ImageMagick is already present, as some of my experiments show. So putting this intoonload
is asking for trouble.- why and when exactly
ccall((:MagickQueryConfigureOption, libwand), Ptr{UInt8}, (Ptr{UInt8},), "LIB_VERSION_NUMBER")
segfaults on OSX wasn't really found out?! Build segfaults on OS X JuliaImages/Images.jl#188 - I'm not sure why the version check is in a Module. Is this some hack for
__init__
?
From what I gathered we need these:
- always set
ENV["MAGICK_CODER_MODULE_PATH"]
andENV["MAGICK_CODER_MODULE_PATH"]
before calling any function fromImageMagick
- it seems osx needs also the path to be set!?
- libversion is only needed for
sRGB
vsRGB
MagickWandGenesis
and the ENV variables must be called before getting the versionMagickWandGenesis
only needs to get called one time after the build?! And on OSX every time the module loads!? I don't know :D
Then there is also this segfault with ImageMagick: JuliaLang/julia#13318
Because of all these issues, I started looking into polishing DevIL.jl a little more, as it is more lightweight and easier to setup compared to ImageMagick.
There I have problems with the Linux and OSX build. Any help would be appreciated:
https://travis-ci.org/JuliaGL/DevIL.jl
(Tests are successful, because they're still empty - builds are not.)
Here is an overview of DevIL's features: http://openil.sourceforge.net/features.php
It seems pretty capable and easy to integrate into FileIO.
Since I now allow for multiple IO libraries for the same formats, its also straight forward to have multiple libraries as a back up for some format.
Sorry for any misunderstandings. Everything is a little opaque to me and I don't have lots of time to do this :(
Best,
Simon
From the issues on Images.jl I conclude that this concerns: @timholy @lucasb-eyer @staticfloat @rsrock @jwmerrill