C-based implementation of the GDI+ API
Перейти к файлу
Hugh Bellamy 43218b4d78 Update gitignore and settings.json (#582)
* Ignore tmp files in gitignore

* Update .vscode/settings.json
2019-08-05 12:42:56 +02:00
.vscode Update gitignore and settings.json (#582) 2019-08-05 12:42:56 +02:00
docs
src Fix "comparison is always the same" warnings 2019-08-02 19:24:59 +02:00
tests Disable testgdi test from compiling 2019-08-02 20:47:48 +02:00
.gitattributes Override *.inc language classification (#267) 2018-03-31 23:42:25 +02:00
.gitignore Update gitignore and settings.json (#582) 2019-08-05 12:42:56 +02:00
.jenkins-linux.sh Fix .jenkins-linux.sh script 2018-03-19 21:25:18 +01:00
.jenkins-osx.sh Revert "Fix cflags" 2018-11-30 17:42:54 +01:00
.jenkins-windows.ps1 Fix Windows build (#418) 2018-08-10 15:07:25 +02:00
.travis.yml Fix warnings on Linux Travis build 2019-07-31 17:20:47 +02:00
AUTHORS
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
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 Add instructions for code coverage 2018-09-18 15:04:44 +01:00
TODO Move some items from website into TODO 2017-09-21 12:58:49 +02:00
autogen.sh configure.ac: use command -v instead of which 2019-07-31 23:42:25 +02:00
configure.ac configure.ac: Use AC_CONFIG_MACRO_DIR instead of AC_CONFIG_MACRO_DIRS 2019-08-02 20:18:17 +02: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 Fix shell syntax error in configure.ac (#517) 2018-11-26 23:52:39 +01: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

Code coverage

Code coverage stats are generated with lcov. You can use Homebrew on OSX to install the dependencies:

brew install lcov

To run the tests with code coverage, run the following commands from the root of the repository:

./autogen.sh --enable-coverage
make check
lcov --capture --directory src --output-file coverage.info
genhtml coverage.info --output-directory coverage

To view the coverage report, navigate to the coverage directory in the root of the repository and open index.html.

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).