66978a5887
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).
48 lines
1.3 KiB
Meson
48 lines
1.3 KiB
Meson
#
|
|
# 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.')
|