freetype/builds/unix
David Turner 66978a5887 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).
2020-09-21 07:53:02 +02:00
..
.gitignore [unix] Install a massaged `ftoption.h' file (#51780). 2017-11-25 11:30:38 +01:00
ax_compare_version.m4 [docwriter] Drop support for Python < 3.5. 2020-03-21 20:17:17 +05:30
ax_prog_python_version.m4 [docwriter] Drop support for Python < 3.5. 2020-03-21 20:17:17 +05:30
configure.raw * builds/unix/configure.raw: Fix inclusion of `ftoption.h'. 2020-07-12 07:52:55 +02:00
detect.mk Update all copyright notices. 2020-01-19 17:05:19 +01:00
freetype2.in Update or fix links to use the https protocol instead of http. 2017-12-04 20:43:30 +01:00
freetype2.m4 Make macros for header file names optional. 2020-06-08 13:31:55 +02:00
freetype-config.in Update all copyright notices. 2020-01-19 17:05:19 +01:00
ft-munmap.m4 Update all copyright notices. 2020-01-19 17:05:19 +01:00
ftconfig.h.in [build] Split off more stuff from `ftconfig.h'. 2020-07-05 10:42:23 +02:00
ftsystem.c Add Meson build project file. 2020-09-21 07:53:02 +02:00
install.mk Update all copyright notices. 2020-01-19 17:05:19 +01:00
pkg.m4 Typos. 2017-01-24 23:56:59 -05:00
unix-cc.in * builds/freetype.mk: Refactor for readability. 2020-05-03 17:11:20 -04:00
unix-def.in [docs] Fix building docs if srcdir' != builddir'. 2020-03-22 23:29:51 +05:30
unix-dev.mk Update all copyright notices. 2020-01-19 17:05:19 +01:00
unix-lcc.mk Update all copyright notices. 2020-01-19 17:05:19 +01:00
unix.mk Update all copyright notices. 2020-01-19 17:05:19 +01:00
unixddef.mk Update all copyright notices. 2020-01-19 17:05:19 +01:00