freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Git][freetype/freetype][gsoc-anurag-docs-2023] 7 commits: [docs] Migrat


From: Anurag Thakur (@AdbhutDev)
Subject: [Git][freetype/freetype][gsoc-anurag-docs-2023] 7 commits: [docs] Migrate Readme to markdown
Date: Tue, 01 Aug 2023 09:12:01 +0000

Anurag Thakur pushed to branch gsoc-anurag-docs-2023 at FreeType / FreeType

Commits:

  • f48a8bc3
    by Anurag Thakur at 2023-08-01T14:38:56+05:30
    [docs] Migrate Readme to markdown
    
  • 0f2c7e34
    by Anurag Thakur at 2023-08-01T14:40:56+05:30
    [docs] Migrate docs/INSTALL to Markdown
    
  • 87c0dbeb
    by Anurag Thakur at 2023-08-01T14:40:58+05:30
    [docs] Migrate all INSTALL files to Markdown
    
  • 4b0bffc9
    by Anurag Thakur at 2023-08-01T14:40:58+05:30
    [docs] Add documentation on adding new modules to FreeType
    
  • 731b1cf9
    by Anurag Thakur at 2023-08-01T14:40:58+05:30
    [docs] Add documentation on compiling FreeType on an Android Device
    
  • 7c584d1e
    by Anurag Thakur at 2023-08-01T14:40:58+05:30
    [docs] Add documentation on FreeType development, benchmarking
    
  • 0b1947ec
    by Anurag Thakur at 2023-08-01T14:40:58+05:30
    [docs] Add documentation on FreeType smooth raster algorithm
    

19 changed files:

Changes:

  • CMakeLists.txt
    ... ... @@ -654,7 +654,7 @@ endif ()
    654 654
     # Packaging
    
    655 655
     set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
    
    656 656
     set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The FreeType font rendering library.")
    
    657
    -set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
    
    657
    +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
    
    658 658
     set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.TXT")
    
    659 659
     
    
    660 660
     set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
    

  • README deleted
    1
    -FreeType 2.13.1
    
    2
    -===============
    
    3
    -
    
    4
    -Homepage: https://www.freetype.org
    
    5
    -
    
    6
    -FreeType is a freely available software library to render fonts.
    
    7
    -
    
    8
    -It  is  written  in  C,   designed  to  be  small,  efficient,  highly
    
    9
    -customizable,  and portable  while capable  of producing  high-quality
    
    10
    -output (glyph images) of most vector and bitmap font formats.
    
    11
    -
    
    12
    -Please   read  the   `docs/CHANGES`   file,   it  contains   IMPORTANT
    
    13
    -INFORMATION.
    
    14
    -
    
    15
    -Read the files `docs/INSTALL*`  for installation instructions; see the
    
    16
    -file `docs/LICENSE.TXT` for the available licenses.
    
    17
    -
    
    18
    -For using FreeType's git repository  instead of a distribution bundle,
    
    19
    -please read file  `README.git`.  Note that you have  to actually clone
    
    20
    -the repository; using a snapshot will  not work (in other words, don't
    
    21
    -use gitlab's 'Download' button).
    
    22
    -
    
    23
    -The FreeType 2 API reference is located in directory `docs/reference`;
    
    24
    -use the file  `index.html` as the top entry point.   [Please note that
    
    25
    -currently  the search  function  for  locally installed  documentation
    
    26
    -doesn't work due to cross-site scripting issues.]
    
    27
    -
    
    28
    -Additional documentation is  available as a separate  package from our
    
    29
    -sites.  Go to
    
    30
    -
    
    31
    -  https://download.savannah.gnu.org/releases/freetype/
    
    32
    -
    
    33
    -and download one of the following files.
    
    34
    -
    
    35
    -  freetype-doc-2.13.1.tar.xz
    
    36
    -  freetype-doc-2.13.1.tar.gz
    
    37
    -  ftdoc2131.zip
    
    38
    -
    
    39
    -To view the documentation online, go to
    
    40
    -
    
    41
    -  https://www.freetype.org/freetype2/docs/
    
    42
    -
    
    43
    -
    
    44
    -Mailing Lists
    
    45
    --------------
    
    46
    -
    
    47
    -The preferred  way of  communication with the  FreeType team  is using
    
    48
    -e-mail lists.
    
    49
    -
    
    50
    -  general use and discussion:      freetype@nongnu.org
    
    51
    -  engine internals, porting, etc.: freetype-devel@nongnu.org
    
    52
    -  announcements:                   freetype-announce@nongnu.org
    
    53
    -  git repository tracker:          freetype-commit@nongnu.org
    
    54
    -
    
    55
    -The lists are moderated; see
    
    56
    -
    
    57
    -  https://www.freetype.org/contact.html
    
    58
    -
    
    59
    -how to subscribe.
    
    60
    -
    
    61
    -
    
    62
    -Bugs
    
    63
    -----
    
    64
    -
    
    65
    -Please submit bug reports at
    
    66
    -
    
    67
    -  https://gitlab.freedesktop.org/freetype/freetype/-/issues
    
    68
    -
    
    69
    -Alternatively,    you    might    report    bugs    by    e-mail    to
    
    70
    -`freetype-devel@nongnu.org`.    Don't  forget   to  send   a  detailed
    
    71
    -explanation of the problem -- there  is nothing worse than receiving a
    
    72
    -terse message that only says 'it doesn't work'.
    
    73
    -
    
    74
    -
    
    75
    -Patches
    
    76
    --------
    
    77
    -
    
    78
    -For larger changes please provide merge requests at
    
    79
    -
    
    80
    -  https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests
    
    81
    -
    
    82
    -Alternatively, you can send patches to the `freetype-devel@nongnu.org`
    
    83
    -mailing list  -- and thank you  in advance for your  work on improving
    
    84
    -FreeType!
    
    85
    -
    
    86
    -Details on the process can be found here:
    
    87
    -
    
    88
    -  https://www.freetype.org/developer.html#patches
    
    89
    -
    
    90
    -
    
    91
    -Enjoy!
    
    92
    -
    
    93
    -  The FreeType Team
    
    94
    -
    
    95
    -----------------------------------------------------------------------
    
    96
    -
    
    97
    -Copyright (C) 2006-2023 by
    
    98
    -David Turner, Robert Wilhelm, and Werner Lemberg.
    
    99
    -
    
    100
    -This  file is  part of  the FreeType  project, and  may only  be used,
    
    101
    -modified,  and distributed  under the  terms of  the  FreeType project
    
    102
    -license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
    
    103
    -this file you  indicate that you have read  the license and understand
    
    104
    -and accept it fully.
    
    105
    -
    
    106
    -
    
    107
    ---- end of README ---

  • README.git deleted
    1
    -README.git
    
    2
    -==========
    
    3
    -
    
    4
    -
    
    5
    -repository issues
    
    6
    ------------------
    
    7
    -
    
    8
    -FreeType's official repository site is
    
    9
    -
    
    10
    -  https://gitlab.freedesktop.org/freetype  ,
    
    11
    -
    
    12
    -from  which the  'freetype.git' and  'freetype-demos.git' repositories
    
    13
    -can be cloned in the usual way.
    
    14
    -
    
    15
    -  git clone https://gitlab.freedesktop.org/freetype/freetype.git
    
    16
    -  git clone https://gitlab.freedesktop.org/freetype/freetype-demos.git
    
    17
    -
    
    18
    -If you  want to  use the  Savannah mirror  instead, you  have to  do a
    
    19
    -slightly different  incantation because  the repository  names contain
    
    20
    -digit '2' for historical reasons.
    
    21
    -
    
    22
    -  git clone \
    
    23
    -    https://git.savannah.nongnu.org/git/freetype/freetype2.git \
    
    24
    -    freetype
    
    25
    -  git clone \
    
    26
    -    https://git.savannah.nongnu.org/git/freetype/freetype2-demos.git \
    
    27
    -    freetype-demos
    
    28
    -
    
    29
    -
    
    30
    -standard builds with `configure`
    
    31
    ---------------------------------
    
    32
    -
    
    33
    -The git repository doesn't contain pre-built configuration scripts for
    
    34
    -UNIXish platforms.  To generate them say
    
    35
    -
    
    36
    -  sh autogen.sh
    
    37
    -
    
    38
    -which in turn depends on the following packages:
    
    39
    -
    
    40
    -  automake (1.10.1)
    
    41
    -  libtool (2.2.4)
    
    42
    -  autoconf (2.62)
    
    43
    -
    
    44
    -The versions given  in parentheses are known to  work.  Newer versions
    
    45
    -should  work too,  of course.   Note  that `autogen.sh`  also sets  up
    
    46
    -proper file permissions for the `configure` and auxiliary scripts.
    
    47
    -
    
    48
    -The `autogen.sh` script checks whether the versions of the above three
    
    49
    -tools match the numbers above.  Otherwise it will complain and suggest
    
    50
    -either  upgrading or  using  environment variables  to  point to  more
    
    51
    -recent versions of the required tools.
    
    52
    -
    
    53
    -Note that  `aclocal` is provided  by the 'automake' package  on Linux,
    
    54
    -and that `libtoolize` is called `glibtoolize` on Darwin (OS X).
    
    55
    -
    
    56
    -
    
    57
    -alternative build methods
    
    58
    --------------------------
    
    59
    -
    
    60
    -For static  builds that don't use  platform-specific optimizations, no
    
    61
    -configure script is necessary at all; saying
    
    62
    -
    
    63
    -  make setup ansi
    
    64
    -  make
    
    65
    -
    
    66
    -should work on all platforms that have GNU `make` (or `makepp`).
    
    67
    -
    
    68
    -A build  with `cmake`  or `meson`  can be done  directly from  the git
    
    69
    -repository.  However, if you want  to use the `FT_DEBUG_LOGGING` macro
    
    70
    -(see file `docs/DEBUG` for more information) it is currently mandatory
    
    71
    -to execute `autogen.sh`  in advance; this script clones  the 'dlg' git
    
    72
    -submodule and copies some files into FreeType's source tree.
    
    73
    -
    
    74
    -
    
    75
    -Code of Conduct
    
    76
    ----------------
    
    77
    -
    
    78
    -Please note that  this project is released with a  Contributor Code of
    
    79
    -Conduct (CoC).  By participating in this project you agree to abide by
    
    80
    -its terms, which you can find in the following link:
    
    81
    -
    
    82
    -  https://www.freedesktop.org/wiki/CodeOfConduct
    
    83
    -
    
    84
    -CoC issues may  be raised to the project maintainers  at the following
    
    85
    -address:
    
    86
    -
    
    87
    -  wl@gnu.org
    
    88
    -  apodtele@gmail.com
    
    89
    -
    
    90
    -----------------------------------------------------------------------
    
    91
    -
    
    92
    -Copyright (C) 2005-2023 by
    
    93
    -David Turner, Robert Wilhelm, and Werner Lemberg.
    
    94
    -
    
    95
    -This  file is  part of  the FreeType  project, and  may only  be used,
    
    96
    -modified,  and distributed  under the  terms of  the  FreeType project
    
    97
    -license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
    
    98
    -this file you  indicate that you have read  the license and understand
    
    99
    -and accept it fully.
    
    100
    -
    
    101
    -
    
    102
    ---- end of README.git ---

  • README.md
    1
    +# FreeType ![Badge Version]
    
    2
    +
    
    3
    +*A freely available software library to render fonts.*
    
    4
    +
    
    5
    +---
    
    6
    +
    
    7
    + **[❮ Website ❯][Website]**
    
    8
    + **[❮ Install ❯][INSTALL]**
    
    9
    + **[❮ Changes ❯][CHANGES]**
    
    10
    + **[❮ Documentation ❯][Documentation]**
    
    11
    + **[❮ API ❯][API]**
    
    12
    + **[❮ License ❯][LICENSE]**
    
    13
    +
    
    14
    +---
    
    15
    +
    
    16
    +**FreeType** is a **C** library, designed to be small, efficient, highly
    
    17
    +customizable, and portable while capable of producing high-quality
    
    18
    +output (glyph images) of most vector and bitmap font formats.
    
    19
    +
    
    20
    +---
    
    21
    +![alt text](https://freetype.org/image/fond3.png "Title Text")
    
    22
    +
    
    23
    +# Documentation
    
    24
    +The FreeType 2 API reference for the latest release, along with additional
    
    25
    +documentation can be found online at:
    
    26
    +
    
    27
    +>https://freetype.org/freetype2/docs/documentation.html
    
    28
    +
    
    29
    +Refer to [DOCGUIDE] for more information.
    
    30
    +
    
    31
    +
    
    32
    +# Repo Mirrors
    
    33
    +
    
    34
    +FreeType's official git repository is located at
    
    35
    +
    
    36
    +>https://gitlab.freedesktop.org/freetype
    
    37
    +
    
    38
    +from which the 'freetype.git' and 'freetype-demos.git' repositories
    
    39
    +can be cloned in the usual way.
    
    40
    +
    
    41
    +FreeType:
    
    42
    +
    
    43
    +```bash
    
    44
    +git clone https://gitlab.freedesktop.org/freetype/freetype.git
    
    45
    +```
    
    46
    +
    
    47
    +FreeType-demos:
    
    48
    +```bash
    
    49
    +git clone https://gitlab.freedesktop.org/freetype/freetype-demos.git
    
    50
    +```
    
    51
    +
    
    52
    +If you want to use the Savannah mirror instead, you have to do a
    
    53
    +slightly different incantation because the repository names contain
    
    54
    +digit '2' for historical reasons.
    
    55
    +
    
    56
    +```bash
    
    57
    +git clone https://git.savannah.nongnu.org/git/freetype/freetype2.git
    
    58
    +```
    
    59
    +
    
    60
    +```bash
    
    61
    +git clone https://git.savannah.nongnu.org/git/freetype/freetype2-demos.git
    
    62
    +```
    
    63
    +
    
    64
    +
    
    65
    +# Compiling FreeType
    
    66
    +FreeType supports compilation via meson, GNU make and CMake
    
    67
    +
    
    68
    +Refer to [INSTALL] for more information.
    
    69
    +
    
    70
    +
    
    71
    +# Licensing
    
    72
    +FreeType is dual-licensed under the FTL and GPLv2.
    
    73
    +
    
    74
    +Refer to [LICENSE] for more information.
    
    75
    +
    
    76
    +
    
    77
    +# Reporting Issues
    
    78
    +Please submit bug reports at
    
    79
    +
    
    80
    +>https://gitlab.freedesktop.org/freetype/freetype/-/issues
    
    81
    +
    
    82
    +If you have suggestions for improving FreeType, they should be sent
    
    83
    +to the `freetype-devel` mailing list.
    
    84
    +
    
    85
    +
    
    86
    +# Improving FreeType
    
    87
    +For instructions on compiling FreeType, see [INSTALL].
    
    88
    +
    
    89
    +Please send merge requests to our gitlab repo at:
    
    90
    +
    
    91
    +>https://gitlab.freedesktop.org/freetype/freetype/
    
    92
    +
    
    93
    +Alternatively, you can send patches to the `freetype-devel` mailing list.
    
    94
    +Details on the process can be found here:
    
    95
    +
    
    96
    +>https://www.freetype.org/developer.html#patches
    
    97
    +
    
    98
    +Any non-trivial contribution should first be discussed with the maintainers
    
    99
    +via the `freetype-devel` mailing list.
    
    100
    +
    
    101
    +
    
    102
    +# Contact
    
    103
    +The preferred way of communication with the FreeType team is using
    
    104
    +mailing lists.
    
    105
    +
    
    106
    +*↳* [*How do I subscribe?*][Contact]
    
    107
    +
    
    108
    +
    
    109
    +| Email                        | Details                       |
    
    110
    +|------------------------------|-------------------------------|
    
    111
    +| freetype@nongnu.org          | General use and discussion    |
    
    112
    +| freetype-devel@nongnu.org    | Engine internals, Porting etc |
    
    113
    +| freetype-announce@nongnu.org | Announcements                 |
    
    114
    +| freetype-commit@nongnu.org   | Git repository track          |
    
    115
    +
    
    116
    +**The lists are moderated**
    
    117
    +
    
    118
    +
    
    119
    +# Code of Conduct
    
    120
    +Please note that this project is released with a Contributor Code of
    
    121
    +Conduct (CoC). By participating in this project you agree to abide by
    
    122
    +its terms, which you can find in the following link:
    
    123
    +
    
    124
    +>https://www.freedesktop.org/wiki/CodeOfConduct
    
    125
    +
    
    126
    +CoC issues may be raised to the project maintainers at the following
    
    127
    +address:
    
    128
    +
    
    129
    + - wl@gnu.org
    
    130
    + - apodtele@gmail.com
    
    131
    +
    
    132
    +---
    
    133
    +```
    
    134
    +Copyright (C) 2006-2023 by
    
    135
    +David Turner, Robert Wilhelm, and Werner Lemberg.
    
    136
    +
    
    137
    +This file is part of the FreeType project, and may only be used,
    
    138
    +modified, and distributed under the terms of the FreeType project
    
    139
    +license, LICENSE.TXT. By continuing to use, modify, or distribute
    
    140
    +this file you indicate that you have read the license and understand
    
    141
    +and accept it fully.
    
    142
    +```
    
    143
    +
    
    144
    +
    
    145
    +<!-------------------------------------------------------------------------->
    
    146
    +
    
    147
    +[Website]: https://www.freetype.org
    
    148
    +[Issues]: https://gitlab.freedesktop.org/freetype/freetype/-/issues
    
    149
    +[Contact]: https://www.freetype.org/contact.html
    
    150
    +[Merge Request]: https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests
    
    151
    +[Patches]: https://www.freetype.org/developer.html#patches
    
    152
    +[Documentation]: https://freetype.org/freetype2/docs/documentation.html
    
    153
    +[Releases]: https://download.savannah.gnu.org/releases/freetype/
    
    154
    +[API]: https://freetype.org/freetype2/docs/reference/index.html
    
    155
    +
    
    156
    +[INSTALL]: ./docs/INSTALL.md
    
    157
    +[CHANGES]: ./docs/CHANGES
    
    158
    +[LICENSE]: ./LICENSE.TXT
    
    159
    +[DOCGUIDE]: ./docs/DOCGUIDE
    
    160
    +
    
    161
    +[Badge Version]: https://gitlab.freedesktop.org/freetype/freetype/-/badges/release.svg

  • docs/.gitignore
    ... ... @@ -5,6 +5,18 @@ reference/
    5 5
     *.html
    
    6 6
     *.md
    
    7 7
     
    
    8
    +!INSTALL.md
    
    9
    +!INSTALL_ANY.md
    
    10
    +!INSTALL_CROSS.md
    
    11
    +!INSTALL_GNU.md
    
    12
    +!INSTALL_MAC.md
    
    13
    +!INSTALL_UNIX.md
    
    14
    +!INSTALL_VMS.md
    
    15
    +!INSTALL_ANDROID.md
    
    16
    +!MODIFYING.md
    
    17
    +!DEVELOPING.md
    
    18
    +!Raster_Algorithm.md
    
    19
    +
    
    8 20
     # MkDocs Config file
    
    9 21
     mkdocs.yml
    
    10 22
     
    

  • docs/DEVELOPING.md
    1
    +TODO: Add details on setting up a development environment, benchmarking and debugging freetype on various platforms

  • docs/INSTALL.CROSS deleted
    1
    -This document contains instructions on how to cross-build the FreeType
    
    2
    -library on Unix systems, for example, building binaries for Linux/MIPS
    
    3
    -on  FreeBSD/i386.  Before  reading this  document, please  consult the
    
    4
    -file  `INSTALL.UNIX' for  required tools  and the  basic self-building
    
    5
    -procedure.
    
    6
    -
    
    7
    -
    
    8
    -  1. Required Tools
    
    9
    -  -----------------
    
    10
    -
    
    11
    -    For self-building the FreeType library  on a Unix system, GNU Make
    
    12
    -    3.81 or newer  is required.  `INSTALL.UNIX' contains  hints how to
    
    13
    -    check the installed `make'.
    
    14
    -
    
    15
    -    The GNU C  compiler to cross-build the target  system is required.
    
    16
    -    Currently, using a non-GNU cross  compiler is untested.  The cross
    
    17
    -    compiler is  expected to be  installed with a system  prefix.  For
    
    18
    -    example, if  your building system  is FreeBSD/i386 and  the target
    
    19
    -    system is Linux/MIPS, the cross  compiler should be installed with
    
    20
    -    the name `mips-ip22-linuxelf-gcc'.
    
    21
    -
    
    22
    -    A C  compiler for a self-build  is required also, to  build a tool
    
    23
    -    (`apinames') that is executed during the build procedure.  Non-GNU
    
    24
    -    self compilers are acceptable, but such a setup is untested.
    
    25
    -
    
    26
    -
    
    27
    -  2. Configuration
    
    28
    -  ----------------
    
    29
    -
    
    30
    -    2.1. Building and target system
    
    31
    -
    
    32
    -      To configure  a cross-build,  the options  `--host=<system>' and
    
    33
    -      `--build=<system>'  must be  passed to  the `configure'  script.
    
    34
    -      For example, if your build system is FreeBSD/i386 and the target
    
    35
    -      system is Linux/MIPS, say
    
    36
    -
    
    37
    -        ./configure \
    
    38
    -          --build=i386-unknown-freebsd \
    
    39
    -          --host=mips-ip22-linuxelf \
    
    40
    -          [other options]
    
    41
    -
    
    42
    -      It should  be noted that `--host=<system>'  specifies the system
    
    43
    -      where the built binaries will  be executed, not the system where
    
    44
    -      the build actually happens.   Older versions of GNU autoconf use
    
    45
    -      the option  pair `--host=' and `--target='.  This  is broken and
    
    46
    -      doesn't work.  Similarly, an explicit CC specification like
    
    47
    -
    
    48
    -        env CC=mips-ip22-linux-gcc ./configure                 # BAD
    
    49
    -
    
    50
    -      or
    
    51
    -
    
    52
    -        env CC=/usr/local/mips-ip22-linux/bin/gcc ./configure  # BAD
    
    53
    -
    
    54
    -      doesn't   work  either;  such   a  configuration   confuses  the
    
    55
    -      `configure' script while  trying to find the cross  and native C
    
    56
    -      compilers.
    
    57
    -
    
    58
    -
    
    59
    -    2.2. The prefix to install FreeType2
    
    60
    -
    
    61
    -      Setting `--prefix=<prefix>'  properly is important.   The prefix
    
    62
    -      to  install  FreeType2  is written  into  the  `freetype-config'
    
    63
    -      script and `freetype2.pc' configuration file.
    
    64
    -
    
    65
    -      If  the built  FreeType  2 library  is  used as  a  part of  the
    
    66
    -      cross-building system,  the prefix  is expected to  be different
    
    67
    -      from  the self-building  system.  For  example, a  configuration
    
    68
    -      with   `--prefix=/usr/local'   installs    binaries   into   the
    
    69
    -      system-wide `/usr/local' directory, which then can't be executed
    
    70
    -      due  to the  incorrect architecture.   This causes  confusion in
    
    71
    -      configuration of all applications  that use FreeType2.  Instead,
    
    72
    -      use a prefix  to install the cross-build into  a separate system
    
    73
    -      tree, for example, `--prefix=/usr/local/mips-ip22-linux/'.
    
    74
    -
    
    75
    -      On the other hand, if the built  FreeType 2 library is used as a
    
    76
    -      part of the target system,  the prefix to install should reflect
    
    77
    -      the file system structure of the target system.
    
    78
    -
    
    79
    -
    
    80
    -    2.3. Library dependencies
    
    81
    -
    
    82
    -      FreeType normally depends on external libraries like `libpng' or
    
    83
    -      `libharfbuzz'.   The  easiest case  is  to  deactivate all  such
    
    84
    -      dependencies  using the  `--without-XXX' configuration  options.
    
    85
    -      However, if you  want to use those libraries,  you should ensure
    
    86
    -      that  they  are available  both  on  the  target system  and  as
    
    87
    -      (cross-compiled) libraries on the build system.
    
    88
    -
    
    89
    -      FreeType uses  `pkg-config' to find  most of the  libraries; the
    
    90
    -      other libraries it links to  are expected in the standard system
    
    91
    -      directories.   Since the  default pkg-config's  meta-information
    
    92
    -      files (like `harfbuzz.pc') of the build platform don't work, use
    
    93
    -      one of the two possible solutions below.
    
    94
    -
    
    95
    -        o Use pkg-config's meta-information files that are adjusted to
    
    96
    -          cross-compile  and  cross-link  with the  target  platform's
    
    97
    -          libraries.  Make sure those files are found before the build
    
    98
    -          system's default files.  Example:
    
    99
    -
    
    100
    -            ./configure \
    
    101
    -              --build=i386-unknown-freebsd \
    
    102
    -              --host=mips-ip22-linuxelf \
    
    103
    -              PKG_CONFIG_LIBDIR="/usr/local/mips-ip22-linux/lib/pkgconfig" \
    
    104
    -              [other options]
    
    105
    -
    
    106
    -          See the manpage of `pkg-config' for more details.
    
    107
    -
    
    108
    -        o Set variables like LIBPNG_LIBS  as additional options to the
    
    109
    -          `configure' script, overriding the values `pkg-config' would
    
    110
    -          provide.  `configure --help' shows the available environment
    
    111
    -          variables.  Example:
    
    112
    -
    
    113
    -            ./configure \
    
    114
    -              --build=i386-unknown-freebsd \
    
    115
    -              --host=mips-ip22-linuxelf \
    
    116
    -              LIBPNG_CFLAGS="-I/usr/local/mips-ip22-linux/include" \
    
    117
    -              LIBPNG_LIBS="-L/usr/local/mips-ip22-linux/lib -lpng12" \
    
    118
    -              [other options]
    
    119
    -
    
    120
    -
    
    121
    -  3. Building command
    
    122
    -  -------------------
    
    123
    -
    
    124
    -    If  the  configuration  finishes successfully,  invoking  GNU make
    
    125
    -    builds FreeType2.  Just say
    
    126
    -
    
    127
    -      make
    
    128
    -
    
    129
    -    or
    
    130
    -
    
    131
    -      gmake
    
    132
    -
    
    133
    -    depending on the name the GNU make binary actually has.
    
    134
    -
    
    135
    -
    
    136
    -  4. Installation
    
    137
    -  ---------------
    
    138
    -
    
    139
    -    Saying
    
    140
    -
    
    141
    -      make install
    
    142
    -
    
    143
    -    as usual to install FreeType2 into the directory tree specified by
    
    144
    -    the argument of the `--prefix' option.
    
    145
    -
    
    146
    -    As noted in section 2.2,  FreeType2  is sometimes configured to be
    
    147
    -    installed  into the  system directory  of the  target  system, and
    
    148
    -    should  not be installed  in the  cross-building system.   In such
    
    149
    -    cases, the  make variable `DESTDIR'  is useful to change  the root
    
    150
    -    directory in the installation.  For example, after
    
    151
    -
    
    152
    -      make DESTDIR=/mnt/target_system_root/ install
    
    153
    -
    
    154
    -    the built FreeType2 library files are installed into the directory
    
    155
    -    `/mnt/target_system_root/<prefix_in_configure>/lib'.
    
    156
    -
    
    157
    -
    
    158
    -  5. TODO
    
    159
    -  -------
    
    160
    -
    
    161
    -    Cross building between Cygwin (or MSys) and Unix must be tested.
    
    162
    -
    
    163
    -
    
    164
    -----------------------------------------------------------------------
    
    165
    -
    
    166
    -Copyright (C) 2006-2023 by
    
    167
    -suzuki toshiya, David Turner, Robert Wilhelm, and Werner Lemberg.
    
    168
    -
    
    169
    -
    
    170
    -This  file is  part of  the FreeType  project, and  may only  be used,
    
    171
    -modified,  and distributed  under the  terms of  the  FreeType project
    
    172
    -license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
    
    173
    -this file you  indicate that you have read  the license and understand
    
    174
    -and accept it fully.
    
    175
    -
    
    176
    -
    
    177
    ---- end of INSTALL.CROSS ---

  • docs/INSTALL.GNU deleted
    1
    -This document contains instructions how  to build the FreeType library
    
    2
    -on non-Unix systems with  the help of GNU Make.  Note  that if you are
    
    3
    -running  Cygwin  or  MinGW/MSYS  in Windows,  you  should  follow  the
    
    4
    -instructions in the file `INSTALL.UNIX' instead.
    
    5
    -
    
    6
    -
    
    7
    -  FreeType 2 includes a powerful and flexible build system that allows
    
    8
    -  you to  easily compile it on  a great variety of  platforms from the
    
    9
    -  command line.  To do so, just follow these simple instructions.
    
    10
    -
    
    11
    -  1. Install GNU Make
    
    12
    -  -------------------
    
    13
    -
    
    14
    -    The FreeType 2 build system relies on many features special to GNU
    
    15
    -    Make.
    
    16
    -
    
    17
    -    NEARLY ALL OTHER MAKE TOOLS  FAIL, INCLUDING `BSD MAKE', SO REALLY
    
    18
    -    INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
    
    19
    -
    
    20
    -    Note that  make++, a  make tool written  in Perl,  supports enough
    
    21
    -    features of GNU make to compile FreeType.  See
    
    22
    -
    
    23
    -      https://makepp.sourceforge.net
    
    24
    -
    
    25
    -    for more information;  you need version 2.0 or newer, and you must
    
    26
    -    pass option `--norc-substitution'.
    
    27
    -
    
    28
    -    Make sure that you are invoking GNU Make from the command line, by
    
    29
    -    typing something like:
    
    30
    -
    
    31
    -      make -v
    
    32
    -
    
    33
    -    to display its version number.
    
    34
    -
    
    35
    -    VERSION 3.81 OR NEWER IS NEEDED!
    
    36
    -
    
    37
    -
    
    38
    -  2. Invoke `make'
    
    39
    -  ----------------
    
    40
    -
    
    41
    -    Go to  the root  directory of FreeType  2, then simply  invoke GNU
    
    42
    -    Make from the command line.   This will launch the FreeType 2 host
    
    43
    -    platform  detection routines.   A summary  will be  displayed, for
    
    44
    -    example, on Win32.
    
    45
    -
    
    46
    -
    
    47
    -      ==============================================================
    
    48
    -      FreeType build system -- automatic system detection
    
    49
    -
    
    50
    -      The following settings are used:
    
    51
    -
    
    52
    -        platform                     windows
    
    53
    -        compiler                     gcc
    
    54
    -        configuration directory      .\builds\windows
    
    55
    -        configuration rules          .\builds\windows\w32-gcc.mk
    
    56
    -
    
    57
    -      If this does not correspond to your system or settings please
    
    58
    -      remove the file 'config.mk' from this directory then read the
    
    59
    -      INSTALL file for help.
    
    60
    -
    
    61
    -      Otherwise, simply type 'make' again to build the library
    
    62
    -      or 'make refdoc' to build the API reference (the latter needs
    
    63
    -      Python >= 3.5).
    
    64
    -      =============================================================
    
    65
    -
    
    66
    -
    
    67
    -    If the detected settings correspond to your platform and compiler,
    
    68
    -    skip to step 5.  Note that if your platform is completely alien to
    
    69
    -    the build system, the detected platform will be `ansi'.
    
    70
    -
    
    71
    -
    
    72
    -  3. Configure the build system for a different compiler
    
    73
    -  ------------------------------------------------------
    
    74
    -
    
    75
    -    If the build system correctly detected your platform, but you want
    
    76
    -    to use a different compiler  than the one specified in the summary
    
    77
    -    (for most platforms, gcc is the default compiler), invoke GNU Make
    
    78
    -    with
    
    79
    -
    
    80
    -      make setup <compiler>
    
    81
    -
    
    82
    -    Examples:
    
    83
    -
    
    84
    -      to use Visual C++ on Win32, type:  `make setup visualc'
    
    85
    -      to use Borland C++ on Win32, type  `make setup bcc32'
    
    86
    -      to use Watcom C++ on Win32, type   `make setup watcom'
    
    87
    -      to use Intel C++ on Win32, type    `make setup intelc'
    
    88
    -      to use LCC-Win32 on Win32, type:   `make setup lcc'
    
    89
    -      to use Watcom C++ on OS/2, type    `make setup watcom'
    
    90
    -      to use VisualAge C++ on OS/2, type `make setup visualage'
    
    91
    -
    
    92
    -    The  <compiler> name to  use is  platform-dependent.  The  list of
    
    93
    -    available  compilers for  your  system is  available  in the  file
    
    94
    -    `builds/<system>/detect.mk'.
    
    95
    -
    
    96
    -    If you  are satisfied  by the new  configuration summary,  skip to
    
    97
    -    step 5.
    
    98
    -
    
    99
    -
    
    100
    -  3a. Use clang instead of gcc
    
    101
    -  ----------------------------
    
    102
    -
    
    103
    -    The `clang'  compiler can  use FreeType's setup  for `gcc';  it is
    
    104
    -    sufficient to set the `CC' variable, for example
    
    105
    -
    
    106
    -      make CC=clang
    
    107
    -
    
    108
    -
    
    109
    -  3b. Compiling with a C++ compiler
    
    110
    -  ---------------------------------
    
    111
    -
    
    112
    -    FreeType can be built with a C++ compiler, for example
    
    113
    -
    
    114
    -      make CC="g++"
    
    115
    -
    
    116
    -    If `clang++' should  be used it is necessary to  also override the
    
    117
    -    `ANSIFLAGS' variable:
    
    118
    -
    
    119
    -      make CC="clang++" ANSIFLAGS=""
    
    120
    -
    
    121
    -
    
    122
    -  4. Configure the build system for an unknown platform/compiler
    
    123
    -  --------------------------------------------------------------
    
    124
    -
    
    125
    -    The auto-detection/setup  phase of the build system  copies a file
    
    126
    -    to the current directory under the name `config.mk'.
    
    127
    -
    
    128
    -    For    example,    on    OS/2+gcc,    it   would    simply    copy
    
    129
    -    `builds/os2/os2-gcc.mk' to `./config.mk'.
    
    130
    -
    
    131
    -    If for  some reason your  platform isn't correctly  detected, copy
    
    132
    -    manually the configuration sub-makefile to `./config.mk' and go to
    
    133
    -    step 5.
    
    134
    -
    
    135
    -    Note  that  this file  is  a  sub-Makefile  used to  specify  Make
    
    136
    -    variables  for compiler  and linker  invocation during  the build.
    
    137
    -    You can  easily create your own  version from one  of the existing
    
    138
    -    configuration files,  then copy it to the  current directory under
    
    139
    -    the name `./config.mk'.
    
    140
    -
    
    141
    -
    
    142
    -  5. Build the library
    
    143
    -  --------------------
    
    144
    -
    
    145
    -    The auto-detection/setup  phase should have  copied a file  in the
    
    146
    -    current  directory,  called  `./config.mk'.   This  file  contains
    
    147
    -    definitions of various Make  variables used to invoke the compiler
    
    148
    -    and linker during the build.  [It has also generated a file called
    
    149
    -    `ftmodule.h'   in  the  objects   directory  (which   is  normally
    
    150
    -    `<toplevel>/objs/');  please read  the  file `docs/CUSTOMIZE'  for
    
    151
    -    customization of FreeType.]
    
    152
    -
    
    153
    -    To  launch  the build,  simply  invoke  GNU  Make again:  The  top
    
    154
    -    Makefile will detect the configuration file and run the build with
    
    155
    -    it.  If you have used variables in  step 3, you must use  the same
    
    156
    -    variables here, too.
    
    157
    -
    
    158
    -
    
    159
    -  Final note
    
    160
    -
    
    161
    -    The above instructions build a  _statically_ linked library of the
    
    162
    -    font engine in the `objs' directory.   On Windows, you can build a
    
    163
    -    DLL  either  with  MinGW  (within an  MSYS  shell,  following  the
    
    164
    -    instructions in `INSTALL.UNIX'), or you  use one of the Visual C++
    
    165
    -    project files; see  the  subdirectories  of `builds/windows'.  For
    
    166
    -    everything else,  you are on  your own,  and you might  follow the
    
    167
    -    instructions in `INSTALL.ANY' to create your own Makefiles.
    
    168
    -
    
    169
    -----------------------------------------------------------------------
    
    170
    -
    
    171
    -Copyright (C) 2003-2023 by
    
    172
    -David Turner, Robert Wilhelm, and Werner Lemberg.
    
    173
    -
    
    174
    -This  file is  part of  the FreeType  project, and  may only  be used,
    
    175
    -modified,  and distributed  under the  terms of  the  FreeType project
    
    176
    -license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
    
    177
    -this file you  indicate that you have read  the license and understand
    
    178
    -and accept it fully.
    
    179
    -
    
    180
    -
    
    181
    ---- end of INSTALL.GNU ---

  • docs/INSTALL.UNIX deleted
    1
    -This  document contains  instructions  on how  to  build the  FreeType
    
    2
    -library on Unix  systems.  This also works for  emulations like Cygwin
    
    3
    -or MSys on Win32:
    
    4
    -
    
    5
    -
    
    6
    -  1. Ensure that you are using GNU Make
    
    7
    -  -------------------------------------
    
    8
    -
    
    9
    -    The FreeType build system  _exclusively_ works with GNU Make.  You
    
    10
    -    will  not be  able to  compile the  library with  the instructions
    
    11
    -    below using any other alternative (including BSD Make).
    
    12
    -
    
    13
    -    Check that you have GNU make by running the command:
    
    14
    -
    
    15
    -       make -v
    
    16
    -
    
    17
    -    This should dump some text that begins with:
    
    18
    -
    
    19
    -       GNU Make  <version number>
    
    20
    -       Copyright (C) <year> Free Software Foundation Inc.
    
    21
    -
    
    22
    -    Note that version  3.81 or higher is *required* or the  build will
    
    23
    -    fail.
    
    24
    -
    
    25
    -    It is also fine to have GNU Make under another name (e.g. 'gmake')
    
    26
    -    if you use the MAKE variable as described below.
    
    27
    -
    
    28
    -    As  a  special exception,  'makepp'  can  also  be used  to  build
    
    29
    -    FreeType 2.  See the file docs/MAKEPP for details.
    
    30
    -
    
    31
    -    For builds  with `cmake' please check file `CMakeLists.txt';  this
    
    32
    -    is a contributed file not directly supported by the FreeType team.
    
    33
    -
    
    34
    -
    
    35
    -  2. Regenerate the configure script if needed
    
    36
    -  --------------------------------------------
    
    37
    -
    
    38
    -    This only applies if you  are building a git snapshot or checkout,
    
    39
    -    *not* if you grabbed the sources of an official release.
    
    40
    -
    
    41
    -    You  need  to invoke  the  `autogen.sh'  script  in the  top-level
    
    42
    -    directory  in order  to  create the  `configure'  script for  your
    
    43
    -    platform.  Normally, this simply means typing:
    
    44
    -
    
    45
    -      sh autogen.sh
    
    46
    -
    
    47
    -    In case of problems, you may  need to install or upgrade Automake,
    
    48
    -    Autoconf or Libtool.  See  `README.git' in the top-level directory
    
    49
    -    for more information.
    
    50
    -
    
    51
    -
    
    52
    -  3. Build and install the library
    
    53
    -  --------------------------------
    
    54
    -
    
    55
    -    Say
    
    56
    -
    
    57
    -      ./configure --help
    
    58
    -
    
    59
    -    to see  the list of  possible configuration options  and important
    
    60
    -    environment  variables.  The ./configure script  will detect  some
    
    61
    -    prerequisite  system  libraries  (libpng, brotli, etc.)  if  their
    
    62
    -    headers are available at the default locations.
    
    63
    -
    
    64
    -    The following  should work  on all Unix  systems where  the `make'
    
    65
    -    command invokes GNU Make:
    
    66
    -
    
    67
    -      ./configure [options]
    
    68
    -      make
    
    69
    -      make install           (as root)
    
    70
    -
    
    71
    -    The default installation path  is `/usr/local'.  It can be changed
    
    72
    -    with the `--prefix=<path>' option.  Example:
    
    73
    -
    
    74
    -      ./configure --prefix=/usr
    
    75
    -
    
    76
    -    When using  a different command  to invoke GNU Make,  use the MAKE
    
    77
    -    variable.  For example,  if `gmake' is the command  to use on your
    
    78
    -    system, do something like:
    
    79
    -
    
    80
    -       MAKE=gmake ./configure [options]
    
    81
    -       gmake
    
    82
    -       gmake install            (as root)
    
    83
    -
    
    84
    -    If  this still doesn't  work, there  must be  a problem  with your
    
    85
    -    system (e.g., you are using a very old version of GNU Make).
    
    86
    -
    
    87
    -    For library identification, FreeType's `configure' script uses the
    
    88
    -    `pkg-config' interface: Assuming it  needs library `foo', it calls
    
    89
    -    the  `pkg-config' program  to find  information on  library `foo',
    
    90
    -    which in turn  looks for a `foo.pc' file installed  at the system.
    
    91
    -    Some platforms,  however, don't come with  `pkg-support'; you then
    
    92
    -    have  to  use environment  variables  as  described by  `configure
    
    93
    -    --help'.  Example:
    
    94
    -
    
    95
    -      LIBPNG_CFLAGS="-I/path/to/libpng/include/directory" \
    
    96
    -      LIBPNG_LIBS="-L/path/to/libpng/lib/directory" \
    
    97
    -      configure ...
    
    98
    -
    
    99
    -    It  is possible  to  compile FreeType  in  a different  directory.
    
    100
    -    Assuming the FreeType source  files in directory `/src/freetype' a
    
    101
    -    compilation in directory `foo' works as follows:
    
    102
    -
    
    103
    -      cd foo
    
    104
    -      /src/freetype/configure [options]
    
    105
    -      make
    
    106
    -      make install
    
    107
    -
    
    108
    -
    
    109
    -  3.1 Interdependency with HarfBuzz
    
    110
    -  .................................
    
    111
    -
    
    112
    -    Note that there  is a chicken-and-egg problem  currently since the
    
    113
    -    HarfBuzz library  (used by the  auto-hinter to improve  support of
    
    114
    -    OpenType  fonts)  depends on  FreeType,  which  can be  solved  as
    
    115
    -    follows in case HarfBuzz is not yet installed on your system.
    
    116
    -
    
    117
    -    1. Call    FreeType's     `configure'    script     with    option
    
    118
    -       `--without-harfbuzz', then compile and install FreeType.
    
    119
    -
    
    120
    -    2. Compile and install HarfBuzz.
    
    121
    -
    
    122
    -    3. Call    FreeType's    `configure'   script    without    option
    
    123
    -       `--without-harfbuzz' (after  executing `make  distclean'), then
    
    124
    -       compile and install FreeType again.
    
    125
    -
    
    126
    -
    
    127
    -----------------------------------------------------------------------
    
    128
    -
    
    129
    -Copyright (C) 2003-2023 by
    
    130
    -David Turner, Robert Wilhelm, and Werner Lemberg.
    
    131
    -
    
    132
    -This  file is  part of  the FreeType  project, and  may only  be used,
    
    133
    -modified,  and distributed  under the  terms of  the  FreeType project
    
    134
    -license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
    
    135
    -this file you  indicate that you have read  the license and understand
    
    136
    -and accept it fully.
    
    137
    -
    
    138
    -
    
    139
    ---- end of INSTALL.UNIX ---

  • docs/INSTALLdocs/INSTALL.md
    1
    +# Building FreeType
    
    1 2
     
    
    2 3
     There are  several ways  to build the  FreeType library,  depending on
    
    3 4
     your system and the level of  customization you need.  Here is a short
    
    4 5
     overview of the documentation available:
    
    5 6
     
    
    6 7
     
    
    7
    -I. Prerequisites and dependencies
    
    8
    -=================================
    
    8
    +## A. Prerequisites and dependencies
    
    9 9
     
    
    10 10
       FreeType is a low level C library  that only depends on the standard
    
    11 11
       C library with very few platform-dependent optimizations utilized at
    
    ... ... @@ -24,23 +24,22 @@ I. Prerequisites and dependencies
    24 24
       run-time;  look at the documentation of function `FT_Property_Set`.
    
    25 25
     
    
    26 26
     
    
    27
    -II. Normal installation and upgrades
    
    28
    -====================================
    
    27
    +## B. Normal installation and upgrades
    
    29 28
     
    
    30
    -  1. Unix and Unix-like systems
    
    29
    +1. Unix and Unix-like systems
    
    31 30
     
    
    32 31
         This also includes MacOS, Cygwin, MinGW + MSYS, Mingw-w64 + MSYS2,
    
    33 32
         and possibly other, similar environments.
    
    34 33
     
    
    35
    -    Please read `INSTALL.UNIX` to install or upgrade FreeType  2 on  a
    
    34
    +    Please read [INSTALL.UNIX] to install or upgrade FreeType  2 on  a
    
    36 35
         Unix system.   Note  that  you  *need*  GNU  Make   for  automatic
    
    37 36
         compilation,  since other make tools won't work (this includes BSD
    
    38 37
         Make).
    
    39 38
     
    
    40
    -    GNU Make VERSION 3.81 OR NEWER IS NEEDED!
    
    39
    +    **GNU Make VERSION 3.81 OR NEWER IS NEEDED!**
    
    41 40
     
    
    42 41
     
    
    43
    -  2. Other systems using GNU Make
    
    42
    +2. Other systems using GNU Make
    
    44 43
     
    
    45 44
         On some  non-Unix platforms, it  is possible to build  the library
    
    46 45
         using only  the GNU Make utility.   Note that *NO OTHER  MAKE TOOL
    
    ... ... @@ -48,22 +47,24 @@ II. Normal installation and upgrades
    48 47
         Windows, OS/2, and BeOS,  including MinGW* (without MSYS*), Visual
    
    49 48
         C++, Borland C++, and more.
    
    50 49
     
    
    51
    -    Instructions are provided in the file `INSTALL.GNU`.
    
    50
    +    Instructions are provided in the file [INSTALL.GNU].
    
    52 51
     
    
    53 52
     
    
    54
    -  3. Other build tools and platforms.
    
    53
    +3. Other build tools and platforms.
    
    55 54
     
    
    56 55
         A few other tools  can be used  to build FreeType.  You  can  find
    
    57 56
         the  corresponding instruction files  in  the FreeType root folder
    
    58 57
         or the builds/ sub-folder.
    
    59 58
     
    
    60
    -      CMake   :: see `CMakeLists.txt` for more information
    
    61
    -      Meson   :: see `meson.build` for more information
    
    62
    -      MSBuild :: see `builds/windows/vc2010/freetype.vcxproj`
    
    63
    -      MMS     :: see `vms_make.com` and `docs/INSTALL.VMS`
    
    59
    +    |Build Tool | Details |
    
    60
    +    | --- | --- |
    
    61
    +    |CMake   | see [CMakeLists.txt] for more information |
    
    62
    +    |Meson   | see [meson.build] for more information |
    
    63
    +    |MSBuild | see [freetype.vcxproj] |
    
    64
    +    |MMS     | see [vms_make.com] and [INSTALL.VMS] |
    
    64 65
     
    
    65 66
     
    
    66
    -  4. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
    
    67
    +4. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
    
    67 68
     
    
    68 69
         We provide a  small number of 'project files'  for various IDEs to
    
    69 70
         automatically build  the library as  well.  Note that  these files
    
    ... ... @@ -74,22 +75,63 @@ II. Normal installation and upgrades
    74 75
         directory, where <system> stands for your OS or environment.
    
    75 76
     
    
    76 77
     
    
    77
    -  5. From you own IDE, or own Makefiles
    
    78
    +5. From you own IDE, or own Makefiles
    
    78 79
     
    
    79 80
         If  you  want  to  create   your  own  project  file,  follow  the
    
    80
    -    instructions   given  in  the   `INSTALL.ANY`  document   of  this
    
    81
    +    instructions   given  in  the   [INSTALL.ANY]  document   of  this
    
    81 82
         directory.
    
    82 83
     
    
    83 84
     
    
    84
    -III. Custom builds of the library
    
    85
    -=================================
    
    85
    +## C. Custom builds of the library
    
    86 86
     
    
    87 87
       Customizing the compilation  of FreeType is easy, and  allows you to
    
    88 88
       select only the components of  the font engine that you really need.
    
    89
    -  For more details read the file `CUSTOMIZE`.
    
    89
    +  For more details read the file [docs/CUSTOMIZE][CUSTOMIZE].
    
    90 90
     
    
    91
    +## D. Standard builds with `configure`
    
    91 92
     
    
    92
    -----------------------------------------------------------------------
    
    93
    +  The git repository doesn't contain pre-built configuration scripts for
    
    94
    +  UNIXish platforms.  To generate them say
    
    95
    +
    
    96
    +    sh autogen.sh
    
    97
    +
    
    98
    +  which in turn depends on the following packages:
    
    99
    +
    
    100
    +    automake (1.10.1)
    
    101
    +    libtool (2.2.4)
    
    102
    +    autoconf (2.62)
    
    103
    +
    
    104
    +  The versions given  in parentheses are known to  work.  Newer versions
    
    105
    +  should  work too,  of course.   Note  that `autogen.sh`  also sets  up
    
    106
    +  proper file permissions for the `configure` and auxiliary scripts.
    
    107
    +
    
    108
    +  The `autogen.sh` script checks whether the versions of the above three
    
    109
    +  tools match the numbers above.  Otherwise it will complain and suggest
    
    110
    +  either  upgrading or  using  environment variables  to  point to  more
    
    111
    +  recent versions of the required tools.
    
    112
    +
    
    113
    +  Note that  `aclocal` is provided  by the 'automake' package  on Linux,
    
    114
    +  and that `libtoolize` is called `glibtoolize` on Darwin (OS X).
    
    115
    +
    
    116
    +
    
    117
    +## E. Alternative build methods
    
    118
    +
    
    119
    +  For static  builds that don't use  platform-specific optimizations, no
    
    120
    +  configure script is necessary at all; saying
    
    121
    +
    
    122
    +    make setup ansi
    
    123
    +    make
    
    124
    +
    
    125
    +  should work on all platforms that have GNU `make` (or `makepp`).
    
    126
    +
    
    127
    +  A build  with `cmake`  or `meson`  can be done  directly from  the git
    
    128
    +  repository.  However, if you want  to use the `FT_DEBUG_LOGGING` macro
    
    129
    +  (see file [docs/DEBUG][DEBUG] for more information) it is currently mandatory
    
    130
    +  to execute `autogen.sh`  in advance; this script clones  the 'dlg' git
    
    131
    +  submodule and copies some files into FreeType's source tree.
    
    132
    +
    
    133
    +
    
    134
    +---
    
    93 135
     
    
    94 136
     [1] make++, a make tool written in Perl, has sufficient support of GNU
    
    95 137
         make extensions to build FreeType.  See
    
    ... ... @@ -99,7 +141,7 @@ III. Custom builds of the library
    99 141
         for more information;  you need version 2.0 or newer, and you must
    
    100 142
         pass option `--norc-substitution`.
    
    101 143
     
    
    102
    -----------------------------------------------------------------------
    
    144
    +---
    
    103 145
     
    
    104 146
     Copyright (C) 2000-2023 by
    
    105 147
     David Turner, Robert Wilhelm, and Werner Lemberg.
    
    ... ... @@ -110,5 +152,15 @@ license, LICENSE.TXT. By continuing to use, modify, or distribute
    110 152
     this file you  indicate that you have read  the license and understand
    
    111 153
     and accept it fully.
    
    112 154
     
    
    113
    -
    
    114
    ---- end of INSTALL ---
    155
    +<!----------------------------------------------------------------------------->
    
    156
    +
    
    157
    +[CMakeLists.txt]: ../CMakeLists.txt
    
    158
    +[meson.build]: ../meson.build
    
    159
    +[freetype.vcxproj]: ../builds/windows/vc2010/freetype.vcxproj
    
    160
    +[vms_make.com]: ../vms_make.com
    
    161
    +[INSTALL.VMS]: ./INSTALL.VMS
    
    162
    +[INSTALL.ANY]: ./INSTALL.ANY
    
    163
    +[INSTALL.GNU]: ./INSTALL.GNU
    
    164
    +[INSTALL.UNIX]: ./INSTALL.UNIX
    
    165
    +[CUSTOMIZE]: ./CUSTOMIZE
    
    166
    +[DEBUG]: ./DEBUG

  • docs/INSTALL_ANDROID.md
    1
    +# Compiling FreeType on Android using Termux
    
    2
    +
    
    3
    +If you want to test FreeType on arm devices, compiling it on an Android
    
    4
    +phone is one of the easiest ways.
    
    5
    +
    
    6
    +## 1. Compiling FreeType
    
    7
    +
    
    8
    +1. Install and open termux
    
    9
    +
    
    10
    +2. Update termux packages using:
    
    11
    +
    
    12
    +   ```bash
    
    13
    +   pkg update
    
    14
    +   pkg upgrade
    
    15
    +   ```
    
    16
    +   Select `y` if any configuration changes are asked
    
    17
    +
    
    18
    +3. Install `git`:
    
    19
    +
    
    20
    +   ```bash
    
    21
    +   pkg install git
    
    22
    +   ```
    
    23
    +4. Install packages required for compilation:
    
    24
    +
    
    25
    +   ```bash
    
    26
    +   pkg install automake autoconf libtool make clang binutils
    
    27
    +   ```
    
    28
    +
    
    29
    +5. Clone FreeType's git repository:
    
    30
    +
    
    31
    +   ```bash
    
    32
    +   git clone https://gitlab.freedesktop.org/freetype/freetype.git
    
    33
    +   ```
    
    34
    +
    
    35
    +6. Enter into the source directory:
    
    36
    +
    
    37
    +   ```
    
    38
    +   cd freetype/
    
    39
    +   ```
    
    40
    +
    
    41
    +7. Now you can compile FreeType according to [INSTALL_UNIX.md]:
    
    42
    +
    
    43
    +   ```bash
    
    44
    +   ./autogen.sh
    
    45
    +   ./configure
    
    46
    +   make -j$(nproc)
    
    47
    +   ```
    
    48
    +   The compiled binaries can be accessed under `objs/.libs`
    
    49
    +
    
    50
    +## 2. Compiling FreeType Demo programs
    
    51
    +If you need to test your changes you may want to use ft-demo
    
    52
    +programs. They can be compiled and run by follwing these steps:
    
    53
    +
    
    54
    +1. First compile FreeType using the steps above.
    
    55
    +
    
    56
    +2. Clone FreeType demos adjacent to the `freetype/` directory:
    
    57
    +
    
    58
    +   ```bash
    
    59
    +   git clone https://gitlab.freedesktop.org/freetype/freetype-demos.git
    
    60
    +   ```
    
    61
    +   i.e. If you can access FreeType repo under `~/freetype`, you should
    
    62
    +   be able to access `~/freetype-demos`.
    
    63
    +
    
    64
    +3. Enter into the ft-demos directory:
    
    65
    +
    
    66
    +   ```bash
    
    67
    +   cd freetype-demos
    
    68
    +   ```
    
    69
    +
    
    70
    +4. Compile the programs:
    
    71
    +
    
    72
    +   ```bash
    
    73
    +   make
    
    74
    +   ```
    
    75
    +
    
    76
    +5. The compiled binaries can be accessed and executed under `bin/` like:
    
    77
    +
    
    78
    +   ```bash
    
    79
    +   cd bin
    
    80
    +   ./ftlint
    
    81
    +   ```
    
    82
    +
    
    83
    +<!---->
    
    84
    +
    
    85
    +[INSTALL_UNIX.md]: ./INSTALL_UNIX.md

  • docs/INSTALL.ANYdocs/INSTALL_ANY.md
    1
    -Instructions on how to build FreeType with your own build tool
    
    2
    -==============================================================
    
    1
    +# Instructions on how to build FreeType with your own build tool
    
    3 2
     
    
    4
    -See  the  file `CUSTOMIZE'  to  learn  how  to customize  FreeType  to
    
    5
    -specific environments.
    
    6 3
     
    
    4
    +See  the  file [docs/CUSTOMIZE][CUSTOMIZE]  to  learn  how  to 
    
    5
    +customize FreeType to specific environments.
    
    7 6
     
    
    8
    -I. Standard procedure
    
    9
    ----------------------
    
    10 7
     
    
    11
    -  * If you use macro names  for FreeType header files (while mandatory
    
    12
    -    in earlier versions,  this is now optional  since FreeType version
    
    13
    -    2.6.1) it  is necessary to  disable pre-compiled headers.  This is
    
    14
    -    very important for Visual C++, because lines like
    
    8
    +## A. Standard procedure
    
    9
    +
    
    10
    +* If you use macro names  for FreeType header files (while mandatory
    
    11
    +  in earlier versions,  this is now optional  since FreeType version
    
    12
    +  2.6.1) it  is necessary to  disable pre-compiled headers.  This is
    
    13
    +  very important for Visual C++, because lines like
    
    15 14
     
    
    16 15
           #include FT_FREETYPE_H
    
    17 16
     
    
    18
    -    are not  correctly supported  by this compiler  while being  ISO C
    
    19
    -    compliant!
    
    17
    +  are not  correctly supported  by this compiler  while being  ISO C
    
    18
    +  compliant!
    
    20 19
     
    
    21
    -  * You need to add the directory `include' to your  include path when
    
    22
    -    compiling the library.
    
    20
    +* You need to add the directory `include` to your  include path when
    
    21
    +  compiling the library.
    
    23 22
     
    
    24
    -  * FreeType 2 is made of several  components; each of them is located
    
    25
    -    in    a   subdirectory    of    `freetype/src'.    For    example,
    
    26
    -    `freetype/src/truetype/' contains the TrueType font driver.
    
    23
    +* FreeType 2 is made of several  components; each of them is located
    
    24
    +  in    a   subdirectory    of    `freetype/src`.    For    example,
    
    25
    +  `freetype/src/truetype/` contains the TrueType font driver.
    
    27 26
     
    
    28
    -  * DO NOT COMPILE ALL C FILES!  Rather, compile the following ones.
    
    27
    +* DO NOT COMPILE ALL C FILES!  Rather, compile the following ones.
    
    29 28
     
    
    30
    -    -- base components (required)
    
    29
    +  ### base components (required):
    
    31 30
     
    
    32 31
           src/base/ftsystem.c
    
    33 32
           src/base/ftinit.c
    
    ... ... @@ -55,7 +54,7 @@ I. Standard procedure
    55 54
     
    
    56 55
           src/base/ftmac.c        -- only on the Macintosh
    
    57 56
     
    
    58
    -    -- font drivers (optional; at least one is needed)
    
    57
    +  ### font drivers (optional; at least one is needed)
    
    59 58
     
    
    60 59
           src/bdf/bdf.c           -- BDF font driver
    
    61 60
           src/cff/cff.c           -- CFF/OpenType font driver
    
    ... ... @@ -69,14 +68,13 @@ I. Standard procedure
    69 68
           src/type42/type42.c     -- Type 42 font driver
    
    70 69
           src/winfonts/winfnt.c   -- Windows FONT / FNT font driver
    
    71 70
     
    
    72
    -    -- rasterizers (optional; at least one is needed for vector
    
    73
    -       formats)
    
    71
    +  ### rasterizers (optional; at least one is needed for vector formats)
    
    74 72
     
    
    75 73
           src/raster/raster.c     -- monochrome rasterizer
    
    76 74
           src/sdf/sdf.c           -- Signed Distance Field driver
    
    77 75
           src/smooth/smooth.c     -- anti-aliasing rasterizer
    
    78 76
     
    
    79
    -    -- auxiliary modules (optional)
    
    77
    +  ### auxiliary modules (optional)
    
    80 78
     
    
    81 79
           src/autofit/autofit.c   -- auto hinting module
    
    82 80
           src/cache/ftcache.c     -- cache sub-system (in beta)
    
    ... ... @@ -90,60 +88,58 @@ I. Standard procedure
    90 88
           src/psnames/psnames.c   -- PostScript glyph names support
    
    91 89
     
    
    92 90
     
    
    93
    -    Notes:
    
    91
    +  ## Notes:
    
    94 92
     
    
    95
    -      `ftcache.c'  needs `ftglyph.c'
    
    96
    -      `ftfstype.c' needs `fttype1.c'
    
    97
    -      `ftglyph.c'  needs `ftbitmap.c'
    
    98
    -      `ftstroke.c' needs `ftglyph.c'
    
    99
    -      `ftsynth.c'  needs `ftbitmap.c'
    
    93
    +      `ftcache.c`  needs `ftglyph.c`
    
    94
    +      `ftfstype.c` needs `fttype1.c`
    
    95
    +      `ftglyph.c`  needs `ftbitmap.c`
    
    96
    +      `ftstroke.c` needs `ftglyph.c`
    
    97
    +      `ftsynth.c`  needs `ftbitmap.c`
    
    100 98
     
    
    101
    -      `cff.c'      needs `sfnt.c', `pshinter.c', and `psnames.c'
    
    102
    -      `truetype.c' needs `sfnt.c' and `psnames.c'
    
    103
    -      `type1.c'    needs `psaux.c' `pshinter.c', and `psnames.c'
    
    104
    -      `type1cid.c' needs `psaux.c', `pshinter.c', and `psnames.c'
    
    105
    -      `type42.c'   needs `truetype.c'
    
    99
    +      `cff.c`      needs `sfnt.c`, `pshinter.c`, and `psnames.c`
    
    100
    +      `truetype.c` needs `sfnt.c` and `psnames.c`
    
    101
    +      `type1.c`    needs `psaux.c` `pshinter.c`, and `psnames.c`
    
    102
    +      `type1cid.c` needs `psaux.c`, `pshinter.c`, and `psnames.c`
    
    103
    +      `type42.c`   needs `truetype.c`
    
    106 104
     
    
    107
    -      Please consult the central  `include/freetype/config/ftoption.h'
    
    108
    -      configuration file for details on additional libraries necessary
    
    109
    -      for some optional features.
    
    105
    +    Please consult the central  `include/freetype/config/ftoption.h`
    
    106
    +    configuration file for details on additional libraries necessary
    
    107
    +    for some optional features.
    
    110 108
     
    
    111 109
     
    
    112
    -  Read the file `CUSTOMIZE' in case  you want to compile only a subset
    
    113
    -  of  the  drivers,  renderers,   and  optional  modules;  a  detailed
    
    114
    -  description of the various base  extension is given in the top-level
    
    115
    -  file `modules.cfg'.
    
    110
    +Read the file `CUSTOMIZE` in case  you want to compile only a subset
    
    111
    +of  the  drivers,  renderers,   and  optional  modules;  a  detailed
    
    112
    +description of the various base  extension is given in the top-level
    
    113
    +file `modules.cfg`.
    
    116 114
     
    
    117
    -  You are done.  In case of problems, see the archives of the FreeType
    
    118
    -  development mailing list.
    
    115
    +You are done.  In case of problems, see the archives of the FreeType
    
    116
    +development mailing list.
    
    119 117
     
    
    120 118
     
    
    121
    -II. Support for flat-directory compilation
    
    122
    -------------------------------------------
    
    119
    +## B. Support for flat-directory compilation
    
    123 120
     
    
    124
    -  It is  possible to  put all  FreeType 2 source  files into  a single
    
    125
    -  directory, with the *exception* of the `include' hierarchy.
    
    121
    +It is  possible to  put all  FreeType 2 source  files into  a single
    
    122
    +directory, with the *exception* of the `include` hierarchy.
    
    126 123
     
    
    127
    -  1. Copy all files in current directory
    
    124
    +1. Copy all files in current directory
    
    128 125
     
    
    129
    -      cp freetype/src/base/*.[hc] .
    
    130
    -      cp freetype/src/raster1/*.[hc] .
    
    131
    -      cp freetype/src/smooth/*.[hc] .
    
    132
    -      etc.
    
    126
    +        cp freetype/src/base/*.[hc] .
    
    127
    +        cp freetype/src/raster1/*.[hc] .
    
    128
    +        cp freetype/src/smooth/*.[hc] .
    
    129
    +        etc.
    
    133 130
     
    
    134
    -  2. Compile sources
    
    131
    +2. Compile sources
    
    135 132
     
    
    136
    -      cc -c -Iinclude -DFT2_BUILD_LIBRARY ftsystem.c
    
    137
    -      cc -c -Iinclude -DFT2_BUILD_LIBRARY ftinit.c
    
    138
    -      cc -c -Iinclude -DFT2_BUILD_LIBRARY ftdebug.c
    
    139
    -      cc -c -Iinclude -DFT2_BUILD_LIBRARY ftbase.c
    
    140
    -      etc.
    
    133
    +        cc -c -Iinclude -DFT2_BUILD_LIBRARY ftsystem.c
    
    134
    +        cc -c -Iinclude -DFT2_BUILD_LIBRARY ftinit.c
    
    135
    +        cc -c -Iinclude -DFT2_BUILD_LIBRARY ftdebug.c
    
    136
    +        cc -c -Iinclude -DFT2_BUILD_LIBRARY ftbase.c
    
    137
    +        etc.
    
    141 138
     
    
    142 139
         You don't  need to define  the FT_FLAT_COMPILATION macro  (as this
    
    143 140
         was required in previous releases of FreeType 2).
    
    144 141
     
    
    145
    -----------------------------------------------------------------------
    
    146
    -
    
    142
    +```
    
    147 143
     Copyright (C) 2003-2023 by
    
    148 144
     David Turner, Robert Wilhelm, and Werner Lemberg.
    
    149 145
     
    
    ... ... @@ -152,6 +148,7 @@ modified, and distributed under the terms of the FreeType project
    152 148
     license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
    
    153 149
     this file you  indicate that you have read  the license and understand
    
    154 150
     and accept it fully.
    
    151
    +```
    
    155 152
     
    
    156
    -
    
    157
    ---- end of INSTALL.ANY ---
    153
    +<!---->
    
    154
    +[CUSTOMIZE]: ./CUSTOMIZE

  • docs/INSTALL_CROSS.md
    1
    +# Cross-Compiling FreeType
    
    2
    +
    
    3
    +This document contains instructions on how to cross-build the FreeType
    
    4
    +library on Unix systems, for example, building binaries for Linux/MIPS
    
    5
    +on  FreeBSD/i386.  Before  reading this  document, please  consult the
    
    6
    +file  [INSTALL_UNIX.md] for  required tools  and the  basic self-building
    
    7
    +procedure.
    
    8
    +
    
    9
    +
    
    10
    +## 1. Required Tools
    
    11
    +
    
    12
    +  For self-building the FreeType library  on a Unix system, GNU Make
    
    13
    +  3.81 or newer  is required.  [INSTALL_UNIX.md contains  hints how to
    
    14
    +  check the installed `make`.
    
    15
    +
    
    16
    +  The GNU C  compiler to cross-build the target  system is required.
    
    17
    +  Currently, using a non-GNU cross  compiler is untested.  The cross
    
    18
    +  compiler is  expected to be  installed with a system  prefix.  For
    
    19
    +  example, if  your building system  is FreeBSD/i386 and  the target
    
    20
    +  system is Linux/MIPS, the cross  compiler should be installed with
    
    21
    +  the name `mips-ip22-linuxelf-gcc`.
    
    22
    +
    
    23
    +  A C  compiler for a self-build  is required also, to  build a tool
    
    24
    +  (`apinames`) that is executed during the build procedure.  Non-GNU
    
    25
    +  self compilers are acceptable, but such a setup is untested.
    
    26
    +
    
    27
    +
    
    28
    +## 2. Configuration
    
    29
    +
    
    30
    +  ### 2.1 Building and target system
    
    31
    +
    
    32
    +  To configure  a cross-build,  the options  `--host=<system>` and
    
    33
    +  `--build=<system>`  must be  passed to  the `configure`  script.
    
    34
    +  For example, if your build system is FreeBSD/i386 and the target
    
    35
    +  system is Linux/MIPS, say
    
    36
    +
    
    37
    +  ```bash
    
    38
    +    ./configure \
    
    39
    +      --build=i386-unknown-freebsd \
    
    40
    +      --host=mips-ip22-linuxelf \
    
    41
    +      [other options]
    
    42
    +  ```
    
    43
    +
    
    44
    +  It should  be noted that `--host=<system>`  specifies the system
    
    45
    +  where the built binaries will  be executed, not the system where
    
    46
    +  the build actually happens.   Older versions of GNU autoconf use
    
    47
    +  the option  pair `--host=` and `--target=`.  This  is broken and
    
    48
    +  doesn't work.  Similarly, an explicit CC specification like
    
    49
    +
    
    50
    +  ```bash
    
    51
    +    env CC=mips-ip22-linux-gcc ./configure                 # BAD
    
    52
    +  ```
    
    53
    +  or
    
    54
    +
    
    55
    +  ```bash
    
    56
    +    env CC=/usr/local/mips-ip22-linux/bin/gcc ./configure  # BAD
    
    57
    +  ```
    
    58
    +
    
    59
    +  doesn't   work  either;  such   a  configuration   confuses  the
    
    60
    +  `configure` script while  trying to find the cross  and native C
    
    61
    +  compilers.
    
    62
    +
    
    63
    +
    
    64
    +  ### 2.2. The prefix to install FreeType2
    
    65
    +
    
    66
    +  Setting `--prefix=<prefix>`  properly is important.   The prefix
    
    67
    +  to  install  FreeType2  is written  into  the  `freetype-config`
    
    68
    +  script and `freetype2.pc` configuration file.
    
    69
    +
    
    70
    +  If  the built  FreeType  2 library  is  used as  a  part of  the
    
    71
    +  cross-building system,  the prefix  is expected to  be different
    
    72
    +  from  the self-building  system.  For  example, a  configuration
    
    73
    +  with   `--prefix=/usr/local`   installs    binaries   into   the
    
    74
    +  system-wide `/usr/local` directory, which then can't be executed
    
    75
    +  due  to the  incorrect architecture.   This causes  confusion in
    
    76
    +  configuration of all applications  that use FreeType2.  Instead,
    
    77
    +  use a prefix  to install the cross-build into  a separate system
    
    78
    +  tree, for example, `--prefix=/usr/local/mips-ip22-linux/`.
    
    79
    +
    
    80
    +  On the other hand, if the built  FreeType 2 library is used as a
    
    81
    +  part of the target system,  the prefix to install should reflect
    
    82
    +  the file system structure of the target system.
    
    83
    +
    
    84
    +
    
    85
    +  ### 2.3. Library dependencies
    
    86
    +
    
    87
    +  FreeType normally depends on external libraries like `libpng` or
    
    88
    +  `libharfbuzz`.   The  easiest case  is  to  deactivate all  such
    
    89
    +  dependencies  using the  `--without-XXX` configuration  options.
    
    90
    +  However, if you  want to use those libraries,  you should ensure
    
    91
    +  that  they  are available  both  on  the  target system  and  as
    
    92
    +  (cross-compiled) libraries on the build system.
    
    93
    +
    
    94
    +  FreeType uses  `pkg-config` to find  most of the  libraries; the
    
    95
    +  other libraries it links to  are expected in the standard system
    
    96
    +  directories.   Since the  default pkg-config's  meta-information
    
    97
    +  files (like `harfbuzz.pc`) of the build platform don't work, use
    
    98
    +  one of the two possible solutions below.
    
    99
    +
    
    100
    +    - Use pkg-config's meta-information files that are adjusted to
    
    101
    +      cross-compile  and  cross-link  with the  target  platform's
    
    102
    +      libraries.  Make sure those files are found before the build
    
    103
    +      system's default files.  Example:
    
    104
    +      ```bash
    
    105
    +        ./configure \
    
    106
    +          --build=i386-unknown-freebsd \
    
    107
    +          --host=mips-ip22-linuxelf \
    
    108
    +          PKG_CONFIG_LIBDIR="/usr/local/mips-ip22-linux/lib/pkgconfig" \
    
    109
    +          [other options]
    
    110
    +      ```
    
    111
    +
    
    112
    +      See the manpage of `pkg-config` for more details.
    
    113
    +
    
    114
    +    - Set variables like LIBPNG_LIBS  as additional options to the
    
    115
    +      `configure` script, overriding the values `pkg-config` would
    
    116
    +      provide.  `configure --help` shows the available environment
    
    117
    +      variables.  Example:
    
    118
    +      ```bash
    
    119
    +        ./configure \
    
    120
    +          --build=i386-unknown-freebsd \
    
    121
    +          --host=mips-ip22-linuxelf \
    
    122
    +          LIBPNG_CFLAGS="-I/usr/local/mips-ip22-linux/include" \
    
    123
    +          LIBPNG_LIBS="-L/usr/local/mips-ip22-linux/lib -lpng12" \
    
    124
    +          [other options]
    
    125
    +      ```
    
    126
    +
    
    127
    +
    
    128
    +## 3. Building command
    
    129
    +
    
    130
    +  If  the  configuration  finishes successfully,  invoking  GNU make
    
    131
    +  builds FreeType2.  Just say
    
    132
    +
    
    133
    +    make
    
    134
    +
    
    135
    +  or
    
    136
    +
    
    137
    +    gmake
    
    138
    +
    
    139
    +  depending on the name the GNU make binary actually has.
    
    140
    +
    
    141
    +
    
    142
    +## 4. Installation
    
    143
    +
    
    144
    +  Saying
    
    145
    +
    
    146
    +    make install
    
    147
    +
    
    148
    +  as usual to install FreeType2 into the directory tree specified by
    
    149
    +  the argument of the `--prefix` option.
    
    150
    +
    
    151
    +  As noted in section 2.2,  FreeType2  is sometimes configured to be
    
    152
    +  installed  into the  system directory  of the  target  system, and
    
    153
    +  should  not be installed  in the  cross-building system.   In such
    
    154
    +  cases, the  make variable `DESTDIR`  is useful to change  the root
    
    155
    +  directory in the installation.  For example, after
    
    156
    +
    
    157
    +  ```bash
    
    158
    +  make DESTDIR=/mnt/target_system_root/ install
    
    159
    +  ```
    
    160
    +
    
    161
    +  the built FreeType2 library files are installed into the directory
    
    162
    +  `/mnt/target_system_root/<prefix_in_configure>/lib`.
    
    163
    +
    
    164
    +
    
    165
    +5. TODO
    
    166
    +
    
    167
    +  Cross building between Cygwin (or MSys) and Unix must be tested.
    
    168
    +
    
    169
    +
    
    170
    +```
    
    171
    +Copyright (C) 2006-2023 by
    
    172
    +suzuki toshiya, David Turner, Robert Wilhelm, and Werner Lemberg.
    
    173
    +
    
    174
    +
    
    175
    +This  file is  part of  the FreeType  project, and  may only  be used,
    
    176
    +modified,  and distributed  under the  terms of  the  FreeType project
    
    177
    +license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
    
    178
    +this file you  indicate that you have read  the license and understand
    
    179
    +and accept it fully.
    
    180
    +```
    
    181
    +
    
    182
    +<!---->
    
    183
    +[INSTALL_UNIX.md]: ./INSTALL_UNIX.md

  • docs/INSTALL_GNU.md
    1
    +# Compiling FreeType with GNU Make
    
    2
    +
    
    3
    +This document contains instructions how  to build the FreeType library
    
    4
    +on non-Unix systems with  the help of GNU Make.  Note  that if you are
    
    5
    +running  Cygwin  or  MinGW/MSYS  in Windows,  you  should  follow  the
    
    6
    +instructions in the file [INSTALL_UNIX.md] instead.
    
    7
    +
    
    8
    +
    
    9
    +FreeType 2 includes a powerful and flexible build system that allows
    
    10
    +you to  easily compile it on  a great variety of  platforms from the
    
    11
    +command line.  To do so, just follow these simple instructions.
    
    12
    +
    
    13
    +## 1. Install GNU Make
    
    14
    +
    
    15
    +  The FreeType 2 build system relies on many features special to GNU
    
    16
    +  Make.
    
    17
    +
    
    18
    +  NEARLY ALL OTHER MAKE TOOLS  FAIL, INCLUDING `BSD MAKE`, SO REALLY
    
    19
    +  INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
    
    20
    +
    
    21
    +  Note that  make++, a  make tool written  in Perl,  supports enough
    
    22
    +  features of GNU make to compile FreeType.  See
    
    23
    +
    
    24
    +      https://makepp.sourceforge.net
    
    25
    +
    
    26
    +  for more information;  you need version 2.0 or newer, and you must
    
    27
    +  pass option `--norc-substitution`.
    
    28
    +
    
    29
    +  Make sure that you are invoking GNU Make from the command line, by
    
    30
    +  typing something like:
    
    31
    +
    
    32
    +      make -v
    
    33
    +
    
    34
    +  to display its version number.
    
    35
    +
    
    36
    +  VERSION 3.81 OR NEWER IS NEEDED!
    
    37
    +
    
    38
    +
    
    39
    +## 2. Invoke `make`
    
    40
    +
    
    41
    +  Go to  the root  directory of FreeType  2, then simply  invoke GNU
    
    42
    +  Make from the command line.   This will launch the FreeType 2 host
    
    43
    +  platform  detection routines.   A summary  will be  displayed, for
    
    44
    +  example, on Win32.
    
    45
    +      
    
    46
    +
    
    47
    +      FreeType build system -- automatic system detection
    
    48
    +
    
    49
    +      The following settings are used:
    
    50
    +
    
    51
    +        platform                     windows
    
    52
    +        compiler                     gcc
    
    53
    +        configuration directory      .\builds\windows
    
    54
    +        configuration rules          .\builds\windows\w32-gcc.mk
    
    55
    +
    
    56
    +      If this does not correspond to your system or settings please
    
    57
    +      remove the file 'config.mk' from this directory then read the
    
    58
    +      INSTALL file for help.
    
    59
    +
    
    60
    +      Otherwise, simply type 'make' again to build the library
    
    61
    +      or 'make refdoc' to build the API reference (the latter needs
    
    62
    +      Python >= 3.5).
    
    63
    +      
    
    64
    +
    
    65
    +  If the detected settings correspond to your platform and compiler,
    
    66
    +  skip to step 5.  Note that if your platform is completely alien to
    
    67
    +  the build system, the detected platform will be `ansi`.
    
    68
    +
    
    69
    +
    
    70
    +## 3. Configure the build system for a different compiler
    
    71
    +
    
    72
    +  If the build system correctly detected your platform, but you want
    
    73
    +  to use a different compiler  than the one specified in the summary
    
    74
    +  (for most platforms, gcc is the default compiler), invoke GNU Make
    
    75
    +  with
    
    76
    +
    
    77
    +    ```
    
    78
    +    make setup <compiler>
    
    79
    +    ```
    
    80
    +
    
    81
    +  Examples:
    
    82
    +
    
    83
    +  to use Visual C++ on Win32, type:  `make setup visualc`
    
    84
    +
    
    85
    +  to use Borland C++ on Win32, type  `make setup bcc32`
    
    86
    +
    
    87
    +  to use Watcom C++ on Win32, type   `make setup watcom`
    
    88
    +
    
    89
    +  to use Intel C++ on Win32, type    `make setup intelc`
    
    90
    +
    
    91
    +  to use LCC-Win32 on Win32, type:   `make setup lcc`
    
    92
    +
    
    93
    +  to use Watcom C++ on OS/2, type    `make setup watcom`
    
    94
    +
    
    95
    +  to use VisualAge C++ on OS/2, type `make setup visualage`
    
    96
    +
    
    97
    +
    
    98
    +  The  `<compiler>` name to  use is  platform-dependent.  The  list of
    
    99
    +  available  compilers for  your  system is  available  in the  file
    
    100
    +  `builds/<system>/detect.mk`.
    
    101
    +
    
    102
    +  If you  are satisfied  by the new  configuration summary,  skip to
    
    103
    +  step 5.
    
    104
    +
    
    105
    +
    
    106
    +  ### 3a. Use clang instead of gcc
    
    107
    +
    
    108
    +  The `clang`  compiler can  use FreeType's setup  for `gcc`;  it is
    
    109
    +  sufficient to set the `CC` variable, for example
    
    110
    +
    
    111
    +    make CC=clang
    
    112
    +
    
    113
    +
    
    114
    +  ### 3b. Compiling with a C++ compiler
    
    115
    +
    
    116
    +  FreeType can be built with a C++ compiler, for example
    
    117
    +
    
    118
    +    make CC="g++"
    
    119
    +
    
    120
    +  If `clang++` should  be used it is necessary to  also override the
    
    121
    +  `ANSIFLAGS` variable:
    
    122
    +
    
    123
    +    make CC="clang++" ANSIFLAGS=""
    
    124
    +
    
    125
    +
    
    126
    +## 4. Configure the build system for an unknown platform/compiler
    
    127
    +
    
    128
    +  The auto-detection/setup  phase of the build system  copies a file
    
    129
    +  to the current directory under the name `config.mk`.
    
    130
    +
    
    131
    +  For    example,    on    OS/2+gcc,    it   would    simply    copy
    
    132
    +  `builds/os2/os2-gcc.mk` to `./config.mk`.
    
    133
    +
    
    134
    +  If for  some reason your  platform isn't correctly  detected, copy
    
    135
    +  manually the configuration sub-makefile to `./config.mk` and go to
    
    136
    +  step 5.
    
    137
    +
    
    138
    +  Note  that  this file  is  a  sub-Makefile  used to  specify  Make
    
    139
    +  variables  for compiler  and linker  invocation during  the build.
    
    140
    +  You can  easily create your own  version from one  of the existing
    
    141
    +  configuration files,  then copy it to the  current directory under
    
    142
    +  the name `./config.mk`.
    
    143
    +
    
    144
    +
    
    145
    +## 5. Build the library
    
    146
    +
    
    147
    +  The auto-detection/setup  phase should have  copied a file  in the
    
    148
    +  current  directory,  called  `./config.mk`.   This  file  contains
    
    149
    +  definitions of various Make  variables used to invoke the compiler
    
    150
    +  and linker during the build.  [It has also generated a file called
    
    151
    +  `ftmodule.h`   in  the  objects   directory  (which   is  normally
    
    152
    +  `<toplevel>/objs/`);  please read  the  file [docs/CUSTOMIZE][CUSTOMIZE] for
    
    153
    +  customization of FreeType.]
    
    154
    +
    
    155
    +  To  launch  the build,  simply  invoke  GNU  Make again:  The  top
    
    156
    +  Makefile will detect the configuration file and run the build with
    
    157
    +  it.  If you have used variables in  step 3, you must use  the same
    
    158
    +  variables here, too.
    
    159
    +
    
    160
    +
    
    161
    +Final note
    
    162
    +
    
    163
    +  The above instructions build a  _statically_ linked library of the
    
    164
    +  font engine in the `objs` directory.   On Windows, you can build a
    
    165
    +  DLL  either  with  MinGW  (within an  MSYS  shell,  following  the
    
    166
    +  instructions in `INSTALL.UNIX`), or you  use one of the Visual C++
    
    167
    +  project files; see  the  subdirectories  of `builds/windows`.  For
    
    168
    +  everything else,  you are on  your own,  and you might  follow the
    
    169
    +  instructions in `INSTALL.ANY` to create your own Makefiles.
    
    170
    +
    
    171
    +```
    
    172
    +Copyright (C) 2003-2023 by
    
    173
    +David Turner, Robert Wilhelm, and Werner Lemberg.
    
    174
    +
    
    175
    +This  file is  part of  the FreeType  project, and  may only  be used,
    
    176
    +modified,  and distributed  under the  terms of  the  FreeType project
    
    177
    +license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
    
    178
    +this file you  indicate that you have read  the license and understand
    
    179
    +and accept it fully.
    
    180
    +```
    
    181
    +
    
    182
    +<!---->
    
    183
    +[INSTALL_UNIX.md]: ./INSTALL_UNIX.md
    
    184
    +[CUSTOMIZE]: ./CUSTOMIZE

  • docs/INSTALL.MACdocs/INSTALL_MAC.md
    1
    +# Compiling FreeType on Mac OS X
    
    2
    +
    
    1 3
     Please follow the instructions in  INSTALL.UNIX to install FreeType on
    
    2 4
     Mac OS X.
    
    3 5
     
    
    4 6
     Currently  FreeType2 functions  based on  some deprecated  Carbon APIs
    
    5
    -return  `FT_Err_Unimplemented_Feature' always,  even  if FreeType2  is
    
    7
    +return  `FT_Err_Unimplemented_Feature` always,  even  if FreeType2  is
    
    6 8
     configured and  built on  the system that  deprecated Carbon  APIs are
    
    7 9
     available.   To  enable  deprecated  FreeType2  functions  as  far  as
    
    8
    -possible, replace `src/base/ftmac.c' by `builds/mac/ftmac.c'.
    
    10
    +possible, replace `src/base/ftmac.` by `builds/mac/ftmac.c`.
    
    9 11
     
    
    10 12
     Starting with  Mac OS X  10.5, gcc  defaults the deployment  target to
    
    11 13
     10.5.  In previous  versions of Mac OS X, this  defaulted to 10.1.  If
    
    12 14
     you want your built binaries to run only on 10.5, this change does not
    
    13 15
     concern you.  If  you want them to  also run on older  versions of Mac
    
    14 16
     OS  X,   then  you   must  either  set   the  MACOSX_DEPLOYMENT_TARGET
    
    15
    -environment  variable  or  pass `-mmacosx-version-min'  to  gcc.   You
    
    17
    +environment  variable  or  pass `-mmacosx-version-min`  to  gcc.   You
    
    16 18
     should specify the oldest  version of Mac OS you want  the code to run
    
    17 19
     on.  For example, if you use Bourne shell:
    
    18 20
     
    
    21
    +```bash
    
    19 22
       export MACOSX_DEPLOYMENT_TARGET=10.2
    
    23
    +```
    
    20 24
     
    
    21 25
     or, if you use C shell:
    
    22 26
     
    
    27
    +```bash
    
    23 28
       setenv MACOSX_DEPLOYMENT_TARGET 10.2
    
    29
    +```
    
    24 30
     
    
    25
    -Alternatively, you could pass `-mmacosx-version-min=10.2' to gcc.
    
    31
    +Alternatively, you could pass `-mmacosx-version-min=10.2` to gcc.
    
    26 32
     
    
    27 33
     Here the number 10.2 is the lowest version that the built binaries can
    
    28 34
     run on.  In the  above cases, the built binaries will run  on Mac OS X
    

  • docs/INSTALL_UNIX.md
    1
    +# Building FreeType on Unix Systems
    
    2
    +
    
    3
    +This also works for  emulations like Cygwin or MSys on Win32:
    
    4
    +
    
    5
    +
    
    6
    +## 1. Ensure that you are using GNU Make
    
    7
    +
    
    8
    +  The FreeType build system  _exclusively_ works with GNU Make.  You
    
    9
    +  will  not be  able to  compile the  library with  the instructions
    
    10
    +  below using any other alternative (including BSD Make).
    
    11
    +
    
    12
    +  Check that you have GNU make by running the command:
    
    13
    +  ```bash
    
    14
    +  make -v
    
    15
    +  ```
    
    16
    +
    
    17
    +  This should dump some text that begins with:
    
    18
    +
    
    19
    +      GNU Make  <version number>
    
    20
    +      Copyright (C) <year> Free Software Foundation Inc.
    
    21
    +
    
    22
    +  Note that version  3.81 or higher is *required* or the  build will
    
    23
    +  fail.
    
    24
    +
    
    25
    +  It is also fine to have GNU Make under another name (e.g. 'gmake')
    
    26
    +  if you use the MAKE variable as described below.
    
    27
    +
    
    28
    +  As  a  special exception,  'makepp'  can  also  be used  to  build
    
    29
    +  FreeType 2.  See the file `docs/MAKEPP` for details.
    
    30
    +
    
    31
    +  For builds  with `cmake` please check file `CMakeLists.txt`;  this
    
    32
    +  is a contributed file not directly supported by the FreeType team.
    
    33
    +
    
    34
    +
    
    35
    +## 2. Regenerate the configure script if needed
    
    36
    +
    
    37
    +  This only applies if you  are building a git snapshot or checkout,
    
    38
    +  *not* if you grabbed the sources of an official release.
    
    39
    +
    
    40
    +  You  need  to invoke  the  `autogen.sh`  script  in the  top-level
    
    41
    +  directory  in order  to  create the  `configure`  script for  your
    
    42
    +  platform.  Normally, this simply means typing:
    
    43
    +  ```bash
    
    44
    +  sh autogen.sh
    
    45
    +  ```
    
    46
    +
    
    47
    +  In case of problems, you may  need to install or upgrade Automake,
    
    48
    +  Autoconf or Libtool.  See  [INSTALL.md] for more information.
    
    49
    +
    
    50
    +
    
    51
    +## 3. Build and install the library
    
    52
    +
    
    53
    +  Say
    
    54
    +  ```bash
    
    55
    +  ./configure --help
    
    56
    +  ```
    
    57
    +
    
    58
    +  to see  the list of  possible configuration options  and important
    
    59
    +  environment  variables.  The `./configure` script  will detect  some
    
    60
    +  prerequisite  system  libraries  (libpng, brotli, etc.)  if  their
    
    61
    +  headers are available at the default locations.
    
    62
    +
    
    63
    +  The following  should work  on all Unix  systems where  the `make`
    
    64
    +  command invokes GNU Make:
    
    65
    +  ```bash
    
    66
    +  ./configure [options]
    
    67
    +  make
    
    68
    +  make install           (as root)
    
    69
    +  ```
    
    70
    +
    
    71
    +  The default installation path  is `/usr/local`.  It can be changed
    
    72
    +  with the `--prefix=<path>` option.  Example:
    
    73
    +  ```bash
    
    74
    +  ./configure --prefix=/usr
    
    75
    +  ```
    
    76
    +
    
    77
    +  When using  a different command  to invoke GNU Make,  use the MAKE
    
    78
    +  variable.  For example,  if `gmake` is the command  to use on your
    
    79
    +  system, do something like:
    
    80
    +  ```bash
    
    81
    +  MAKE=gmake ./configure [options]
    
    82
    +  gmake
    
    83
    +  gmake install            (as root)
    
    84
    +  ```
    
    85
    +
    
    86
    +  If  this still doesn't  work, there  must be  a problem  with your
    
    87
    +  system (e.g., you are using a very old version of GNU Make).
    
    88
    +
    
    89
    +  For library identification, FreeType's `configure` script uses the
    
    90
    +  `pkg-config` interface: Assuming it  needs library `foo`, it calls
    
    91
    +  the  `pkg-config` program  to find  information on  library `foo`,
    
    92
    +  which in turn  looks for a `foo.pc` file installed  at the system.
    
    93
    +  Some platforms,  however, don't come with  `pkg-support`; you then
    
    94
    +  have  to  use environment  variables  as  described by  `configure
    
    95
    +  --help`.  Example:
    
    96
    +  ```bash
    
    97
    +  LIBPNG_CFLAGS="-I/path/to/libpng/include/directory" \
    
    98
    +  LIBPNG_LIBS="-L/path/to/libpng/lib/directory" \
    
    99
    +  configure ...
    
    100
    +  ```
    
    101
    +  It  is possible  to  compile FreeType  in  a different  directory.
    
    102
    +  Assuming the FreeType source  files in directory `/src/freetype` a
    
    103
    +  compilation in directory `foo` works as follows:
    
    104
    +  ```bash
    
    105
    +  cd foo
    
    106
    +  /src/freetype/configure [options]
    
    107
    +  make
    
    108
    +  make install
    
    109
    +  ```
    
    110
    +
    
    111
    +
    
    112
    +  ### 3.1 Interdependency with HarfBuzz
    
    113
    +
    
    114
    +  Note that there  is a chicken-and-egg problem  currently since the
    
    115
    +  HarfBuzz library  (used by the  auto-hinter to improve  support of
    
    116
    +  OpenType  fonts)  depends on  FreeType,  which  can be  solved  as
    
    117
    +  follows in case HarfBuzz is not yet installed on your system.
    
    118
    +
    
    119
    +  1. Call    FreeType's     `configure`    script     with    option
    
    120
    +      `--without-harfbuzz`, then compile and install FreeType.
    
    121
    +
    
    122
    +  2. Compile and install HarfBuzz.
    
    123
    +
    
    124
    +  3. Call    FreeType's    `configure`   script    without    option
    
    125
    +      `--without-harfbuzz` (after  executing `make  distclean`), then
    
    126
    +      compile and install FreeType again.
    
    127
    +
    
    128
    +
    
    129
    +```
    
    130
    +Copyright (C) 2003-2023 by
    
    131
    +David Turner, Robert Wilhelm, and Werner Lemberg.
    
    132
    +
    
    133
    +This  file is  part of  the FreeType  project, and  may only  be used,
    
    134
    +modified,  and distributed  under the  terms of  the  FreeType project
    
    135
    +license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
    
    136
    +this file you  indicate that you have read  the license and understand
    
    137
    +and accept it fully.
    
    138
    +```
    
    139
    +
    
    140
    +<!---->
    
    141
    +[INSTALL.md]: ./INSTALL.md

  • docs/INSTALL.VMSdocs/INSTALL_VMS.md
    1
    -How to build the FreeType library on VMS
    
    2
    -----------------------------------------
    
    1
    +# How to build the FreeType library on VMS
    
    3 2
     
    
    4 3
     It is actually  very straightforward to install  the FreeType library.
    
    5
    -Just execute `vms_make.com  from` the toplevel directory  to build the
    
    4
    +Just execute `vms_make.com`  from the toplevel directory  to build the
    
    6 5
     library.  This procedure currently accepts the following options:
    
    7 6
     
    
    8 7
     * `DEBUG`
    
    ... ... @@ -25,18 +24,21 @@ To rebuild the sources it is necessary to have MMS/MMK installed on
    25 24
     the system.
    
    26 25
     
    
    27 26
     The library is available in the directory
    
    28
    -
    
    27
    +```
    
    29 28
       [.LIB]
    
    29
    +```
    
    30 30
     
    
    31 31
     To compile applications using FreeType  you have to define the logical
    
    32 32
     `FREETYPE` pointing to the directory
    
    33
    -
    
    33
    +```
    
    34 34
       [.INCLUDE.FREETYPE]
    
    35
    +```
    
    35 36
     
    
    36 37
     i.e., if the directory in which  this `INSTALL.VMS` file is located is
    
    37 38
     `$disk:[freetype.docs]`, then define the logical with
    
    38
    -
    
    39
    +```
    
    39 40
       define freetype $disk:[freetype.include.freetype]
    
    41
    +```
    
    40 42
     
    
    41 43
     See  http://nchrem.tnw.tudelft.nl/openvms/software2.html#Freetype  for
    
    42 44
     the packages FreeType depends on.
    
    ... ... @@ -54,8 +56,7 @@ Orginal version of the build procedures was created by
    54 56
     
    
    55 57
       Martin P.J. Zinser <zinser@zinser.no-ip.info>
    
    56 58
     
    
    57
    -------------------------------------------------------------------------
    
    58
    -
    
    59
    +```
    
    59 60
     Copyright (C) 2000-2023 by
    
    60 61
     David Turner, Robert Wilhelm, and Werner Lemberg.
    
    61 62
     
    
    ... ... @@ -64,6 +65,4 @@ modified, and distributed under the terms of the FreeType project
    64 65
     license, LICENSE.TXT.   By continuing to use, modify, or distribute this
    
    65 66
     file you  indicate that  you have  read the  license and understand  and
    
    66 67
     accept it fully.
    
    67
    -
    
    68
    -
    
    69
    ---- end of INSTALL.VMS ---
    68
    +```

  • docs/MODIFYING.md
    1
    +# Modifying FreeType
    
    2
    +
    
    3
    +FreeType follows a modular architecture, i.e. all the features are
    
    4
    +implemented as separate modules. There are separate modules for 
    
    5
    +rasterizers, font parsers, hinting etc. located under the `src/` directory.
    
    6
    +
    
    7
    +(See https://freetype.org/freetype2/docs/design/design-5.html)
    
    8
    +
    
    9
    +To add new features you have to either modify the existing modules or
    
    10
    +add a new module to FreeType.
    
    11
    +
    
    12
    +## Adding a new module to FreeType
    
    13
    +
    
    14
    +Suppose we want to add a new module "example" to FreeType:
    
    15
    +
    
    16
    +1. Create a directory under `src/` having the same name as the module.
    
    17
    +   i.e. `src/example/`
    
    18
    +
    
    19
    +2. Add source files under src/example having `#define FT_MAKE_OPTION_SINGLE_OBJECT`
    
    20
    +   which includes the other files to create the module.
    
    21
    +
    
    22
    +   (See `src/sdf/sdf.c` for reference)
    
    23
    +
    
    24
    +3. Add the module to `include/freetype/config/ftmodule.h` according to whether
    
    25
    +   it is a renderer, font driver or another module like:
    
    26
    +
    
    27
    +    ```C
    
    28
    +    FT_USE_MODULE( FT_Renderer_Class, ft_example_renderer_class )
    
    29
    +    ```
    
    30
    +
    
    31
    +4. Add the module to `modules.cfg` in the toplevel directory:
    
    32
    +    ```
    
    33
    +    RASTER_MODULES += example
    
    34
    +    ```
    
    35
    +
    
    36
    +5. Under `src/example` add `module.mk` and `rules.mk` files to enable compilation
    
    37
    +   with `make`. (See `src/smooth/rules.mk` for reference).
    
    38
    +
    
    39
    +6. Now you can simply compile by using `make` in the toplevel directory and the module
    
    40
    +   should compile.
    
    41
    +
    
    42
    +   You can check out pre-existing modules for reference under `src/`

  • docs/Raster_Algorithm.md
    1
    +TODO: add details on how the freetype smooth anti-aliasing rasterizer works


  • reply via email to

    [Prev in Thread] Current Thread [Next in Thread]