mirror of
git://git.sv.nongnu.org/freetype/freetype2.git
synced 2026-01-19 04:52:09 +00:00
Add Meson build project file.
Example usage:
# Configure Meson build in directory `build-meson` to generate
# release binaries comparable to to the ones from the
# autotools/make build system.
meson setup build-meson \
--prefix=/usr/local \
--buildtype=debugoptimized \
--strip \
-Db_ndebug=true
# After configuring the Meson build with the above command,
# compile and install to `/usr/local/`; this includes a pkg-config
# file.
ninja -C build-meson install
# Alternatively, compile and install to `/tmp/aa/usr/local/...`
# for packaging.
DESTDIR=/tmp/aa ninja -C build-meson install
# Generate documentation under `build-meson/docs`.
ninja -C build-meson docs
Library size comparison for stripped `libfreetype.so` generated by
all three build systems:
- Default build (autotools + libtool): 712 KiB
- CMake build (RelWithDebInfo): 712 KiB
- Meson build: 712 KiB
* meson.build: New top-level Meson build file for the library.
* meson_options.txt: New file. It holds user-selectable options for
the build, which can be printed with `meson configure`, and selected
at `meson setup` or `meson --reconfigure` time with
`-D<option>=<value>`.
* scripts/parse_modules_cfg.py: A script invoked by `meson.build` to
parse `modules.cfg` and extract important information out of it
(i.e., the list of modules).
* scripts/process_ftoption_h.py: New script invoked by `meson.build`
to process the original `ftoption.h` file. It enables or disables
configuration macro variables based on the available dependencies.
This is similar to what other build systems are using (i.e., Meson's
`configure_file()` command is not used here).
* scripts/extract_freetype_version.py: New script invoked by
`meson.build` to extract the FreeType version number from
`<freetype/freetype.h>`.
* scripts/extract_libtool_version.py: New script invoked by
`meson.build` to extract the libtool `revision_info` data from
`builds/unix/configure.raw`, and to generate the corresponding
shared library suffix.
* scripts/generate_reference_docs.py: New script invoked by
`meson.build` to generate the FreeType 2 reference documentation
(using the `docwriter` and `mkdocs` packages, which must be already
installed).
This commit is contained in:
committed by
Werner Lemberg
parent
ab6a21b733
commit
66978a5887
47
meson_options.txt
Normal file
47
meson_options.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
#
|
||||
# meson_options.txt
|
||||
#
|
||||
|
||||
# Copyright (C) 2020 by
|
||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
#
|
||||
# This file is part of the FreeType project, and may only be used, modified,
|
||||
# and distributed under the terms of the FreeType project license,
|
||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||
# indicate that you have read the license and understand and accept it
|
||||
# fully.
|
||||
|
||||
|
||||
option('zlib',
|
||||
type: 'combo',
|
||||
choices: ['disabled', 'auto', 'builtin', 'system'],
|
||||
value: 'auto',
|
||||
description: 'Support reading gzip-compressed font files.')
|
||||
|
||||
option('bzip2',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Support reading bzip2-compressed font files.')
|
||||
|
||||
option('png',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Support color bitmap glyph formats in the PNG format.'
|
||||
+ 'Requires libpng.')
|
||||
|
||||
option('harfbuzz',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Use Harfbuzz library to improve auto-hinting.'
|
||||
+ ' If available, many glyphs not directly addressable'
|
||||
+ ' by a font\'s character map will be hinted also.')
|
||||
|
||||
option('brotli',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Use Brotli library to support decompressing WOFF2 fonts.')
|
||||
|
||||
option('mmap',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Use mmap() to open font files for faster parsing.')
|
||||
Reference in New Issue
Block a user