C-based implementation of the GDI+ API
Перейти к файлу
Hugh Bellamy 850a20f2a2 Make asan flags easier to add 2018-09-18 11:40:09 +01:00
.vscode Add __locale to vscode 2018-08-08 10:04:46 +02:00
docs Some minimal documentation about using valgrind to debug libgdiplus and about the different implementations to support regions 2006-03-23 15:31:01 +00:00
src Add more region combine tests (#415) 2018-08-29 14:09:58 +02:00
tests Add more region combine tests (#415) 2018-08-29 14:09:58 +02:00
.gitattributes Override *.inc language classification (#267) 2018-03-31 23:42:25 +02:00
.gitignore Add mac gitignore 2018-06-09 12:56:08 -07:00
.jenkins-linux.sh Fix .jenkins-linux.sh script 2018-03-19 21:25:18 +01:00
.jenkins-windows.ps1 Fix Windows build (#418) 2018-08-10 15:07:25 +02:00
.travis.yml Make asan flags easier to add 2018-09-18 11:40:09 +01:00
AUTHORS - Merged cairo 1.0 branch of GDI+ 2005-08-29 18:11:27 +00:00
COPYING Add back COPYING file 2017-09-20 20:31:33 +02:00
ChangeLog Clean up ChangeLog file 2017-09-21 12:50:57 +02:00
INSTALL - Merged cairo 1.0 branch of GDI+ 2005-08-29 18:11:27 +00:00
LICENSE Update LICENSE to match the headers of the source files 2018-07-17 23:24:51 +02:00
Makefile.am Distribute README.md 2017-09-26 20:45:37 +02:00
NEWS Move some items from website into TODO 2017-09-21 12:58:49 +02:00
README.md Make asan flags easier to add 2018-09-18 11:40:09 +01:00
TODO Move some items from website into TODO 2017-09-21 12:58:49 +02:00
autogen.sh Check for libtoolize rather than libtool 2016-04-15 12:08:00 +02:00
configure.ac Make asan flags easier to add 2018-09-18 11:40:09 +01:00
libgdiplus.pc.in revert this, it breaks for libexif and anyway the new options aren't supported 2007-08-09 14:15:50 +00:00
libgdiplus.sln Initial Visual Studio solution 2017-04-29 21:08:19 +02:00
libgdiplus0.spec.in Update the README to markdown (#86) 2017-09-21 12:48:47 +02:00
winconfig.h.in Fix Windows VS build 2017-09-21 13:37:30 +02:00

README.md

libgdiplus: An Open Source implementation of the GDI+ API.

This is part of the Mono project.

Build status:

Travis (Linux/OSX) Travis Build Status
Jenkins (Linux) Jenkins Linux Build Status
Jenkins (Windows) Jenkins Windows Build Status

Requirements:

This requires the libraries used by the Cairo vector graphics library to build (freetype2, fontconfig, Xft2 and libpng).

On OSX you can use Homebrew to install the dependencies:

brew install glib cairo libexif libjpeg giflib libtiff autoconf libtool automake pango pkg-config
brew link gettext --force

On Debian-based Linux distributions you can use apt-get to install the dependencies:

sudo apt-get install libgif-dev autoconf libtool automake build-essential gettext libglib2.0-dev libcairo2-dev libtiff-dev libexif-dev

On Windows you can use Vcpkg to install the dependencies. Run the following commands from the root of the repository from an admin command prompt:

bootstrap-vcpkg.bat
vcpkg.exe integrate install
vcpkg.exe install giflib libjpeg-turbo libpng cairo glib tiff libexif glib pango --triplet x86-windows
vcpkg.exe install giflib libjpeg-turbo libpng cairo glib tiff libexif glib pango --triplet x64-windows

Build instructions

To build on OSX without X11:

./autogen.sh --without-x11 --prefix=YOUR_PREFIX
make

To build on OSX with X11 (e.g. from XQuartz):

PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig ./autogen.sh --prefix=YOUR_PREFIX
make

To build on Linux:

./autogen.sh --prefix=YOUR_PREFIX
make

To build on Windows, open libgdiplus.sln.

Running the unit tests

Run the following command from the root of the repository:

make check

To run the tests with Clang sanitizers, run the following command from the root of the repository:

./autogen.sh --enable-asan
make check

Installing libgdiplus

Run the following command from the root of the repository:

make install

Optional build options

--with-pango

This builds libgdiplus using Pango to render (measure and draw) 
all of it's text. This requires Pango version 1.38 (or later).