Compiled downloads
You can grab the latest compiled ImageMagick directly from their ftp or any mirror.
There are always 2 packages for the compiled ImageMagick:
- iOSMagick-VERSION-libs.zip
- iOSMagick-VERSION.zip
The first one includes headers and compiled libraries that have been used to
compile ImageMagick. Most users would need this one.
Compiling ImageMagick and IMDelegates
The directory structure has to be:
./build/ImageMagick-VERSION/ <- ImageMagick top directory ./build/IMDelegates/ <- Some delegates: jpeg + png + tiff ./build/IMDelegates/jpeg-9a/ <- jpeg lib ./build/IMDelegates/libpng-1.6.10 <- png lib ./build/IMDelegates/tiff-4.0.3 <- tiff lib
If you don’t have this directory structure you can either create it or try
change around the script. You can find the delegate libraries on the ImageMagick ftp
or on the respective websites.
The main script to run is:
./all.sh VERSION|clean
where VERSION is the version of ImageMagickyou want to compile (e.g., 6.8.8-9), if ‘clean’ is passed, the script will
clean all the log files and the directories it created.
Upon successful compilation a folder called “IMPORT_ME” will be created from
where you start the script: you can import it into your XCode project.
The rest of the scripts are invoked by all.sh and offer the following:
./env.shsets up environment variables used by the other scripts.
This is most probably the script you want to modify to suit your needs (e.g.,
set up which architectures will be compiles, verbosity level, …)
./flags.shsaves, sets up and restores compiler-related values
./utils.shoffers some functions used in the other scripts
./compile_*.share the scripts used to compile the respective component
XCode project settings
After including everything into XCode please also make sure to have these settings (Build tab of the project information):
- Other Linker Flags: -lMagickCore -lMagickWand -lz -lbz2 -ljpeg -lpng
- Header Search Paths: $(SRCROOT) – make it Recursive
- Library Search Paths: $(SRCROOT) – make it Recursive
On the lower left click on the small-wheel and select: Add User-Defined Setting
- Key: OTHER_CFLAGS
- Value: -Dmacintosh=1
In Link Binary with Libraries under Build Phases, you may also need to add:
- libxml2.dylib
Sample project
A more or less updated project is found in the IM_Test subfolder