Compare commits
2 Commits
master
...
internal-z
Author | SHA1 | Date |
---|---|---|
Moazin Khatti | 3081146633 | |
Moazin Khatti | 545869da73 |
|
@ -1,16 +0,0 @@
|
||||||
BasedOnStyle: Chromium
|
|
||||||
AlignAfterOpenBracket: Align
|
|
||||||
AlignConsecutiveAssignments: true
|
|
||||||
AlignConsecutiveDeclarations: true
|
|
||||||
AlignConsecutiveMacros: true
|
|
||||||
AlignEscapedNewlines: true
|
|
||||||
# AlignOperands: Align
|
|
||||||
AlignTrailingComments: true
|
|
||||||
AlwaysBreakAfterReturnType: AllDefinitions
|
|
||||||
BreakBeforeBraces: Allman
|
|
||||||
ColumnLimit: 80
|
|
||||||
DerivePointerAlignment: false
|
|
||||||
IndentCaseLabels: false
|
|
||||||
PointerAlignment: Left
|
|
||||||
SpaceBeforeParens: ControlStatements
|
|
||||||
SpacesInParentheses: true
|
|
|
@ -1,7 +1,3 @@
|
||||||
/build/
|
config.mk
|
||||||
/config.mk
|
objs/vc2010/
|
||||||
include/dlg/
|
build
|
||||||
src/dlg/dlg.c
|
|
||||||
subprojects/*
|
|
||||||
!subprojects/*.wrap
|
|
||||||
/tests/data/*
|
|
||||||
|
|
230
.gitlab-ci.yml
230
.gitlab-ci.yml
|
@ -1,230 +0,0 @@
|
||||||
# CI setup for FreeType.
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
|
|
||||||
# FIXME: Use --werror once warnings are fixed.
|
|
||||||
variables:
|
|
||||||
MESON_ARGS: --fatal-meson-warnings --default-library=both
|
|
||||||
MESON_ARGS_WINDOWS: ${MESON_ARGS} --force-fallback-for=zlib
|
|
||||||
|
|
||||||
.build windows common:
|
|
||||||
# See
|
|
||||||
# https://gitlab.freedesktop.org/gstreamer/gst-ci/container_registry/213
|
|
||||||
image: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/windows:2021-09-09.0-master'
|
|
||||||
stage: 'build'
|
|
||||||
tags:
|
|
||||||
- 'docker'
|
|
||||||
- 'windows'
|
|
||||||
- '1809'
|
|
||||||
- 'gstreamer-windows'
|
|
||||||
|
|
||||||
.build linux common:
|
|
||||||
# See
|
|
||||||
# https://gitlab.freedesktop.org/freetype/docker-images/container_registry/20896
|
|
||||||
image: 'registry.freedesktop.org/freetype/docker-images/debian:latest'
|
|
||||||
stage: 'build'
|
|
||||||
|
|
||||||
.build macos common:
|
|
||||||
stage: 'build'
|
|
||||||
tags:
|
|
||||||
- 'gst-macos-11.1'
|
|
||||||
|
|
||||||
.build windows meson:
|
|
||||||
extends: '.build windows common'
|
|
||||||
variables:
|
|
||||||
# Make sure any failure in PowerShell scripts is fatal.
|
|
||||||
ErrorActionPreference: 'Stop'
|
|
||||||
WarningPreference: 'Stop'
|
|
||||||
# Uncomment the following key if you need to pass custom args, as well
|
|
||||||
# with the `$env:MESON_ARGS` line in the `script:` blocks.
|
|
||||||
# MESON_ARGS: >-
|
|
||||||
# -Dfoo=enabled
|
|
||||||
# -Dbar=disabled
|
|
||||||
before_script:
|
|
||||||
# Update RootCAs in order to access to some sites.
|
|
||||||
- certutil -generateSSTFromWU "C:\roots.sst"
|
|
||||||
- Import-Certificate -CertStoreLocation "Cert:\LocalMachine\Root" "C:\roots.sst"
|
|
||||||
# Make sure meson is up to date so we don't need to rebuild the image
|
|
||||||
# with each release.
|
|
||||||
- pip3 install meson==0.59.1
|
|
||||||
- pip3 install --upgrade certifi
|
|
||||||
- pip3 install -U ninja
|
|
||||||
|
|
||||||
# Generate a UWP cross-file in case it's used
|
|
||||||
- $PSDefaultParameterValues['Out-File:Encoding'] = 'ASCII'
|
|
||||||
- echo "[binaries]" > uwp-crossfile.meson
|
|
||||||
- echo "c = 'cl'" >> uwp-crossfile.meson
|
|
||||||
- echo "strip = ['true']" >> uwp-crossfile.meson
|
|
||||||
- echo "[built-in options]" >> uwp-crossfile.meson
|
|
||||||
- echo "c_args = ['-DWINAPI_FAMILY=WINAPI_FAMILY_APP', '-DUNICODE', '-D_WIN32_WINNT=0x0A00', '-we4013']" >> uwp-crossfile.meson
|
|
||||||
- echo "c_winlibs = ['windowsapp.lib']" >> uwp-crossfile.meson
|
|
||||||
script:
|
|
||||||
# For some reason, options are separated by newlines instead of spaces,
|
|
||||||
# so we have to replace them first.
|
|
||||||
#
|
|
||||||
# - $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ")
|
|
||||||
#
|
|
||||||
# Gitlab executes PowerShell in docker, but `VsDevCmd.bat` is a batch
|
|
||||||
# script. Environment variables substitutions is done by PowerShell
|
|
||||||
# before calling `cmd.exe`, that's why we use `$env:FOO` instead of
|
|
||||||
# `%FOO%`.
|
|
||||||
- cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=$env:ARCH $env:VS_UWP &&
|
|
||||||
meson setup build $env:MESON_ARGS_WINDOWS $env:MESON_ARGS_UWP &&
|
|
||||||
meson compile --verbose -C build
|
|
||||||
$env:MESON_WINDOWS_TESTS"
|
|
||||||
|
|
||||||
|
|
||||||
# Format of job names:
|
|
||||||
# <OS> <Build-Tool> <Build-Params> <Architecture>
|
|
||||||
|
|
||||||
|
|
||||||
# Windows jobs.
|
|
||||||
|
|
||||||
windows meson vs2017 amd64:
|
|
||||||
extends: '.build windows meson'
|
|
||||||
variables:
|
|
||||||
ARCH: 'amd64'
|
|
||||||
MESON_WINDOWS_TESTS: '&& meson test -C build && meson test -C build --benchmark'
|
|
||||||
|
|
||||||
windows meson vs2017 x86:
|
|
||||||
extends: '.build windows meson'
|
|
||||||
variables:
|
|
||||||
ARCH: 'x86'
|
|
||||||
MESON_WINDOWS_TESTS: '&& meson test -C build && meson test -C build --benchmark'
|
|
||||||
|
|
||||||
windows meson vs2017 amd64 uwp:
|
|
||||||
extends: '.build windows meson'
|
|
||||||
variables:
|
|
||||||
ARCH: 'amd64'
|
|
||||||
VS_UWP: '-app_platform=UWP'
|
|
||||||
MESON_ARGS_UWP: '--cross-file uwp-crossfile.meson -Dc_winlibs="windowsapp.lib"'
|
|
||||||
|
|
||||||
# Linux Jobs.
|
|
||||||
#
|
|
||||||
# Jobs with "libs" in the name force-enable libraries.
|
|
||||||
# They are disabled for the remaining jobs.
|
|
||||||
|
|
||||||
linux autotools:
|
|
||||||
extends: '.build linux common'
|
|
||||||
script: |
|
|
||||||
./autogen.sh
|
|
||||||
./configure --with-brotli=no \
|
|
||||||
--with-bzip2=no \
|
|
||||||
--with-harfbuzz=no \
|
|
||||||
--with-png=no \
|
|
||||||
--with-zlib=no \
|
|
||||||
CC=gcc
|
|
||||||
|
|
||||||
make -j$(nproc) && make install
|
|
||||||
|
|
||||||
linux autotools libs:
|
|
||||||
extends: '.build linux common'
|
|
||||||
script: |
|
|
||||||
./autogen.sh
|
|
||||||
./configure --with-brotli=yes \
|
|
||||||
--with-bzip2=yes \
|
|
||||||
--with-harfbuzz=yes \
|
|
||||||
--with-png=yes \
|
|
||||||
--with-zlib=yes \
|
|
||||||
CC=gcc
|
|
||||||
|
|
||||||
make -j$(nproc) && make install
|
|
||||||
|
|
||||||
linux autotools libs clang:
|
|
||||||
extends: '.build linux common'
|
|
||||||
script: |
|
|
||||||
./autogen.sh
|
|
||||||
./configure --with-brotli=yes \
|
|
||||||
--with-bzip2=yes \
|
|
||||||
--with-harfbuzz=yes \
|
|
||||||
--with-png=yes \
|
|
||||||
--with-zlib=yes \
|
|
||||||
CC=clang
|
|
||||||
|
|
||||||
make -j$(nproc) && make install
|
|
||||||
|
|
||||||
linux meson:
|
|
||||||
extends: '.build linux common'
|
|
||||||
script: |
|
|
||||||
meson setup build ${MESON_ARGS} \
|
|
||||||
-Dbrotli=disabled \
|
|
||||||
-Dbzip2=disabled \
|
|
||||||
-Dharfbuzz=disabled \
|
|
||||||
-Dpng=disabled \
|
|
||||||
-Dzlib=disabled
|
|
||||||
|
|
||||||
meson compile --verbose -C build
|
|
||||||
meson install -C build
|
|
||||||
|
|
||||||
linux meson libs:
|
|
||||||
extends: '.build linux common'
|
|
||||||
script: |
|
|
||||||
meson setup build ${MESON_ARGS} \
|
|
||||||
-Dbrotli=enabled \
|
|
||||||
-Dbzip2=enabled \
|
|
||||||
-Dharfbuzz=disabled \
|
|
||||||
-Dpng=disabled \
|
|
||||||
-Dzlib=disabled
|
|
||||||
|
|
||||||
meson compile --verbose -C build
|
|
||||||
meson install -C build
|
|
||||||
|
|
||||||
linux cmake:
|
|
||||||
extends: '.build linux common'
|
|
||||||
script: |
|
|
||||||
cmake -B build -D FT_DISABLE_BROTLI=TRUE \
|
|
||||||
-D FT_DISABLE_BZIP2=TRUE \
|
|
||||||
-D FT_DISABLE_HARFBUZZ=TRUE \
|
|
||||||
-D FT_DISABLE_PNG=TRUE \
|
|
||||||
-D FT_DISABLE_ZLIB=TRUE
|
|
||||||
|
|
||||||
cmake --build build --target install
|
|
||||||
|
|
||||||
linux cmake libs:
|
|
||||||
extends: '.build linux common'
|
|
||||||
script: |
|
|
||||||
cmake -B build -D FT_REQUIRE_BROTLI=TRUE \
|
|
||||||
-D FT_REQUIRE_BZIP2=TRUE \
|
|
||||||
-D FT_REQUIRE_HARFBUZZ=TRUE \
|
|
||||||
-D FT_REQUIRE_PNG=TRUE \
|
|
||||||
-D FT_REQUIRE_ZLIB=TRUE
|
|
||||||
|
|
||||||
cmake --build build --target install
|
|
||||||
|
|
||||||
|
|
||||||
# MacOS jobs.
|
|
||||||
|
|
||||||
macos autotools:
|
|
||||||
extends: '.build macos common'
|
|
||||||
before_script:
|
|
||||||
- '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"'
|
|
||||||
script:
|
|
||||||
- brew install autoconf automake libtool
|
|
||||||
- ./autogen.sh
|
|
||||||
- ./configure
|
|
||||||
- 'make -j$(sysctl -n hw.logicalcpu)'
|
|
||||||
- make install
|
|
||||||
|
|
||||||
macos autotools clang:
|
|
||||||
extends: '.build macos common'
|
|
||||||
before_script:
|
|
||||||
- '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"'
|
|
||||||
script:
|
|
||||||
- brew install autoconf automake libtool
|
|
||||||
- ./autogen.sh
|
|
||||||
- './configure CC=clang'
|
|
||||||
- 'make -j$(sysctl -n hw.logicalcpu)'
|
|
||||||
- make install
|
|
||||||
|
|
||||||
macos meson:
|
|
||||||
extends: '.build macos common'
|
|
||||||
script:
|
|
||||||
- pip3 install --upgrade pip
|
|
||||||
- pip3 install -U meson
|
|
||||||
- pip3 install --upgrade certifi
|
|
||||||
- pip3 install -U ninja
|
|
||||||
|
|
||||||
- meson setup build ${MESON_ARGS}
|
|
||||||
- meson compile --verbose -C build
|
|
||||||
- sudo meson install -C build
|
|
|
@ -1,3 +0,0 @@
|
||||||
[submodule "dlg"]
|
|
||||||
path = subprojects/dlg
|
|
||||||
url = https://github.com/nyorain/dlg.git
|
|
25
.mailmap
25
.mailmap
|
@ -1,24 +1,9 @@
|
||||||
Behdad Esfahbod (بهداد اسفهبد) <behdad@behdad.org> <behdad.esfahbod@gmail.com>
|
|
||||||
Behdad Esfahbod (بهداد اسفهبد) <behdad@behdad.org> <behdad@google.com>
|
|
||||||
Behdad Esfahbod (بهداد اسفهبد) <behdad@behdad.org>
|
|
||||||
Alexander Borsuk <me@alex.bio> <alexander.borsuk@qnective.com>
|
|
||||||
Ewald Hew (Hew Yih Shiuan 丘毅宣) <ewaldhew@gmail.com>
|
|
||||||
Moazin Khatti (موؤذن کھٹی) <moazinkhatri@gmail.com>
|
|
||||||
Priyesh Kumar (प्रियेश कुमार) <priyeshkkumar@gmail.com>
|
|
||||||
Alexei Podtelezhnikov (Алексей Подтележников) <apodtele@gmail.com>
|
Alexei Podtelezhnikov (Алексей Подтележников) <apodtele@gmail.com>
|
||||||
Nikhil Ramakrishnan (निखिल रामकृष्णन) <ramakrishnan.nikhil@gmail.com>
|
Behdad Esfahbod <behdad@behdad.org> <behdad.esfahbod@gmail.com>
|
||||||
Dominik Röttsches <drott@chromium.org> <drott@google.com>
|
|
||||||
Kostya Serebryany <kcc@google.com> <konstantin.s.serebryany@gmail.com>
|
|
||||||
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> <sssa@flavor1.ipc.hiroshima-u.ac.jp>
|
|
||||||
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> sssa <sssa@IPA2004-mps.local>
|
|
||||||
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> sssa <sssa@sssas-powerbook-g4-12.local>
|
|
||||||
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
|
|
||||||
Bram Tassyns <bramt@enfocus.be> bram tassyns <BramT@enfocus.be>
|
Bram Tassyns <bramt@enfocus.be> bram tassyns <BramT@enfocus.be>
|
||||||
Bram Tassyns <bramt@enfocus.be> <BramT@enfocus.com>
|
Bram Tassyns <bramt@enfocus.be> <BramT@enfocus.com>
|
||||||
David Turner <david@freetype.org> <david.turner.dev@gmail.com>
|
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> <sssa@flavor1.ipc.hiroshima-u.ac.jp>
|
||||||
David Turner <david@freetype.org> <digit@google.com>
|
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> sssa <sssa@IPA2004-mps.local>
|
||||||
Anuj Verma (अनुज वर्मा) <anujv@iitbhilai.ac.in>
|
Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
|
||||||
Ben Wagner <bungeman@gmail.com> Bungeman <bungeman@gmail.com>
|
Ben Wagner <bungeman@gmail.com> Bungeman <bungeman@gmail.com>
|
||||||
Ben Wagner <bungeman@gmail.com> <bungeman@google.com>
|
Ewald Hew (Hew Yih Shiuan 丘毅宣) <ewaldhew@gmail.com>
|
||||||
Ben Wagner <bungeman@gmail.com> <bungeman@chromium.org>
|
|
||||||
Nikolaus Waxweiler <madigens@gmail.com> <nikolaus.waxweiler@daltonmaag.com>
|
|
||||||
|
|
349
CMakeLists.txt
349
CMakeLists.txt
|
@ -1,6 +1,6 @@
|
||||||
# CMakeLists.txt
|
# CMakeLists.txt
|
||||||
#
|
#
|
||||||
# Copyright (C) 2013-2022 by
|
# Copyright (C) 2013-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# Written originally by John Cary <cary@txcorp.com>
|
# Written originally by John Cary <cary@txcorp.com>
|
||||||
|
@ -12,20 +12,16 @@
|
||||||
# fully.
|
# fully.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# The following will (1) create a build directory, and (2) change into it and
|
# The following will 1. create a build directory and 2. change into it and
|
||||||
# call cmake to configure the build with default parameters as a static
|
# call cmake to configure the build with default parameters as a static
|
||||||
# library. See
|
# library.
|
||||||
#
|
|
||||||
# https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
|
|
||||||
#
|
|
||||||
# for information about debug or release builds, for example
|
|
||||||
#
|
|
||||||
# cmake -B build -D CMAKE_BUILD_TYPE=Release
|
|
||||||
#
|
#
|
||||||
|
# cmake -E make_directory build
|
||||||
|
# cmake -E chdir build cmake ..
|
||||||
#
|
#
|
||||||
# For a dynamic library, use
|
# For a dynamic library, use
|
||||||
#
|
#
|
||||||
# cmake -B build -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release
|
# cmake -E chdir build cmake -D BUILD_SHARED_LIBS:BOOL=true ..
|
||||||
#
|
#
|
||||||
# For a framework on OS X, use
|
# For a framework on OS X, use
|
||||||
#
|
#
|
||||||
|
@ -43,8 +39,7 @@
|
||||||
#
|
#
|
||||||
# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR64 ..
|
# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR64 ..
|
||||||
#
|
#
|
||||||
#
|
# Finally, build the project with:
|
||||||
# Finally, build the project with
|
|
||||||
#
|
#
|
||||||
# cmake --build build
|
# cmake --build build
|
||||||
#
|
#
|
||||||
|
@ -61,67 +56,44 @@
|
||||||
#
|
#
|
||||||
# Some notes.
|
# Some notes.
|
||||||
#
|
#
|
||||||
# - `cmake' creates configuration files in
|
# . `cmake' creates configuration files in
|
||||||
#
|
#
|
||||||
# <build-directory>/include/freetype/config
|
# <build-directory>/include/freetype/config
|
||||||
#
|
#
|
||||||
# which should be further modified if necessary.
|
# which should be further modified if necessary.
|
||||||
#
|
#
|
||||||
# - You can use `cmake' directly on a freshly cloned FreeType git
|
# . You can use `cmake' directly on a freshly cloned FreeType git
|
||||||
# repository.
|
# repository.
|
||||||
#
|
#
|
||||||
# - `CMakeLists.txt' is provided as-is since it is normally not used by the
|
# . `CMakeLists.txt' is provided as-is since it is normally not used by the
|
||||||
# developer team.
|
# developer team.
|
||||||
#
|
#
|
||||||
# - Set the `FT_REQUIRE_ZLIB', `FT_REQUIRE_BZIP2', `FT_REQUIRE_PNG',
|
# . Set the `FT_WITH_ZLIB', `FT_WITH_BZIP2', `FT_WITH_PNG', and
|
||||||
# `FT_REQUIRE_HARFBUZZ', and `FT_REQUIRE_BROTLI' CMake variables to `ON'
|
# `FT_WITH_HARFBUZZ' CMake variables to `ON' to force using a dependency.
|
||||||
# or `TRUE' to force using a dependency. Leave a variable undefined
|
# Leave a variable undefined (which is the default) to use the dependency
|
||||||
# (which is the default) to use the dependency only if it is available.
|
# only if it is available. Set `CMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE' to
|
||||||
# Example:
|
# disable a dependency completely (CMake package name, so `BZip2' instead of
|
||||||
|
# `BZIP2'). Example:
|
||||||
#
|
#
|
||||||
# cmake -B build -D FT_REQUIRE_ZLIB=TRUE \
|
# cmake -DFT_WITH_ZLIB=ON -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE [...]
|
||||||
# -D FT_REQUIRE_BZIP2=TRUE \
|
|
||||||
# -D FT_REQUIRE_PNG=TRUE \
|
|
||||||
# -D FT_REQUIRE_HARFBUZZ=TRUE \
|
|
||||||
# -D FT_REQUIRE_BROTLI=TRUE [...]
|
|
||||||
#
|
#
|
||||||
# - Set `FT_DISABLE_XXX=TRUE' to disable a dependency completely (where
|
# . Installation of FreeType can be controlled with the CMake variables
|
||||||
# `XXX' is a CMake package name like `BZip2'). Example for disabling all
|
|
||||||
# dependencies:
|
|
||||||
#
|
|
||||||
# cmake -B build -D FT_DISABLE_ZLIB=TRUE \
|
|
||||||
# -D FT_DISABLE_BZIP2=TRUE \
|
|
||||||
# -D FT_DISABLE_PNG=TRUE \
|
|
||||||
# -D FT_DISABLE_HARFBUZZ=TRUE \
|
|
||||||
# -D FT_DISABLE_BROTLI=TRUE [...]
|
|
||||||
#
|
|
||||||
# - NOTE: If a package is set as DISABLED, it cannot be set as REQUIRED
|
|
||||||
# without unsetting the DISABLED value first. For example, if
|
|
||||||
# `FT_DISABLE_HARFBUZZ=TRUE' has been set (Cache is present), you need to
|
|
||||||
# call `FT_DISABLE_HARFBUZZ=FALSE' before calling
|
|
||||||
# `FT_REQUIRE_HARFBUZZ=TRUE'.
|
|
||||||
#
|
|
||||||
# - Installation of FreeType can be controlled with the CMake variables
|
|
||||||
# `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL'
|
# `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL'
|
||||||
# (this is compatible with the same CMake variables in zlib's CMake
|
# (this is compatible with the same CMake variables in zlib's CMake
|
||||||
# support).
|
# support).
|
||||||
|
|
||||||
# To minimize the number of cmake_policy() workarounds,
|
# FreeType explicitly marks the API to be exported and relies on the compiler
|
||||||
# CMake >= 3 is requested.
|
# to hide all other symbols. CMake supports a C_VISBILITY_PRESET property
|
||||||
cmake_minimum_required(VERSION 3.0)
|
# starting with 2.8.12.
|
||||||
|
cmake_minimum_required(VERSION 2.8.12)
|
||||||
|
|
||||||
if (NOT CMAKE_VERSION VERSION_LESS 3.3)
|
if (NOT CMAKE_VERSION VERSION_LESS 3.3)
|
||||||
# Allow symbol visibility settings also on static libraries. CMake < 3.3
|
# Allow symbol visibility settings also on static libraries. CMake < 3.3
|
||||||
# only sets the property on a shared library build.
|
# only sets the propery on a shared library build.
|
||||||
cmake_policy(SET CMP0063 NEW)
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
|
||||||
# Support new IN_LIST if() operator.
|
|
||||||
cmake_policy(SET CMP0057 NEW)
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
include(CheckIncludeFile)
|
include(CheckIncludeFile)
|
||||||
include(CMakeDependentOption)
|
|
||||||
include(FindPkgConfig)
|
|
||||||
|
|
||||||
# CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which
|
# CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which
|
||||||
# configures the base build environment and references the toolchain file
|
# configures the base build environment and references the toolchain file
|
||||||
|
@ -162,59 +134,27 @@ endif ()
|
||||||
project(freetype C)
|
project(freetype C)
|
||||||
|
|
||||||
set(VERSION_MAJOR "2")
|
set(VERSION_MAJOR "2")
|
||||||
set(VERSION_MINOR "12")
|
set(VERSION_MINOR "10")
|
||||||
set(VERSION_PATCH "1")
|
set(VERSION_PATCH "1")
|
||||||
|
|
||||||
# Generate LIBRARY_VERSION and LIBRARY_SOVERSION.
|
# SOVERSION scheme: CURRENT.AGE.REVISION
|
||||||
set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'")
|
# If there was an incompatible interface change:
|
||||||
file(STRINGS "${PROJECT_SOURCE_DIR}/builds/unix/configure.raw"
|
# Increment CURRENT. Set AGE and REVISION to 0
|
||||||
VERSION_INFO
|
# If there was a compatible interface change:
|
||||||
REGEX ${LIBTOOL_REGEX})
|
# Increment AGE. Set REVISION to 0
|
||||||
string(REGEX REPLACE
|
# If the source code was changed, but there were no interface changes:
|
||||||
${LIBTOOL_REGEX} "\\1"
|
# Increment REVISION.
|
||||||
LIBTOOL_CURRENT "${VERSION_INFO}")
|
set(LIBRARY_VERSION "6.16.0")
|
||||||
string(REGEX REPLACE
|
set(LIBRARY_SOVERSION "6")
|
||||||
${LIBTOOL_REGEX} "\\2"
|
|
||||||
LIBTOOL_REVISION "${VERSION_INFO}")
|
|
||||||
string(REGEX REPLACE
|
|
||||||
${LIBTOOL_REGEX} "\\3"
|
|
||||||
LIBTOOL_AGE "${VERSION_INFO}")
|
|
||||||
|
|
||||||
# This is what libtool does internally on Unix platforms.
|
# These options mean "require x and complain if not found". They'll get
|
||||||
math(EXPR LIBRARY_SOVERSION "${LIBTOOL_CURRENT} - ${LIBTOOL_AGE}")
|
# optionally found anyway. Use `-DCMAKE_DISABLE_FIND_PACKAGE_x=TRUE` to disable
|
||||||
set(LIBRARY_VERSION "${LIBRARY_SOVERSION}.${LIBTOOL_AGE}.${LIBTOOL_REVISION}")
|
# searching for a packge entirely (x is the CMake package name, so "BZip2"
|
||||||
|
# instead of "BZIP2").
|
||||||
# External dependency library detection is automatic. See the notes at the
|
option(FT_WITH_ZLIB "Use system zlib instead of internal library." OFF)
|
||||||
# top of this file, for how to force or disable dependencies completely.
|
option(FT_WITH_BZIP2 "Support bzip2 compressed fonts." OFF)
|
||||||
option(FT_DISABLE_ZLIB
|
option(FT_WITH_PNG "Support PNG compressed OpenType embedded bitmaps." OFF)
|
||||||
"Disable use of system zlib and use internal zlib library instead." OFF)
|
option(FT_WITH_HARFBUZZ "Improve auto-hinting of OpenType fonts." OFF)
|
||||||
cmake_dependent_option(FT_REQUIRE_ZLIB
|
|
||||||
"Require system zlib instead of internal zlib library." OFF
|
|
||||||
"NOT FT_DISABLE_ZLIB" OFF)
|
|
||||||
|
|
||||||
option(FT_DISABLE_BZIP2
|
|
||||||
"Disable support of bzip2 compressed fonts." OFF)
|
|
||||||
cmake_dependent_option(FT_REQUIRE_BZIP2
|
|
||||||
"Require support of bzip2 compressed fonts." OFF
|
|
||||||
"NOT FT_DISABLE_BZIP2" OFF)
|
|
||||||
|
|
||||||
option(FT_DISABLE_PNG
|
|
||||||
"Disable support of PNG compressed OpenType embedded bitmaps." OFF)
|
|
||||||
cmake_dependent_option(FT_REQUIRE_PNG
|
|
||||||
"Require support of PNG compressed OpenType embedded bitmaps." OFF
|
|
||||||
"NOT FT_DISABLE_PNG" OFF)
|
|
||||||
|
|
||||||
option(FT_DISABLE_HARFBUZZ
|
|
||||||
"Disable HarfBuzz (used for improving auto-hinting of OpenType fonts)." OFF)
|
|
||||||
cmake_dependent_option(FT_REQUIRE_HARFBUZZ
|
|
||||||
"Require HarfBuzz for improving auto-hinting of OpenType fonts." OFF
|
|
||||||
"NOT FT_DISABLE_HARFBUZZ" OFF)
|
|
||||||
|
|
||||||
option(FT_DISABLE_BROTLI
|
|
||||||
"Disable support of compressed WOFF2 fonts." OFF)
|
|
||||||
cmake_dependent_option(FT_REQUIRE_BROTLI
|
|
||||||
"Require support of compressed WOFF2 fonts." OFF
|
|
||||||
"NOT FT_DISABLE_BROTLI" OFF)
|
|
||||||
|
|
||||||
|
|
||||||
# Disallow in-source builds
|
# Disallow in-source builds
|
||||||
|
@ -239,64 +179,43 @@ if (BUILD_FRAMEWORK)
|
||||||
message(FATAL_ERROR
|
message(FATAL_ERROR
|
||||||
"You should use Xcode generator with BUILD_FRAMEWORK enabled")
|
"You should use Xcode generator with BUILD_FRAMEWORK enabled")
|
||||||
endif ()
|
endif ()
|
||||||
set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)")
|
set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)")
|
||||||
set(BUILD_SHARED_LIBS ON)
|
set(BUILD_SHARED_LIBS ON)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
# Find dependencies
|
# Find dependencies
|
||||||
if (NOT FT_DISABLE_HARFBUZZ)
|
if (FT_WITH_HARFBUZZ)
|
||||||
set(HARFBUZZ_MIN_VERSION "2.0.0")
|
find_package(HarfBuzz 1.3.0 REQUIRED)
|
||||||
if (FT_REQUIRE_HARFBUZZ)
|
else ()
|
||||||
find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION} REQUIRED)
|
find_package(HarfBuzz 1.3.0)
|
||||||
else ()
|
|
||||||
find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION})
|
|
||||||
endif ()
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NOT FT_DISABLE_PNG)
|
if (FT_WITH_PNG)
|
||||||
if (FT_REQUIRE_PNG)
|
find_package(PNG REQUIRED)
|
||||||
find_package(PNG REQUIRED)
|
else ()
|
||||||
else ()
|
find_package(PNG)
|
||||||
find_package(PNG)
|
|
||||||
endif ()
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NOT FT_DISABLE_ZLIB)
|
if (FT_WITH_ZLIB)
|
||||||
if (FT_REQUIRE_ZLIB)
|
find_package(ZLIB REQUIRED)
|
||||||
find_package(ZLIB REQUIRED)
|
else ()
|
||||||
else ()
|
find_package(ZLIB)
|
||||||
find_package(ZLIB)
|
|
||||||
endif ()
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NOT FT_DISABLE_BZIP2)
|
if (FT_WITH_BZIP2)
|
||||||
# Genuine BZip2 does not provide bzip2.pc, but some platforms have it.
|
find_package(BZip2 REQUIRED)
|
||||||
# For better dependency in freetype2.pc, bzip2.pc is searched
|
else ()
|
||||||
# regardless of the availability of libbz2. If bzip2.pc is found,
|
find_package(BZip2)
|
||||||
# Requires.private is used instead of Libs.private.
|
|
||||||
if (FT_REQUIRE_BZIP2)
|
|
||||||
find_package(BZip2 REQUIRED)
|
|
||||||
else ()
|
|
||||||
find_package(BZip2)
|
|
||||||
endif ()
|
|
||||||
pkg_check_modules(PC_BZIP2 bzip2)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (NOT FT_DISABLE_BROTLI)
|
|
||||||
if (FT_REQUIRE_BROTLI)
|
|
||||||
find_package(BrotliDec REQUIRED)
|
|
||||||
else ()
|
|
||||||
find_package(BrotliDec)
|
|
||||||
endif ()
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Create the configuration file
|
# Create the configuration file
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
check_include_file("unistd.h" HAVE_UNISTD_H)
|
check_include_file("unistd.h" HAVE_UNISTD_H)
|
||||||
check_include_file("fcntl.h" HAVE_FCNTL_H)
|
check_include_file("fcntl.h" HAVE_FCNTL_H)
|
||||||
|
check_include_file("stdint.h" HAVE_STDINT_H)
|
||||||
|
|
||||||
file(READ "${PROJECT_SOURCE_DIR}/builds/unix/ftconfig.h.in"
|
file(READ "${PROJECT_SOURCE_DIR}/builds/unix/ftconfig.in"
|
||||||
FTCONFIG_H)
|
FTCONFIG_H)
|
||||||
if (HAVE_UNISTD_H)
|
if (HAVE_UNISTD_H)
|
||||||
string(REGEX REPLACE
|
string(REGEX REPLACE
|
||||||
|
@ -308,6 +227,13 @@ if (UNIX)
|
||||||
"#undef +(HAVE_FCNTL_H)" "#define \\1 1"
|
"#undef +(HAVE_FCNTL_H)" "#define \\1 1"
|
||||||
FTCONFIG_H "${FTCONFIG_H}")
|
FTCONFIG_H "${FTCONFIG_H}")
|
||||||
endif ()
|
endif ()
|
||||||
|
if (HAVE_STDINT_H)
|
||||||
|
string(REGEX REPLACE
|
||||||
|
"#undef +(HAVE_STDINT_H)" "#define \\1 1"
|
||||||
|
FTCONFIG_H "${FTCONFIG_H}")
|
||||||
|
endif ()
|
||||||
|
string(REPLACE "/undef " "#undef "
|
||||||
|
FTCONFIG_H "${FTCONFIG_H}")
|
||||||
else ()
|
else ()
|
||||||
file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h"
|
file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h"
|
||||||
FTCONFIG_H)
|
FTCONFIG_H)
|
||||||
|
@ -347,11 +273,6 @@ if (HARFBUZZ_FOUND)
|
||||||
"/\\* +(#define +FT_CONFIG_OPTION_USE_HARFBUZZ) +\\*/" "\\1"
|
"/\\* +(#define +FT_CONFIG_OPTION_USE_HARFBUZZ) +\\*/" "\\1"
|
||||||
FTOPTION_H "${FTOPTION_H}")
|
FTOPTION_H "${FTOPTION_H}")
|
||||||
endif ()
|
endif ()
|
||||||
if (BROTLIDEC_FOUND)
|
|
||||||
string(REGEX REPLACE
|
|
||||||
"/\\* +(#define +FT_CONFIG_OPTION_USE_BROTLI) +\\*/" "\\1"
|
|
||||||
FTOPTION_H "${FTOPTION_H}")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
set(FTOPTION_H_NAME "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h")
|
set(FTOPTION_H_NAME "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h")
|
||||||
if (EXISTS "${FTOPTION_H_NAME}")
|
if (EXISTS "${FTOPTION_H_NAME}")
|
||||||
|
@ -387,6 +308,7 @@ set(BASE_SRCS
|
||||||
src/base/ftpfr.c
|
src/base/ftpfr.c
|
||||||
src/base/ftstroke.c
|
src/base/ftstroke.c
|
||||||
src/base/ftsynth.c
|
src/base/ftsynth.c
|
||||||
|
src/base/ftsystem.c
|
||||||
src/base/fttype1.c
|
src/base/fttype1.c
|
||||||
src/base/ftwinfnt.c
|
src/base/ftwinfnt.c
|
||||||
src/bdf/bdf.c
|
src/bdf/bdf.c
|
||||||
|
@ -402,24 +324,14 @@ set(BASE_SRCS
|
||||||
src/pshinter/pshinter.c
|
src/pshinter/pshinter.c
|
||||||
src/psnames/psnames.c
|
src/psnames/psnames.c
|
||||||
src/raster/raster.c
|
src/raster/raster.c
|
||||||
src/sdf/sdf.c
|
|
||||||
src/sfnt/sfnt.c
|
src/sfnt/sfnt.c
|
||||||
src/smooth/smooth.c
|
src/smooth/smooth.c
|
||||||
src/svg/svg.c
|
|
||||||
src/truetype/truetype.c
|
src/truetype/truetype.c
|
||||||
src/type1/type1.c
|
src/type1/type1.c
|
||||||
src/type42/type42.c
|
src/type42/type42.c
|
||||||
src/winfonts/winfnt.c
|
src/winfonts/winfnt.c
|
||||||
)
|
)
|
||||||
|
|
||||||
if (UNIX)
|
|
||||||
list(APPEND BASE_SRCS "builds/unix/ftsystem.c")
|
|
||||||
elseif (WIN32)
|
|
||||||
list(APPEND BASE_SRCS "builds/windows/ftsystem.c")
|
|
||||||
else ()
|
|
||||||
list(APPEND BASE_SRCS "src/base/ftsystem.c")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
enable_language(RC)
|
enable_language(RC)
|
||||||
list(APPEND BASE_SRCS builds/windows/ftdebug.c
|
list(APPEND BASE_SRCS builds/windows/ftdebug.c
|
||||||
|
@ -478,11 +390,7 @@ target_include_directories(
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/include
|
${CMAKE_CURRENT_BINARY_DIR}/include
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||||
|
|
||||||
# Make <ftconfig.h> available for builds/unix/ftsystem.c.
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/include/freetype/config
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
if (BUILD_FRAMEWORK)
|
if (BUILD_FRAMEWORK)
|
||||||
|
@ -491,48 +399,35 @@ if (BUILD_FRAMEWORK)
|
||||||
)
|
)
|
||||||
set_target_properties(freetype PROPERTIES
|
set_target_properties(freetype PROPERTIES
|
||||||
FRAMEWORK TRUE
|
FRAMEWORK TRUE
|
||||||
MACOSX_FRAMEWORK_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/builds/mac/freetype-Info.plist
|
MACOSX_FRAMEWORK_INFO_PLIST builds/mac/freetype-Info.plist
|
||||||
PUBLIC_HEADER "${PUBLIC_HEADERS}"
|
PUBLIC_HEADER "${PUBLIC_HEADERS}"
|
||||||
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
|
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
|
||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
set(PKGCONFIG_REQUIRES "")
|
set(PKG_CONFIG_REQUIRED_PRIVATE "")
|
||||||
set(PKGCONFIG_REQUIRES_PRIVATE "")
|
|
||||||
set(PKGCONFIG_LIBS "-L\${libdir} -lfreetype")
|
|
||||||
set(PKGCONFIG_LIBS_PRIVATE "")
|
|
||||||
|
|
||||||
if (ZLIB_FOUND)
|
if (ZLIB_FOUND)
|
||||||
target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES})
|
target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES})
|
||||||
target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS})
|
target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS})
|
||||||
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "zlib")
|
list(APPEND PKG_CONFIG_REQUIRED_PRIVATE zlib)
|
||||||
endif ()
|
endif ()
|
||||||
if (BZIP2_FOUND)
|
if (BZIP2_FOUND)
|
||||||
target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES})
|
target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES})
|
||||||
target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS
|
target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS
|
||||||
if (PC_BZIP2_FOUND)
|
list(APPEND PKG_CONFIG_REQUIRED_PRIVATE bzip2)
|
||||||
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "bzip2")
|
|
||||||
else ()
|
|
||||||
list(APPEND PKGCONFIG_LIBS_PRIVATE "-lbz2")
|
|
||||||
endif ()
|
|
||||||
endif ()
|
endif ()
|
||||||
if (PNG_FOUND)
|
if (PNG_FOUND)
|
||||||
target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES})
|
target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES})
|
||||||
target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS})
|
target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS})
|
||||||
target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS})
|
target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS})
|
||||||
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "libpng")
|
list(APPEND PKG_CONFIG_REQUIRED_PRIVATE libpng)
|
||||||
endif ()
|
endif ()
|
||||||
if (HarfBuzz_FOUND)
|
if (HARFBUZZ_FOUND)
|
||||||
target_link_libraries(freetype PRIVATE ${HarfBuzz_LIBRARY})
|
target_link_libraries(freetype PRIVATE ${HARFBUZZ_LIBRARIES})
|
||||||
target_include_directories(freetype PRIVATE ${HarfBuzz_INCLUDE_DIRS})
|
target_include_directories(freetype PRIVATE ${HARFBUZZ_INCLUDE_DIRS})
|
||||||
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "harfbuzz >= ${HARFBUZZ_MIN_VERSION}")
|
list(APPEND PKG_CONFIG_REQUIRED_PRIVATE harfbuzz)
|
||||||
endif ()
|
|
||||||
if (BROTLIDEC_FOUND)
|
|
||||||
target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES})
|
|
||||||
target_compile_definitions(freetype PRIVATE ${BROTLIDEC_DEFINITIONS})
|
|
||||||
target_include_directories(freetype PRIVATE ${BROTLIDEC_INCLUDE_DIRS})
|
|
||||||
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "libbrotlidec")
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
@ -557,62 +452,42 @@ endif ()
|
||||||
|
|
||||||
if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
||||||
# Generate the pkg-config file
|
# Generate the pkg-config file
|
||||||
file(READ "${PROJECT_SOURCE_DIR}/builds/unix/freetype2.in" FREETYPE2_PC_IN)
|
if (UNIX)
|
||||||
|
file(READ ${PROJECT_SOURCE_DIR}/builds/unix/freetype2.in FREETYPE2_PC_IN)
|
||||||
|
|
||||||
string(REPLACE ";" ", " PKGCONFIG_REQUIRES_PRIVATE "${PKGCONFIG_REQUIRES_PRIVATE}")
|
string(REPLACE ";" ", " PKG_CONFIG_REQUIRED_PRIVATE "${PKG_CONFIG_REQUIRED_PRIVATE}")
|
||||||
|
|
||||||
string(REPLACE "%prefix%" ${CMAKE_INSTALL_PREFIX}
|
string(REPLACE "%prefix%" ${CMAKE_INSTALL_PREFIX}
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
string(REPLACE "%exec_prefix%" "\${prefix}"
|
string(REPLACE "%exec_prefix%" "\${prefix}"
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
string(REPLACE "%libdir%" "\${prefix}/${CMAKE_INSTALL_LIBDIR}"
|
string(REPLACE "%libdir%" "\${prefix}/${CMAKE_INSTALL_LIBDIR}"
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
string(REPLACE "%includedir%" "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}"
|
string(REPLACE "%includedir%" "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
string(REPLACE "%ft_version%" "${LIBTOOL_CURRENT}.${LIBTOOL_REVISION}.${LIBTOOL_AGE}"
|
string(REPLACE "%ft_version%" "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
|
string(REPLACE "%REQUIRES_PRIVATE%" "${PKG_CONFIG_REQUIRED_PRIVATE}"
|
||||||
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
|
string(REPLACE "%LIBS_PRIVATE%" "" # All libs support pkg-config
|
||||||
|
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
||||||
|
|
||||||
if (BUILD_SHARED_LIBS)
|
set(FREETYPE2_PC_IN_NAME "${PROJECT_BINARY_DIR}/freetype2.pc")
|
||||||
string(REPLACE "%PKGCONFIG_REQUIRES%" "${PKGCONFIG_REQUIRES}"
|
if (EXISTS "${FREETYPE2_PC_IN_NAME}")
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
file(READ "${FREETYPE2_PC_IN_NAME}" ORIGINAL_FREETYPE2_PC_IN)
|
||||||
string(REPLACE "%PKGCONFIG_REQUIRES_PRIVATE%" "${PKGCONFIG_REQUIRES_PRIVATE}"
|
else ()
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
set(ORIGINAL_FREETYPE2_PC_IN "")
|
||||||
string(REPLACE "%PKGCONFIG_LIBS%" "${PKGCONFIG_LIBS}"
|
endif ()
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
if (NOT (ORIGINAL_FREETYPE2_PC_IN STREQUAL FREETYPE2_PC_IN))
|
||||||
string(REPLACE "%PKGCONFIG_LIBS_PRIVATE%" "${PKGCONFIG_LIBS_PRIVATE}"
|
file(WRITE "${FREETYPE2_PC_IN_NAME}" ${FREETYPE2_PC_IN})
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
endif ()
|
||||||
else ()
|
|
||||||
string(REPLACE "%PKGCONFIG_REQUIRES%" "${PKGCONFIG_REQUIRES} ${PKGCONFIG_REQUIRES_PRIVATE}"
|
install(
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
FILES ${PROJECT_BINARY_DIR}/freetype2.pc
|
||||||
string(REPLACE "%PKGCONFIG_REQUIRES_PRIVATE%" ""
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
COMPONENT pkgconfig)
|
||||||
string(REPLACE "%PKGCONFIG_LIBS%" "${PKGCONFIG_LIBS} ${PKGCONFIG_LIBS_PRIVATE}"
|
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
|
||||||
string(REPLACE "%PKGCONFIG_LIBS_PRIVATE%" ""
|
|
||||||
FREETYPE2_PC_IN ${FREETYPE2_PC_IN})
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(FREETYPE2_PC_IN_NAME "${PROJECT_BINARY_DIR}/freetype2.pc")
|
|
||||||
if (EXISTS "${FREETYPE2_PC_IN_NAME}")
|
|
||||||
file(READ "${FREETYPE2_PC_IN_NAME}" ORIGINAL_FREETYPE2_PC_IN)
|
|
||||||
else ()
|
|
||||||
set(ORIGINAL_FREETYPE2_PC_IN "")
|
|
||||||
endif ()
|
|
||||||
if (NOT (ORIGINAL_FREETYPE2_PC_IN STREQUAL FREETYPE2_PC_IN))
|
|
||||||
file(WRITE "${FREETYPE2_PC_IN_NAME}" ${FREETYPE2_PC_IN})
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES ${PROJECT_BINARY_DIR}/freetype2.pc
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
|
||||||
COMPONENT pkgconfig)
|
|
||||||
|
|
||||||
include(CMakePackageConfigHelpers)
|
|
||||||
write_basic_package_version_file(
|
|
||||||
${PROJECT_BINARY_DIR}/freetype-config-version.cmake
|
|
||||||
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
|
|
||||||
COMPATIBILITY SameMajorVersion)
|
|
||||||
|
|
||||||
install(
|
install(
|
||||||
TARGETS freetype
|
TARGETS freetype
|
||||||
EXPORT freetype-targets
|
EXPORT freetype-targets
|
||||||
|
@ -626,10 +501,6 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
|
||||||
FILE freetype-config.cmake
|
FILE freetype-config.cmake
|
||||||
COMPONENT headers)
|
COMPONENT headers)
|
||||||
install(
|
|
||||||
FILES ${PROJECT_BINARY_DIR}/freetype-config-version.cmake
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
|
|
||||||
COMPONENT headers)
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
@ -637,7 +508,7 @@ endif ()
|
||||||
set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
|
set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The FreeType font rendering library.")
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The FreeType font rendering library.")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
|
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.TXT")
|
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/docs/LICENSE.TXT")
|
||||||
|
|
||||||
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
||||||
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
|
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
|
||||||
|
|
|
@ -2597,7 +2597,7 @@
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2000-2022 by
|
Copyright (C) 2000-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
|
@ -4799,11 +4799,11 @@
|
||||||
(chapter_inter, chapter_footer): Add <li> and use special <ul>
|
(chapter_inter, chapter_footer): Add <li> and use special <ul>
|
||||||
class.
|
class.
|
||||||
Use double quotes around table widths given in percent.
|
Use double quotes around table widths given in percent.
|
||||||
(keyword_prefix, keyword_suffix): Don't change font color directly
|
(keyword_prefix, keyword_suffix): Don't change font colour directly
|
||||||
but use a new <span> class.
|
but use a new <span> class.
|
||||||
(section_synopsis_header, section_synopsis_footer): Don't change
|
(section_synopsis_header, section_synopsis_footer): Don't change
|
||||||
color.
|
colour.
|
||||||
(code_header, code_footer): Don't change font color directly but
|
(code_header, code_footer): Don't change font colour directly but
|
||||||
use a special <pre> class.
|
use a special <pre> class.
|
||||||
(print_html_field): <tr> gets the `valign' attribute, not <table>.
|
(print_html_field): <tr> gets the `valign' attribute, not <table>.
|
||||||
(print_html_field_list): Ditto.
|
(print_html_field_list): Ditto.
|
||||||
|
@ -9422,7 +9422,7 @@
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2002-2022 by
|
Copyright (C) 2002-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
|
@ -2821,7 +2821,7 @@
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2005-2022 by
|
Copyright (C) 2005-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
|
@ -7932,7 +7932,7 @@
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2006-2022 by
|
Copyright (C) 2006-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
|
@ -6344,7 +6344,7 @@
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2010-2022 by
|
Copyright (C) 2010-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
|
@ -5145,7 +5145,7 @@
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2013-2022 by
|
Copyright (C) 2013-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
|
@ -5695,7 +5695,7 @@
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2015-2022 by
|
Copyright (C) 2015-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
|
@ -2090,7 +2090,7 @@
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2016-2022 by
|
Copyright (C) 2016-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
|
@ -3120,7 +3120,7 @@
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2016-2022 by
|
Copyright (C) 2016-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
|
@ -2336,7 +2336,7 @@
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2017-2022 by
|
Copyright (C) 2017-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
|
@ -0,0 +1,223 @@
|
||||||
|
# FreeType 2 top Jamfile.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2001-2019 by
|
||||||
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
#
|
||||||
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
# and distributed under the terms of the FreeType project license,
|
||||||
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
|
# indicate that you have read the license and understand and accept it
|
||||||
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
|
# The HDRMACRO is already defined in FTJam and is used to add
|
||||||
|
# the content of certain macros to the list of included header
|
||||||
|
# files.
|
||||||
|
#
|
||||||
|
# We can compile FreeType 2 with classic Jam however thanks to
|
||||||
|
# the following code
|
||||||
|
#
|
||||||
|
if ! $(JAM_TOOLSET)
|
||||||
|
{
|
||||||
|
rule HDRMACRO
|
||||||
|
{
|
||||||
|
# nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# We need to invoke a SubDir rule if the FT2 source directory top is not the
|
||||||
|
# current directory. This allows us to build FreeType 2 as part of a larger
|
||||||
|
# project easily.
|
||||||
|
#
|
||||||
|
if $(FT2_TOP) != $(DOT)
|
||||||
|
{
|
||||||
|
SubDir FT2_TOP ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# The following macros define the include directory, the source directory,
|
||||||
|
# and the final library name (without library extensions). They can be
|
||||||
|
# replaced by other definitions when the library is compiled as part of
|
||||||
|
# a larger project.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Name of FreeType include directory during compilation.
|
||||||
|
# This is relative to FT2_TOP.
|
||||||
|
#
|
||||||
|
FT2_INCLUDE_DIR ?= include ;
|
||||||
|
|
||||||
|
# Name of FreeType source directory during compilation.
|
||||||
|
# This is relative to FT2_TOP.
|
||||||
|
#
|
||||||
|
FT2_SRC_DIR ?= src ;
|
||||||
|
|
||||||
|
# Name of final library, without extension.
|
||||||
|
#
|
||||||
|
FT2_LIB ?= $(LIBPREFIX)freetype ;
|
||||||
|
|
||||||
|
|
||||||
|
# Define FT2_BUILD_INCLUDE to point to your build-specific directory.
|
||||||
|
# This is prepended to FT2_INCLUDE_DIR. It can be used to specify
|
||||||
|
# the location of a custom <ft2build.h> which will point to custom
|
||||||
|
# versions of `ftmodule.h' and `ftoption.h', for example.
|
||||||
|
#
|
||||||
|
FT2_BUILD_INCLUDE ?= ;
|
||||||
|
|
||||||
|
# The list of modules to compile on any given build of the library.
|
||||||
|
# By default, this will contain _all_ modules defined in FT2_SRC_DIR.
|
||||||
|
#
|
||||||
|
# IMPORTANT: You'll need to change the content of `ftmodule.h' as well
|
||||||
|
# if you modify this list or provide your own.
|
||||||
|
#
|
||||||
|
FT2_COMPONENTS ?= autofit # auto-fitter
|
||||||
|
base # base component (public APIs)
|
||||||
|
bdf # BDF font driver
|
||||||
|
bzip2 # support for bzip2-compressed PCF font
|
||||||
|
cache # cache sub-system
|
||||||
|
cff # CFF/CEF font driver
|
||||||
|
cid # PostScript CID-keyed font driver
|
||||||
|
gzip # support for gzip-compressed PCF font
|
||||||
|
lzw # support for LZW-compressed PCF font
|
||||||
|
pcf # PCF font driver
|
||||||
|
pfr # PFR/TrueDoc font driver
|
||||||
|
psaux # common PostScript routines module
|
||||||
|
pshinter # PostScript hinter module
|
||||||
|
psnames # PostScript names handling
|
||||||
|
raster # monochrome rasterizer
|
||||||
|
sfnt # SFNT-based format support routines
|
||||||
|
smooth # anti-aliased rasterizer
|
||||||
|
truetype # TrueType font driver
|
||||||
|
type1 # PostScript Type 1 font driver
|
||||||
|
type42 # PostScript Type 42 (embedded TrueType) driver
|
||||||
|
winfonts # Windows FON/FNT font driver
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
# Don't touch.
|
||||||
|
#
|
||||||
|
FT2_INCLUDE = $(FT2_BUILD_INCLUDE)
|
||||||
|
[ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
|
||||||
|
|
||||||
|
FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
|
||||||
|
|
||||||
|
# Location of API Reference Documentation
|
||||||
|
#
|
||||||
|
if $(DOC_DIR)
|
||||||
|
{
|
||||||
|
DOC_DIR = $(DOCDIR:T) ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DOC_DIR = docs/reference ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Only used by FreeType developers.
|
||||||
|
#
|
||||||
|
if $(DEBUG_HINTER)
|
||||||
|
{
|
||||||
|
CCFLAGS += -DDEBUG_HINTER ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# We need `include' in the current include path in order to
|
||||||
|
# compile any part of FreeType 2.
|
||||||
|
#
|
||||||
|
HDRS += $(FT2_INCLUDE) ;
|
||||||
|
|
||||||
|
|
||||||
|
# We need to #define FT2_BUILD_LIBRARY so that our sources find the
|
||||||
|
# internal headers
|
||||||
|
#
|
||||||
|
CCFLAGS += -DFT2_BUILD_LIBRARY ;
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to build individual source files
|
||||||
|
# for each FreeType 2 module. This is only useful during development, and
|
||||||
|
# is better defined as an environment variable anyway!
|
||||||
|
#
|
||||||
|
# FT2_MULTI = true ;
|
||||||
|
|
||||||
|
|
||||||
|
# The files `ftheader.h', `internal.h', and `ftserv.h' are used to define
|
||||||
|
# macros that are later used in #include statements. They need to be parsed
|
||||||
|
# in order to record these definitions.
|
||||||
|
#
|
||||||
|
HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype config ftheader.h ] ;
|
||||||
|
HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype internal internal.h ] ;
|
||||||
|
HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype internal ftserv.h ] ;
|
||||||
|
|
||||||
|
|
||||||
|
# Now include the Jamfile in `freetype2/src', used to drive the compilation
|
||||||
|
# of each FreeType 2 component and/or module.
|
||||||
|
#
|
||||||
|
SubInclude FT2_TOP $(FT2_SRC_DIR) ;
|
||||||
|
|
||||||
|
# Handle the generation of the `ftexport.sym' file, which contains the list
|
||||||
|
# of exported symbols. This can be used on Unix by libtool.
|
||||||
|
#
|
||||||
|
SubInclude FT2_TOP $(FT2_SRC_DIR) tools ;
|
||||||
|
|
||||||
|
rule GenExportSymbols
|
||||||
|
{
|
||||||
|
local apinames = apinames$(SUFEXE) ;
|
||||||
|
local aheader ;
|
||||||
|
local headers ;
|
||||||
|
|
||||||
|
for aheader in [ Glob $(2) : *.h ]
|
||||||
|
{
|
||||||
|
switch $(aheader)
|
||||||
|
{
|
||||||
|
case */ftmac.h :
|
||||||
|
if ( $(MAC) || $(OS) = MACOSX ) {
|
||||||
|
headers += $(aheader) ;
|
||||||
|
}
|
||||||
|
case *.h : headers += $(aheader) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LOCATE on $(1) = $(ALL_LOCATE_TARGET) ;
|
||||||
|
|
||||||
|
APINAMES on $(1) = apinames$(SUFEXE) ;
|
||||||
|
|
||||||
|
Depends $(1) : $(apinames) $(headers) ;
|
||||||
|
GenExportSymbols1 $(1) : $(headers) ;
|
||||||
|
Clean clean : $(1) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
actions GenExportSymbols1 bind APINAMES
|
||||||
|
{
|
||||||
|
$(APINAMES) $(2) > $(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
GenExportSymbols ftexport.sym : include/freetype ;
|
||||||
|
|
||||||
|
# Test files (hinter debugging). Only used by FreeType developers.
|
||||||
|
#
|
||||||
|
if $(DEBUG_HINTER)
|
||||||
|
{
|
||||||
|
SubInclude FT2_TOP tests ;
|
||||||
|
}
|
||||||
|
|
||||||
|
rule RefDoc
|
||||||
|
{
|
||||||
|
Depends $1 : all ;
|
||||||
|
NotFile $1 ;
|
||||||
|
Always $1 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
actions RefDoc
|
||||||
|
{
|
||||||
|
python -m docwriter
|
||||||
|
--prefix=ft2
|
||||||
|
--title=FreeType-2.10.1
|
||||||
|
--output=$(DOC_DIR)
|
||||||
|
$(FT2_INCLUDE)/freetype/*.h
|
||||||
|
$(FT2_INCLUDE)/freetype/config/*.h
|
||||||
|
$(FT2_INCLUDE)/freetype/cache/*.h
|
||||||
|
}
|
||||||
|
|
||||||
|
RefDoc refdoc ;
|
||||||
|
|
||||||
|
|
||||||
|
# end of top Jamfile
|
|
@ -0,0 +1,71 @@
|
||||||
|
# FreeType 2 JamRules.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2001-2019 by
|
||||||
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
#
|
||||||
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
# and distributed under the terms of the FreeType project license,
|
||||||
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
|
# indicate that you have read the license and understand and accept it
|
||||||
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
|
# This file contains the Jam rules needed to build the FreeType 2 library.
|
||||||
|
# It is shared by all Jamfiles and is included only once in the build
|
||||||
|
# process.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# Call SubDirHdrs on a list of directories.
|
||||||
|
#
|
||||||
|
rule AddSubDirHdrs
|
||||||
|
{
|
||||||
|
local x ;
|
||||||
|
|
||||||
|
for x in $(<)
|
||||||
|
{
|
||||||
|
SubDirHdrs $(x) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Determine prefix of library file. We must use "libxxxxx" on Unix systems,
|
||||||
|
# while all other simply use the real name.
|
||||||
|
#
|
||||||
|
if $(UNIX)
|
||||||
|
{
|
||||||
|
LIBPREFIX ?= lib ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LIBPREFIX ?= "" ;
|
||||||
|
}
|
||||||
|
|
||||||
|
# FT2_TOP contains the location of the FreeType source directory. You can
|
||||||
|
# set it to a specific value if you want to compile the library as part of a
|
||||||
|
# larger project.
|
||||||
|
#
|
||||||
|
FT2_TOP ?= $(DOT) ;
|
||||||
|
|
||||||
|
# Define a new rule used to declare a sub directory of the Nirvana source
|
||||||
|
# tree.
|
||||||
|
#
|
||||||
|
rule FT2_SubDir
|
||||||
|
{
|
||||||
|
if $(FT2_TOP) = $(DOT)
|
||||||
|
{
|
||||||
|
return [ FDirName $(<) ] ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return [ FDirName $(FT2_TOP) $(<) ] ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# We also set ALL_LOCATE_TARGET in order to place all object and library
|
||||||
|
# files in "objs".
|
||||||
|
#
|
||||||
|
ALL_LOCATE_TARGET ?= [ FT2_SubDir objs ] ;
|
||||||
|
|
||||||
|
|
||||||
|
# end of Jamrules
|
42
LICENSE.TXT
42
LICENSE.TXT
|
@ -1,42 +0,0 @@
|
||||||
FREETYPE LICENSES
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
The FreeType 2 font engine is copyrighted work and cannot be used
|
|
||||||
legally without a software license. In order to make this project
|
|
||||||
usable to a vast majority of developers, we distribute it under two
|
|
||||||
mutually exclusive open-source licenses.
|
|
||||||
|
|
||||||
This means that *you* must choose *one* of the two licenses described
|
|
||||||
below, then obey all its terms and conditions when using FreeType 2 in
|
|
||||||
any of your projects or products.
|
|
||||||
|
|
||||||
- The FreeType License, found in the file `docs/FTL.TXT`, which is
|
|
||||||
similar to the original BSD license *with* an advertising clause
|
|
||||||
that forces you to explicitly cite the FreeType project in your
|
|
||||||
product's documentation. All details are in the license file.
|
|
||||||
This license is suited to products which don't use the GNU General
|
|
||||||
Public License.
|
|
||||||
|
|
||||||
Note that this license is compatible to the GNU General Public
|
|
||||||
License version 3, but not version 2.
|
|
||||||
|
|
||||||
- The GNU General Public License version 2, found in
|
|
||||||
`docs/GPLv2.TXT` (any later version can be used also), for
|
|
||||||
programs which already use the GPL. Note that the FTL is
|
|
||||||
incompatible with GPLv2 due to its advertisement clause.
|
|
||||||
|
|
||||||
The contributed BDF and PCF drivers come with a license similar to
|
|
||||||
that of the X Window System. It is compatible to the above two
|
|
||||||
licenses (see files `src/bdf/README` and `src/pcf/README`). The same
|
|
||||||
holds for the source code files `src/base/fthash.c` and
|
|
||||||
`include/freetype/internal/fthash.h`; they wer part of the BDF driver
|
|
||||||
in earlier FreeType versions.
|
|
||||||
|
|
||||||
The gzip module uses the zlib license (see `src/gzip/zlib.h`) which
|
|
||||||
too is compatible to the above two licenses.
|
|
||||||
|
|
||||||
The MD5 checksum support (only used for debugging in development
|
|
||||||
builds) is in the public domain.
|
|
||||||
|
|
||||||
|
|
||||||
--- end of LICENSE.TXT ---
|
|
2
Makefile
2
Makefile
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
111
README
111
README
|
@ -1,100 +1,77 @@
|
||||||
FreeType 2.12.1
|
FreeType 2.10.1
|
||||||
===============
|
===============
|
||||||
|
|
||||||
Homepage: https://www.freetype.org
|
Homepage: https://www.freetype.org
|
||||||
|
|
||||||
FreeType is a freely available software library to render fonts.
|
FreeType is a freely available software library to render fonts.
|
||||||
|
|
||||||
It is written in C, designed to be small, efficient, highly
|
It is written in C, designed to be small, efficient, highly
|
||||||
customizable, and portable while capable of producing high-quality
|
customizable, and portable while capable of producing high-quality
|
||||||
output (glyph images) of most vector and bitmap font formats.
|
output (glyph images) of most vector and bitmap font formats.
|
||||||
|
|
||||||
Please read the `docs/CHANGES` file, it contains IMPORTANT
|
Please read the docs/CHANGES file, it contains IMPORTANT
|
||||||
INFORMATION.
|
INFORMATION.
|
||||||
|
|
||||||
Read the files `docs/INSTALL*` for installation instructions; see the
|
Read the files `docs/INSTALL*' for installation instructions; see
|
||||||
file `docs/LICENSE.TXT` for the available licenses.
|
the file `docs/LICENSE.TXT' for the available licenses.
|
||||||
|
|
||||||
For using FreeType's git repository instead of a distribution bundle,
|
The FreeType 2 API reference is located in `docs/reference/site';
|
||||||
please read file `README.git`. Note that you have to actually clone
|
use the file `index.html' as the top entry point. Additional
|
||||||
the repository; using a snapshot will not work (in other words, don't
|
documentation is available as a separate package from our sites. Go
|
||||||
use gitlab's 'Download' button).
|
to
|
||||||
|
|
||||||
The FreeType 2 API reference is located in directory `docs/reference`;
|
https://download.savannah.gnu.org/releases/freetype/
|
||||||
use the file `index.html` as the top entry point. [Please note that
|
|
||||||
currently the search function for locally installed documentation
|
|
||||||
doesn't work due to cross-site scripting issues.]
|
|
||||||
|
|
||||||
Additional documentation is available as a separate package from our
|
and download one of the following files.
|
||||||
sites. Go to
|
|
||||||
|
|
||||||
https://download.savannah.gnu.org/releases/freetype/
|
freetype-doc-2.10.1.tar.xz
|
||||||
|
freetype-doc-2.10.1.tar.gz
|
||||||
|
ftdoc2101.zip
|
||||||
|
|
||||||
and download one of the following files.
|
To view the documentation online, go to
|
||||||
|
|
||||||
freetype-doc-2.12.1.tar.xz
|
https://www.freetype.org/freetype2/docs/
|
||||||
freetype-doc-2.12.1.tar.gz
|
|
||||||
ftdoc2121.zip
|
|
||||||
|
|
||||||
To view the documentation online, go to
|
|
||||||
|
|
||||||
https://www.freetype.org/freetype2/docs/
|
|
||||||
|
|
||||||
|
|
||||||
Mailing Lists
|
Mailing Lists
|
||||||
-------------
|
=============
|
||||||
|
|
||||||
The preferred way of communication with the FreeType team is using
|
The preferred way of communication with the FreeType team is using
|
||||||
e-mail lists.
|
e-mail lists.
|
||||||
|
|
||||||
general use and discussion: freetype@nongnu.org
|
general use and discussion: freetype@nongnu.org
|
||||||
engine internals, porting, etc.: freetype-devel@nongnu.org
|
engine internals, porting, etc.: freetype-devel@nongnu.org
|
||||||
announcements: freetype-announce@nongnu.org
|
announcements: freetype-announce@nongnu.org
|
||||||
git repository tracker: freetype-commit@nongnu.org
|
git repository tracker: freetype-commit@nongnu.org
|
||||||
|
|
||||||
The lists are moderated; see
|
The lists are moderated; see
|
||||||
|
|
||||||
https://www.freetype.org/contact.html
|
https://www.freetype.org/contact.html
|
||||||
|
|
||||||
how to subscribe.
|
how to subscribe.
|
||||||
|
|
||||||
|
|
||||||
Bugs
|
Bugs
|
||||||
----
|
====
|
||||||
|
|
||||||
Please submit bug reports at
|
Please submit bug reports at
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/freetype/freetype/-/issues
|
https://savannah.nongnu.org/bugs/?group=freetype
|
||||||
|
|
||||||
Alternatively, you might report bugs by e-mail to
|
Alternatively, you might report bugs by e-mail to
|
||||||
`freetype-devel@nongnu.org`. Don't forget to send a detailed
|
`freetype-devel@nongnu.org'. Don't forget to send a detailed
|
||||||
explanation of the problem -- there is nothing worse than receiving a
|
explanation of the problem -- there is nothing worse than receiving
|
||||||
terse message that only says 'it doesn't work'.
|
a terse message that only says `it doesn't work'.
|
||||||
|
|
||||||
|
|
||||||
Patches
|
Enjoy!
|
||||||
-------
|
|
||||||
|
|
||||||
For larger changes please provide merge requests at
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests
|
|
||||||
|
|
||||||
Alternatively, you can send patches to the `freetype-devel@nongnu.org`
|
|
||||||
mailing list -- and thank you in advance for your work on improving
|
|
||||||
FreeType!
|
|
||||||
|
|
||||||
Details on the process can be found here:
|
|
||||||
|
|
||||||
https://www.freetype.org/developer.html#patches
|
|
||||||
|
|
||||||
|
|
||||||
Enjoy!
|
The FreeType Team
|
||||||
|
|
||||||
The FreeType Team
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2006-2022 by
|
Copyright (C) 2006-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
|
|
80
README.git
80
README.git
|
@ -1,36 +1,4 @@
|
||||||
README.git
|
The git archive doesn't contain pre-built configuration scripts for
|
||||||
==========
|
|
||||||
|
|
||||||
|
|
||||||
repository issues
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
FreeType's official repository site is
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/freetype ,
|
|
||||||
|
|
||||||
from which the 'freetype.git' and 'freetype-demos.git' repositories
|
|
||||||
can be cloned in the usual way.
|
|
||||||
|
|
||||||
git clone https://gitlab.freedesktop.org/freetype/freetype.git
|
|
||||||
git clone https://gitlab.freedesktop.org/freetype/freetype-demos.git
|
|
||||||
|
|
||||||
If you want to use the Savannah mirror instead, you have to do a
|
|
||||||
slightly different incantation because the repository names contain
|
|
||||||
digit '2' for historical reasons.
|
|
||||||
|
|
||||||
git clone \
|
|
||||||
https://git.savannah.nongnu.org/git/freetype/freetype2.git \
|
|
||||||
freetype
|
|
||||||
git clone \
|
|
||||||
https://git.savannah.nongnu.org/git/freetype/freetype2-demos.git \
|
|
||||||
freetype-demos
|
|
||||||
|
|
||||||
|
|
||||||
standard builds with `configure`
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
The git repository doesn't contain pre-built configuration scripts for
|
|
||||||
UNIXish platforms. To generate them say
|
UNIXish platforms. To generate them say
|
||||||
|
|
||||||
sh autogen.sh
|
sh autogen.sh
|
||||||
|
@ -42,54 +10,34 @@ which in turn depends on the following packages:
|
||||||
autoconf (2.62)
|
autoconf (2.62)
|
||||||
|
|
||||||
The versions given in parentheses are known to work. Newer versions
|
The versions given in parentheses are known to work. Newer versions
|
||||||
should work too, of course. Note that `autogen.sh` also sets up
|
should work too, of course. Note that autogen.sh also sets up proper
|
||||||
proper file permissions for the `configure` and auxiliary scripts.
|
file permissions for the `configure' and auxiliary scripts.
|
||||||
|
|
||||||
The `autogen.sh` script checks whether the versions of the above three
|
The autogen.sh script now checks the version of above three packages
|
||||||
tools match the numbers above. Otherwise it will complain and suggest
|
whether they match the numbers above. Otherwise it will complain and
|
||||||
either upgrading or using environment variables to point to more
|
suggest either upgrading or using an environment variable to point to
|
||||||
recent versions of the required tools.
|
a more recent version of the required tool(s).
|
||||||
|
|
||||||
Note that `aclocal` is provided by the 'automake' package on Linux,
|
Note that `aclocal' is provided by the `automake' package on Linux,
|
||||||
and that `libtoolize` is called `glibtoolize` on Darwin (OS X).
|
and that `libtoolize' is called `glibtoolize' on Darwin (OS X).
|
||||||
|
|
||||||
|
|
||||||
alternative build methods
|
For static builds which don't use platform specific optimizations, no
|
||||||
-------------------------
|
|
||||||
|
|
||||||
For static builds that don't use platform-specific optimizations, no
|
|
||||||
configure script is necessary at all; saying
|
configure script is necessary at all; saying
|
||||||
|
|
||||||
make setup ansi
|
make setup ansi
|
||||||
make
|
make
|
||||||
|
|
||||||
should work on all platforms that have GNU `make` (or `makepp`).
|
should work on all platforms which have GNU make (or makepp).
|
||||||
|
|
||||||
A build with `cmake` or `meson` can be done directly from the git
|
|
||||||
repository. However, if you want to use the `FT_DEBUG_LOGGING` macro
|
|
||||||
(see file `docs/DEBUG` for more information) it is currently mandatory
|
|
||||||
to execute `autogen.sh` in advance; this script clones the 'dlg' git
|
|
||||||
submodule and copies some files into FreeType's source tree.
|
|
||||||
|
|
||||||
|
|
||||||
Code of Conduct
|
Similarly, a build with `cmake' can be done directly from the git
|
||||||
---------------
|
repository.
|
||||||
|
|
||||||
Please note that this project is released with a Contributor Code of
|
|
||||||
Conduct (CoC). By participating in this project you agree to abide by
|
|
||||||
its terms, which you can find in the following link:
|
|
||||||
|
|
||||||
https://www.freedesktop.org/wiki/CodeOfConduct
|
|
||||||
|
|
||||||
CoC issues may be raised to the project maintainers at the following
|
|
||||||
address:
|
|
||||||
|
|
||||||
wl@gnu.org
|
|
||||||
apodtele@gmail.com
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2005-2022 by
|
Copyright (C) 2005-2019 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
|
|
51
autogen.sh
51
autogen.sh
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Copyright (C) 2005-2022 by
|
# Copyright (C) 2005-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -110,10 +110,7 @@ check_tool_version ()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Solaris 10's shell doesn't like the `!` operator to negate the exit status.
|
if test ! -f ./builds/unix/configure.raw; then
|
||||||
if test -f ./builds/unix/configure.raw; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
echo "You must be in the same directory as \`autogen.sh'."
|
echo "You must be in the same directory as \`autogen.sh'."
|
||||||
echo "Bootstrapping doesn't work if srcdir != builddir."
|
echo "Bootstrapping doesn't work if srcdir != builddir."
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -141,25 +138,18 @@ check_tool_version $ACLOCAL aclocal ACLOCAL 1.10.1
|
||||||
check_tool_version $LIBTOOLIZE libtoolize LIBTOOLIZE 2.2.4
|
check_tool_version $LIBTOOLIZE libtoolize LIBTOOLIZE 2.2.4
|
||||||
check_tool_version $AUTOCONF autoconf AUTOCONF 2.62
|
check_tool_version $AUTOCONF autoconf AUTOCONF 2.62
|
||||||
|
|
||||||
# This sets FREETYPE version.
|
# This sets freetype_major, freetype_minor, and freetype_patch.
|
||||||
eval `sed -n \
|
eval `sed -nf version.sed include/freetype/freetype.h`
|
||||||
-e 's/^#define *\(FREETYPE_MAJOR\) *\([0-9][0-9]*\).*/\1=\2/p' \
|
|
||||||
-e 's/^#define *\(FREETYPE_MINOR\) *\([0-9][0-9]*\).*/\1=\2/p' \
|
|
||||||
-e 's/^#define *\(FREETYPE_PATCH\) *\([0-9][0-9]*\).*/\1=\2/p' \
|
|
||||||
include/freetype/freetype.h`
|
|
||||||
|
|
||||||
if test "$FREETYPE_PATCH" = "0"; then
|
# We set freetype-patch to an empty value if it is zero.
|
||||||
FREETYPE=$FREETYPE_MAJOR.$FREETYPE_MINOR
|
if test "$freetype_patch" = ".0"; then
|
||||||
else
|
freetype_patch=
|
||||||
FREETYPE=$FREETYPE_MAJOR.$FREETYPE_MINOR.$FREETYPE_PATCH
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "FreeType $FREETYPE:"
|
|
||||||
|
|
||||||
cd builds/unix
|
cd builds/unix
|
||||||
|
|
||||||
echo "generating \`configure.ac'"
|
echo "generating \`configure.ac'"
|
||||||
sed -e "s;@VERSION@;$FREETYPE;" \
|
sed -e "s;@VERSION@;$freetype_major$freetype_minor$freetype_patch;" \
|
||||||
< configure.raw > configure.ac
|
< configure.raw > configure.ac
|
||||||
|
|
||||||
run aclocal -I . --force
|
run aclocal -I . --force
|
||||||
|
@ -172,29 +162,4 @@ cd ../..
|
||||||
|
|
||||||
chmod +x ./configure
|
chmod +x ./configure
|
||||||
|
|
||||||
# Copy all necessary 'dlg' files.
|
|
||||||
copy_submodule_files ()
|
|
||||||
{
|
|
||||||
echo "Copying files from \`subprojects/dlg' to \`src/dlg' and \`include/dlg'"
|
|
||||||
mkdir include/dlg 2> /dev/null
|
|
||||||
cp $DLG_INC_DIR/output.h include/dlg
|
|
||||||
cp $DLG_INC_DIR/dlg.h include/dlg
|
|
||||||
cp $DLG_SRC_DIR/* src/dlg
|
|
||||||
}
|
|
||||||
|
|
||||||
if test -e ".git"; then
|
|
||||||
DLG_INC_DIR=subprojects/dlg/include/dlg
|
|
||||||
DLG_SRC_DIR=subprojects/dlg/src/dlg
|
|
||||||
|
|
||||||
if test -d "$DLG_INC_DIR"; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
echo "Checking out submodule in \`subprojects/dlg':"
|
|
||||||
git submodule init
|
|
||||||
git submodule update
|
|
||||||
fi
|
|
||||||
|
|
||||||
copy_submodule_files
|
|
||||||
fi
|
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
README for the builds/amiga subdirectory.
|
README for the builds/amiga subdirectory.
|
||||||
|
|
||||||
Copyright (C) 2005-2022 by
|
Copyright (C) 2005-2019 by
|
||||||
Werner Lemberg and Detlef Würkner.
|
Werner Lemberg and Detlef Würkner.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* Amiga-specific configuration file (specification only). */
|
/* Amiga-specific configuration file (specification only). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (C) 2005-2022 by */
|
/* Copyright (C) 2005-2019 by */
|
||||||
/* Werner Lemberg and Detlef Würkner. */
|
/* Werner Lemberg and Detlef Würkner. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* Amiga-specific FreeType module selection. */
|
/* Amiga-specific FreeType module selection. */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (C) 2005-2022 by */
|
/* Copyright (C) 2005-2019 by */
|
||||||
/* Werner Lemberg and Detlef Würkner. */
|
/* Werner Lemberg and Detlef Würkner. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -137,6 +137,8 @@ FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
|
||||||
|
|
||||||
#ifdef FT_USE_SMOOTH
|
#ifdef FT_USE_SMOOTH
|
||||||
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
|
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
|
||||||
|
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class )
|
||||||
|
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FT_USE_OTV
|
#ifdef FT_USE_OTV
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2005-2022 by
|
# Copyright (C) 2005-2019 by
|
||||||
# Werner Lemberg and Detlef Würkner.
|
# Werner Lemberg and Detlef Würkner.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2005-2022 by
|
# Copyright (C) 2005-2019 by
|
||||||
# Werner Lemberg and Detlef Würkner.
|
# Werner Lemberg and Detlef Würkner.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2005-2022 by
|
# Copyright (C) 2005-2019 by
|
||||||
# Werner Lemberg and Detlef Würkner.
|
# Werner Lemberg and Detlef Würkner.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Debugging and logging component for amiga (body).
|
* Debugging and logging component for amiga (body).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2022 by
|
* Copyright (C) 1996-2019 by
|
||||||
* David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner.
|
* David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -68,8 +68,8 @@
|
||||||
|
|
||||||
|
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
#include <freetype/freetype.h>
|
#include FT_FREETYPE_H
|
||||||
#include <freetype/internal/ftdebug.h>
|
#include FT_INTERNAL_DEBUG_H
|
||||||
|
|
||||||
|
|
||||||
#ifdef FT_DEBUG_LEVEL_ERROR
|
#ifdef FT_DEBUG_LEVEL_ERROR
|
||||||
|
@ -152,7 +152,7 @@
|
||||||
|
|
||||||
static const char* ft_trace_toggles[trace_count + 1] =
|
static const char* ft_trace_toggles[trace_count + 1] =
|
||||||
{
|
{
|
||||||
#include <freetype/internal/fttrace.h>
|
#include FT_INTERNAL_TRACE_H
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* Amiga-specific FreeType low-level system interface (body). */
|
/* Amiga-specific FreeType low-level system interface (body). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (C) 1996-2022 by */
|
/* Copyright (C) 1996-2019 by */
|
||||||
/* David Turner, Robert Wilhelm, Werner Lemberg and Detlef Würkner. */
|
/* David Turner, Robert Wilhelm, Werner Lemberg and Detlef Würkner. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -96,10 +96,10 @@ Free_VecPooled( APTR poolHeader,
|
||||||
|
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
#include FT_CONFIG_CONFIG_H
|
#include FT_CONFIG_CONFIG_H
|
||||||
#include <freetype/internal/ftdebug.h>
|
#include FT_INTERNAL_DEBUG_H
|
||||||
#include <freetype/ftsystem.h>
|
#include FT_SYSTEM_H
|
||||||
#include <freetype/fterrors.h>
|
#include FT_ERRORS_H
|
||||||
#include <freetype/fttypes.h>
|
#include FT_TYPES_H
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -264,7 +264,7 @@ Free_VecPooled( APTR poolHeader,
|
||||||
|
|
||||||
stream->descriptor.pointer = NULL;
|
stream->descriptor.pointer = NULL;
|
||||||
stream->size = 0;
|
stream->size = 0;
|
||||||
stream->base = NULL;
|
stream->base = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -13,11 +13,11 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
DELETE := rm -f
|
DELETE := rm -f
|
||||||
CAT := cat
|
CAT := cat
|
||||||
SEP := /
|
SEP := /
|
||||||
PLATFORM_DIR := $(TOP_DIR)/builds/ansi
|
BUILD_DIR := $(TOP_DIR)/builds/ansi
|
||||||
PLATFORM := ansi
|
PLATFORM := ansi
|
||||||
|
|
||||||
# This is used for `make refdoc' and `make refdoc-venv'
|
# This is used for `make refdoc' and `make refdoc-venv'
|
||||||
#
|
#
|
||||||
|
@ -64,14 +64,14 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c
|
CFLAGS ?= -c
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?=
|
ANSIFLAGS :=
|
||||||
|
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -15,7 +15,7 @@ To compile FreeType 2 as a library the following changes must be applied:
|
||||||
|
|
||||||
INCLUDE;E:\freetype2\include
|
INCLUDE;E:\freetype2\include
|
||||||
|
|
||||||
- The file `freetype/include/Ft2build.h' must be patched as follows to
|
- The file `freetype2/include/Ft2build.h' must be patched as follows to
|
||||||
include ATARI.H:
|
include ATARI.H:
|
||||||
|
|
||||||
#ifndef FT2_BUILD_GENERIC_H_
|
#ifndef FT2_BUILD_GENERIC_H_
|
||||||
|
@ -40,7 +40,7 @@ ge
|
||||||
|
|
||||||
INCLUDE;E:\freetype2\include
|
INCLUDE;E:\freetype2\include
|
||||||
|
|
||||||
- In der Datei freetype/include/Ft2build.h muss zu Beginn
|
- In der Datei freetype2/include/Ft2build.h muss zu Beginn
|
||||||
ein #include "ATARI.H" wie folgt eingef<65>gt werden:
|
ein #include "ATARI.H" wie folgt eingef<65>gt werden:
|
||||||
|
|
||||||
#ifndef FT2_BUILD_GENERIC_H_
|
#ifndef FT2_BUILD_GENERIC_H_
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -15,11 +15,11 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
DELETE := rm -f
|
DELETE := rm -f
|
||||||
CAT := cat
|
CAT := cat
|
||||||
SEP := /
|
SEP := /
|
||||||
PLATFORM_DIR := $(TOP_DIR)/builds/beos
|
BUILD_DIR := $(TOP_DIR)/builds/beos
|
||||||
PLATFORM := beos
|
PLATFORM := beos
|
||||||
|
|
||||||
# This is used for `make refdoc' and `make refdoc-venv'
|
# This is used for `make refdoc' and `make refdoc-venv'
|
||||||
#
|
#
|
||||||
|
@ -66,14 +66,14 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c
|
CFLAGS ?= -c
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?=
|
ANSIFLAGS :=
|
||||||
|
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# FreeType 2 configuration rules for a BeOS system
|
# FreeType 2 configuration rules for a BeOS system
|
||||||
#
|
#
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -27,11 +27,11 @@ endif
|
||||||
|
|
||||||
ifeq ($(PLATFORM),beos)
|
ifeq ($(PLATFORM),beos)
|
||||||
|
|
||||||
DELETE := rm -f
|
DELETE := rm -f
|
||||||
CAT := cat
|
CAT := cat
|
||||||
SEP := /
|
SEP := /
|
||||||
PLATFORM_DIR := $(TOP_DIR)/builds/beos
|
BUILD_DIR := $(TOP_DIR)/builds/beos
|
||||||
CONFIG_FILE := beos.mk
|
CONFIG_FILE := beos.mk
|
||||||
|
|
||||||
setup: std_setup
|
setup: std_setup
|
||||||
|
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
# FindBrotliDec.cmake
|
|
||||||
#
|
|
||||||
# Copyright (C) 2019-2022 by
|
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
||||||
#
|
|
||||||
# Written by Werner Lemberg <wl@gnu.org>
|
|
||||||
#
|
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
|
||||||
# and distributed under the terms of the FreeType project license,
|
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
|
||||||
# indicate that you have read the license and understand and accept it
|
|
||||||
# fully.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Try to find libbrotlidec include and library directories.
|
|
||||||
#
|
|
||||||
# If found, the following variables are set.
|
|
||||||
#
|
|
||||||
# BROTLIDEC_INCLUDE_DIRS
|
|
||||||
# BROTLIDEC_LIBRARIES
|
|
||||||
|
|
||||||
find_package(PkgConfig QUIET)
|
|
||||||
|
|
||||||
pkg_check_modules(PC_BROTLIDEC QUIET libbrotlidec)
|
|
||||||
|
|
||||||
if (PC_BROTLIDEC_VERSION)
|
|
||||||
set(BROTLIDEC_VERSION "${PC_BROTLIDEC_VERSION}")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
|
|
||||||
find_path(BROTLIDEC_INCLUDE_DIRS
|
|
||||||
NAMES brotli/decode.h
|
|
||||||
HINTS ${PC_BROTLIDEC_INCLUDEDIR}
|
|
||||||
${PC_BROTLIDEC_INCLUDE_DIRS}
|
|
||||||
PATH_SUFFIXES brotli)
|
|
||||||
|
|
||||||
find_library(BROTLIDEC_LIBRARIES
|
|
||||||
NAMES brotlidec
|
|
||||||
HINTS ${PC_BROTLIDEC_LIBDIR}
|
|
||||||
${PC_BROTLIDEC_LIBRARY_DIRS})
|
|
||||||
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
find_package_handle_standard_args(
|
|
||||||
BrotliDec
|
|
||||||
REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLIDEC_LIBRARIES
|
|
||||||
FOUND_VAR BROTLIDEC_FOUND
|
|
||||||
VERSION_VAR BROTLIDEC_VERSION)
|
|
||||||
|
|
||||||
mark_as_advanced(
|
|
||||||
BROTLIDEC_INCLUDE_DIRS
|
|
||||||
BROTLIDEC_LIBRARIES)
|
|
|
@ -1,5 +1,4 @@
|
||||||
# Copyright (c) 2012, Intel Corporation
|
# Copyright (c) 2012, Intel Corporation
|
||||||
# Copyright (c) 2019 Sony Interactive Entertainment Inc.
|
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
# modification, are permitted provided that the following conditions are met:
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
@ -28,176 +27,55 @@
|
||||||
# Try to find Harfbuzz include and library directories.
|
# Try to find Harfbuzz include and library directories.
|
||||||
#
|
#
|
||||||
# After successful discovery, this will set for inclusion where needed:
|
# After successful discovery, this will set for inclusion where needed:
|
||||||
# HarfBuzz_INCLUDE_DIRS - containg the HarfBuzz headers
|
# HARFBUZZ_INCLUDE_DIRS - containg the HarfBuzz headers
|
||||||
# HarfBuzz_LIBRARIES - containg the HarfBuzz library
|
# HARFBUZZ_LIBRARIES - containg the HarfBuzz library
|
||||||
|
|
||||||
#[=======================================================================[.rst:
|
include(FindPkgConfig)
|
||||||
FindHarfBuzz
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Find HarfBuzz headers and libraries.
|
|
||||||
|
|
||||||
Imported Targets
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
``HarfBuzz::HarfBuzz``
|
|
||||||
The HarfBuzz library, if found.
|
|
||||||
|
|
||||||
``HarfBuzz::ICU``
|
|
||||||
The HarfBuzz ICU library, if found.
|
|
||||||
|
|
||||||
Result Variables
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
This will define the following variables in your project:
|
|
||||||
|
|
||||||
``HarfBuzz_FOUND``
|
|
||||||
true if (the requested version of) HarfBuzz is available.
|
|
||||||
``HarfBuzz_VERSION``
|
|
||||||
the version of HarfBuzz.
|
|
||||||
``HarfBuzz_LIBRARIES``
|
|
||||||
the libraries to link against to use HarfBuzz.
|
|
||||||
``HarfBuzz_INCLUDE_DIRS``
|
|
||||||
where to find the HarfBuzz headers.
|
|
||||||
``HarfBuzz_COMPILE_OPTIONS``
|
|
||||||
this should be passed to target_compile_options(), if the
|
|
||||||
target is not used for linking
|
|
||||||
|
|
||||||
#]=======================================================================]
|
|
||||||
|
|
||||||
find_package(PkgConfig QUIET)
|
|
||||||
pkg_check_modules(PC_HARFBUZZ QUIET harfbuzz)
|
pkg_check_modules(PC_HARFBUZZ QUIET harfbuzz)
|
||||||
set(HarfBuzz_COMPILE_OPTIONS ${PC_HARFBUZZ_CFLAGS_OTHER})
|
|
||||||
set(HarfBuzz_VERSION ${PC_HARFBUZZ_CFLAGS_VERSION})
|
|
||||||
|
|
||||||
find_path(HarfBuzz_INCLUDE_DIR
|
find_path(HARFBUZZ_INCLUDE_DIRS
|
||||||
NAMES hb.h
|
NAMES hb.h
|
||||||
HINTS ${PC_HARFBUZZ_INCLUDEDIR} ${PC_HARFBUZZ_INCLUDE_DIRS}
|
HINTS ${PC_HARFBUZZ_INCLUDEDIR}
|
||||||
|
${PC_HARFBUZZ_INCLUDE_DIRS}
|
||||||
PATH_SUFFIXES harfbuzz
|
PATH_SUFFIXES harfbuzz
|
||||||
)
|
)
|
||||||
|
|
||||||
find_library(HarfBuzz_LIBRARY
|
find_library(HARFBUZZ_LIBRARIES NAMES harfbuzz
|
||||||
NAMES ${HarfBuzz_NAMES} harfbuzz
|
HINTS ${PC_HARFBUZZ_LIBDIR}
|
||||||
HINTS ${PC_HARFBUZZ_LIBDIR} ${PC_HARFBUZZ_LIBRARY_DIRS}
|
${PC_HARFBUZZ_LIBRARY_DIRS}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (HarfBuzz_INCLUDE_DIR AND NOT HarfBuzz_VERSION)
|
if (HARFBUZZ_INCLUDE_DIRS)
|
||||||
if (EXISTS "${HarfBuzz_INCLUDE_DIR}/hb-version.h")
|
if (EXISTS "${HARFBUZZ_INCLUDE_DIRS}/hb-version.h")
|
||||||
file(READ "${HarfBuzz_INCLUDE_DIR}/hb-version.h" _harfbuzz_version_content)
|
file(READ "${HARFBUZZ_INCLUDE_DIRS}/hb-version.h" _harfbuzz_version_content)
|
||||||
|
|
||||||
string(REGEX MATCH "#define +HB_VERSION_STRING +\"([0-9]+\\.[0-9]+\\.[0-9]+)\"" _dummy "${_harfbuzz_version_content}")
|
string(REGEX MATCH "#define +HB_VERSION_STRING +\"([0-9]+\\.[0-9]+\\.[0-9]+)\"" _dummy "${_harfbuzz_version_content}")
|
||||||
set(HarfBuzz_VERSION "${CMAKE_MATCH_1}")
|
set(HARFBUZZ_VERSION "${CMAKE_MATCH_1}")
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if ("${HarfBuzz_FIND_VERSION}" VERSION_GREATER "${HarfBuzz_VERSION}")
|
if ("${harfbuzz_FIND_VERSION}" VERSION_GREATER "${HARFBUZZ_VERSION}")
|
||||||
if (HarfBuzz_FIND_REQUIRED)
|
message(FATAL_ERROR "Required version (" ${harfbuzz_FIND_VERSION} ") is higher than found version (" ${HARFBUZZ_VERSION} ")")
|
||||||
message(FATAL_ERROR
|
|
||||||
"Required version (" ${HarfBuzz_FIND_VERSION} ")"
|
|
||||||
" is higher than found version (" ${HarfBuzz_VERSION} ")")
|
|
||||||
else ()
|
|
||||||
message(WARNING
|
|
||||||
"Required version (" ${HarfBuzz_FIND_VERSION} ")"
|
|
||||||
" is higher than found version (" ${HarfBuzz_VERSION} ")")
|
|
||||||
unset(HarfBuzz_VERSION)
|
|
||||||
unset(HarfBuzz_INCLUDE_DIRS)
|
|
||||||
unset(HarfBuzz_LIBRARIES)
|
|
||||||
return ()
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# Find components
|
|
||||||
if (HarfBuzz_INCLUDE_DIR AND HarfBuzz_LIBRARY)
|
|
||||||
set(_HarfBuzz_REQUIRED_LIBS_FOUND ON)
|
|
||||||
set(HarfBuzz_LIBS_FOUND "HarfBuzz (required): ${HarfBuzz_LIBRARY}")
|
|
||||||
else ()
|
|
||||||
set(_HarfBuzz_REQUIRED_LIBS_FOUND OFF)
|
|
||||||
set(HarfBuzz_LIBS_NOT_FOUND "HarfBuzz (required)")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (NOT CMAKE_VERSION VERSION_LESS 3.3)
|
|
||||||
if ("ICU" IN_LIST HarfBuzz_FIND_COMPONENTS)
|
|
||||||
pkg_check_modules(PC_HARFBUZZ_ICU QUIET harfbuzz-icu)
|
|
||||||
set(HarfBuzz_ICU_COMPILE_OPTIONS ${PC_HARFBUZZ_ICU_CFLAGS_OTHER})
|
|
||||||
|
|
||||||
find_path(HarfBuzz_ICU_INCLUDE_DIR
|
|
||||||
NAMES hb-icu.h
|
|
||||||
HINTS ${PC_HARFBUZZ_ICU_INCLUDEDIR} ${PC_HARFBUZZ_ICU_INCLUDE_DIRS}
|
|
||||||
PATH_SUFFIXES harfbuzz
|
|
||||||
)
|
|
||||||
|
|
||||||
find_library(HarfBuzz_ICU_LIBRARY
|
|
||||||
NAMES ${HarfBuzz_ICU_NAMES} harfbuzz-icu
|
|
||||||
HINTS ${PC_HARFBUZZ_ICU_LIBDIR} ${PC_HARFBUZZ_ICU_LIBRARY_DIRS}
|
|
||||||
)
|
|
||||||
|
|
||||||
if (HarfBuzz_ICU_LIBRARY)
|
|
||||||
if (HarfBuzz_FIND_REQUIRED_ICU)
|
|
||||||
list(APPEND HarfBuzz_LIBS_FOUND "ICU (required): ${HarfBuzz_ICU_LIBRARY}")
|
|
||||||
else ()
|
|
||||||
list(APPEND HarfBuzz_LIBS_FOUND "ICU (optional): ${HarfBuzz_ICU_LIBRARY}")
|
|
||||||
endif ()
|
|
||||||
else ()
|
|
||||||
if (HarfBuzz_FIND_REQUIRED_ICU)
|
|
||||||
set(_HarfBuzz_REQUIRED_LIBS_FOUND OFF)
|
|
||||||
list(APPEND HarfBuzz_LIBS_NOT_FOUND "ICU (required)")
|
|
||||||
else ()
|
|
||||||
list(APPEND HarfBuzz_LIBS_NOT_FOUND "ICU (optional)")
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (NOT HarfBuzz_FIND_QUIETLY)
|
|
||||||
if (HarfBuzz_LIBS_FOUND)
|
|
||||||
message(STATUS "Found the following HarfBuzz libraries:")
|
|
||||||
foreach (found ${HarfBuzz_LIBS_FOUND})
|
|
||||||
message(STATUS " ${found}")
|
|
||||||
endforeach ()
|
|
||||||
endif ()
|
|
||||||
if (HarfBuzz_LIBS_NOT_FOUND)
|
|
||||||
message(STATUS "The following HarfBuzz libraries were not found:")
|
|
||||||
foreach (found ${HarfBuzz_LIBS_NOT_FOUND})
|
|
||||||
message(STATUS " ${found}")
|
|
||||||
endforeach ()
|
|
||||||
endif ()
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(HarfBuzz
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
|
||||||
FOUND_VAR HarfBuzz_FOUND
|
harfbuzz
|
||||||
REQUIRED_VARS HarfBuzz_INCLUDE_DIR HarfBuzz_LIBRARY _HarfBuzz_REQUIRED_LIBS_FOUND
|
REQUIRED_VARS HARFBUZZ_INCLUDE_DIRS HARFBUZZ_LIBRARIES
|
||||||
VERSION_VAR HarfBuzz_VERSION
|
VERSION_VAR HARFBUZZ_VERSION)
|
||||||
)
|
|
||||||
|
|
||||||
if (NOT CMAKE_VERSION VERSION_LESS 3.1)
|
|
||||||
if (HarfBuzz_LIBRARY AND NOT TARGET HarfBuzz::HarfBuzz)
|
|
||||||
add_library(HarfBuzz::HarfBuzz UNKNOWN IMPORTED GLOBAL)
|
|
||||||
set_target_properties(HarfBuzz::HarfBuzz PROPERTIES
|
|
||||||
IMPORTED_LOCATION "${HarfBuzz_LIBRARY}"
|
|
||||||
INTERFACE_COMPILE_OPTIONS "${HarfBuzz_COMPILE_OPTIONS}"
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${HarfBuzz_INCLUDE_DIR}"
|
|
||||||
)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (HarfBuzz_ICU_LIBRARY AND NOT TARGET HarfBuzz::ICU)
|
|
||||||
add_library(HarfBuzz::ICU UNKNOWN IMPORTED GLOBAL)
|
|
||||||
set_target_properties(HarfBuzz::ICU PROPERTIES
|
|
||||||
IMPORTED_LOCATION "${HarfBuzz_ICU_LIBRARY}"
|
|
||||||
INTERFACE_COMPILE_OPTIONS "${HarfBuzz_ICU_COMPILE_OPTIONS}"
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${HarfBuzz_ICU_INCLUDE_DIR}"
|
|
||||||
)
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
mark_as_advanced(
|
mark_as_advanced(
|
||||||
HarfBuzz_INCLUDE_DIR
|
HARFBUZZ_INCLUDE_DIRS
|
||||||
HarfBuzz_ICU_INCLUDE_DIR
|
HARFBUZZ_LIBRARIES
|
||||||
HarfBuzz_LIBRARY
|
|
||||||
HarfBuzz_ICU_LIBRARY
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if (HarfBuzz_FOUND)
|
# Allows easy linking as in
|
||||||
set(HarfBuzz_LIBRARIES ${HarfBuzz_LIBRARY} ${HarfBuzz_ICU_LIBRARY})
|
# target_link_libraries(freetype PRIVATE Harfbuzz::Harfbuzz)
|
||||||
set(HarfBuzz_INCLUDE_DIRS ${HarfBuzz_INCLUDE_DIR} ${HarfBuzz_ICU_INCLUDE_DIR})
|
if (NOT CMAKE_VERSION VERSION_LESS 3.1)
|
||||||
|
if (HARFBUZZ_FOUND AND NOT TARGET Harfbuzz::Harfbuzz)
|
||||||
|
add_library(Harfbuzz::Harfbuzz INTERFACE IMPORTED)
|
||||||
|
set_target_properties(
|
||||||
|
Harfbuzz::Harfbuzz PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${HARFBUZZ_INCLUDE_DIRS}")
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# iOS.cmake
|
# iOS.cmake
|
||||||
#
|
#
|
||||||
# Copyright (C) 2014-2022 by
|
# Copyright (C) 2014-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# Written by David Wimsey <david@wimsey.us>
|
# Written by David Wimsey <david@wimsey.us>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh -e
|
#!/bin/sh -e
|
||||||
|
|
||||||
# Copyright (C) 2015-2022 by
|
# Copyright (C) 2015-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -93,7 +93,7 @@ cat >$tmpdir/main.c << END
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
#include <freetype/freetype.h>
|
#include FT_FREETYPE_H
|
||||||
|
|
||||||
|
|
||||||
FT_Library library;
|
FT_Library library;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -59,7 +59,7 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c
|
CFLAGS ?= -c
|
||||||
|
@ -68,7 +68,7 @@ CFLAGS ?= -c
|
||||||
#
|
#
|
||||||
# we assume the compiler is already strictly ANSI
|
# we assume the compiler is already strictly ANSI
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?=
|
ANSIFLAGS :=
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -60,14 +60,14 @@ TE := -e
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -q -c -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
|
CFLAGS ?= -q -c -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?= -A
|
ANSIFLAGS := -A
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -60,14 +60,14 @@ TE := -e
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c -q -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
|
CFLAGS ?= -c -q -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?= -A
|
ANSIFLAGS := -A
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2003-2022 by
|
# Copyright (C) 2003-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -58,14 +58,14 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c -g -O6 -Wall
|
CFLAGS ?= -c -g -O6 -Wall
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?=
|
ANSIFLAGS :=
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -59,7 +59,7 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
ifndef CFLAGS
|
ifndef CFLAGS
|
||||||
|
@ -82,9 +82,8 @@ ifndef CFLAGS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
# You can override this on the command line.
|
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?= -std=c99 -pedantic
|
ANSIFLAGS := -ansi -pedantic
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -58,14 +58,14 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c -g -O3 -Wall
|
CFLAGS ?= -c -g -O3 -Wall
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?= -std=c99 -pedantic
|
ANSIFLAGS := -ansi -pedantic
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -61,7 +61,7 @@ TE := /Fe
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
# Note that the Intel C/C++ compiler version 4.5 complains about
|
# Note that the Intel C/C++ compiler version 4.5 complains about
|
||||||
|
@ -74,7 +74,7 @@ CFLAGS ?= /nologo /c /Ox /G5 /W3 /Qwd32
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?= /Qansi_alias /Za
|
ANSIFLAGS := /Qansi_alias /Za
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
#
|
#
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -60,7 +60,7 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c -g
|
CFLAGS ?= -c -g
|
||||||
|
@ -71,7 +71,7 @@ CFLAGS ?= -c -g
|
||||||
#
|
#
|
||||||
# the "-A" flag simply increments verbosity about non ANSI code
|
# the "-A" flag simply increments verbosity about non ANSI code
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?= -A
|
ANSIFLAGS := -A
|
||||||
|
|
||||||
|
|
||||||
# library linking
|
# library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -63,14 +63,14 @@ TE := /Fe
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= /nologo /c /Ox /W3 /WX
|
CFLAGS ?= /nologo /c /Ox /W3 /WX
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?= /Za /D_CRT_SECURE_NO_DEPRECATE
|
ANSIFLAGS := /Za /D_CRT_SECURE_NO_DEPRECATE
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -60,14 +60,14 @@ T := -FO=
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -zq
|
CFLAGS ?= -zq
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?= -za
|
ANSIFLAGS := -za
|
||||||
|
|
||||||
|
|
||||||
# Library linking
|
# Library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -60,7 +60,7 @@ T := -Fo
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
CFLAGS ?= -c -g2 -O
|
CFLAGS ?= -c -g2 -O
|
||||||
|
@ -69,7 +69,7 @@ CFLAGS ?= -c -g2 -O
|
||||||
#
|
#
|
||||||
# LCC is pure ANSI anyway!
|
# LCC is pure ANSI anyway!
|
||||||
#
|
#
|
||||||
ANSIFLAGS ?=
|
ANSIFLAGS :=
|
||||||
|
|
||||||
|
|
||||||
# library linking
|
# library linking
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
# This sub-Makefile is in charge of detecting the current platform. It sets
|
# This sub-Makefile is in charge of detecting the current platform. It sets
|
||||||
# the following variables:
|
# the following variables:
|
||||||
#
|
#
|
||||||
# PLATFORM_DIR The configuration and system-specific directory. Usually
|
# BUILD_DIR The configuration and system-specific directory. Usually
|
||||||
# `builds/$(PLATFORM)' but can be different for custom builds
|
# `builds/$(PLATFORM)' but can be different for custom builds
|
||||||
# of the library.
|
# of the library.
|
||||||
#
|
#
|
||||||
|
@ -49,8 +49,8 @@ SEP := /
|
||||||
BUILD_CONFIG := $(TOP_DIR)/builds
|
BUILD_CONFIG := $(TOP_DIR)/builds
|
||||||
|
|
||||||
# These two assignments must be delayed.
|
# These two assignments must be delayed.
|
||||||
PLATFORM_DIR = $(BUILD_CONFIG)/$(PLATFORM)
|
BUILD_DIR = $(BUILD_CONFIG)/$(PLATFORM)
|
||||||
CONFIG_RULES = $(PLATFORM_DIR)/$(CONFIG_FILE)
|
CONFIG_RULES = $(BUILD_DIR)/$(CONFIG_FILE)
|
||||||
|
|
||||||
# We define the BACKSLASH variable to hold a single back-slash character.
|
# We define the BACKSLASH variable to hold a single back-slash character.
|
||||||
# This is needed because a line like
|
# This is needed because a line like
|
||||||
|
@ -113,14 +113,14 @@ std_setup:
|
||||||
$(info )
|
$(info )
|
||||||
$(info $(empty) platform $(PLATFORM))
|
$(info $(empty) platform $(PLATFORM))
|
||||||
$(info $(empty) compiler $(CC))
|
$(info $(empty) compiler $(CC))
|
||||||
$(info $(empty) configuration directory $(subst /,$(SEP),$(PLATFORM_DIR)))
|
$(info $(empty) configuration directory $(subst /,$(SEP),$(BUILD_DIR)))
|
||||||
$(info $(empty) configuration rules $(subst /,$(SEP),$(CONFIG_RULES)))
|
$(info $(empty) configuration rules $(subst /,$(SEP),$(CONFIG_RULES)))
|
||||||
$(info )
|
$(info )
|
||||||
$(info If this does not correspond to your system or settings please remove the file)
|
$(info If this does not correspond to your system or settings please remove the file)
|
||||||
$(info `$(CONFIG_MK)' from this directory then read the INSTALL file for help.)
|
$(info `$(CONFIG_MK)' from this directory then read the INSTALL file for help.)
|
||||||
$(info )
|
$(info )
|
||||||
$(info Otherwise, simply type `$(MAKE)' again to build the library,)
|
$(info Otherwise, simply type `$(MAKE)' again to build the library,)
|
||||||
$(info or `$(MAKE) refdoc' to build the API reference (this needs Python >= 3.5).)
|
$(info or `$(MAKE) refdoc' to build the API reference (this needs python >= 2.6).)
|
||||||
$(info )
|
$(info )
|
||||||
@$(COPY) $(subst /,$(SEP),$(CONFIG_RULES) $(CONFIG_MK))
|
@$(COPY) $(subst /,$(SEP),$(CONFIG_RULES) $(CONFIG_MK))
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -13,11 +13,11 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
DELETE := del
|
DELETE := del
|
||||||
CAT := type
|
CAT := type
|
||||||
SEP := $(strip \ )
|
SEP := $(strip \ )
|
||||||
PLATFORM_DIR := $(TOP_DIR)/builds/dos
|
BUILD_DIR := $(TOP_DIR)/builds/dos
|
||||||
PLATFORM := dos
|
PLATFORM := dos
|
||||||
|
|
||||||
# This is used for `make refdoc' and `make refdoc-venv'
|
# This is used for `make refdoc' and `make refdoc-venv'
|
||||||
#
|
#
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2003-2022 by
|
# Copyright (C) 2003-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2003-2022 by
|
# Copyright (C) 2003-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 2005-2022 by
|
# Copyright (C) 2005-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -20,8 +20,8 @@
|
||||||
# The following variables (set by other Makefile components, in the
|
# The following variables (set by other Makefile components, in the
|
||||||
# environment, or on the command line) are used:
|
# environment, or on the command line) are used:
|
||||||
#
|
#
|
||||||
# PLATFORM_DIR The architecture-dependent directory,
|
# BUILD_DIR The architecture dependent directory,
|
||||||
# e.g., `$(TOP_DIR)/builds/unix'. Added to INCLUDES also.
|
# e.g. `$(TOP_DIR)/builds/unix'. Added to INCLUDES also.
|
||||||
#
|
#
|
||||||
# OBJ_DIR The directory in which object files are created.
|
# OBJ_DIR The directory in which object files are created.
|
||||||
#
|
#
|
||||||
|
@ -104,7 +104,7 @@ CONFIG_DIR := $(PUBLIC_DIR)/config
|
||||||
|
|
||||||
# The documentation directory.
|
# The documentation directory.
|
||||||
#
|
#
|
||||||
DOC_DIR ?= $(TOP_DIR)/docs
|
DOC_DIR ?= $(TOP_DIR)/docs/reference
|
||||||
|
|
||||||
# The final name of the library file.
|
# The final name of the library file.
|
||||||
#
|
#
|
||||||
|
@ -121,19 +121,17 @@ PROJECT_LIBRARY := $(LIB_DIR)/$(LIBRARY).$A
|
||||||
#
|
#
|
||||||
INCLUDES := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) \
|
INCLUDES := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) \
|
||||||
$(DEVEL_DIR) \
|
$(DEVEL_DIR) \
|
||||||
$(PLATFORM_DIR) \
|
$(BUILD_DIR) \
|
||||||
$(TOP_DIR)/include)
|
$(TOP_DIR)/include)
|
||||||
|
|
||||||
INCLUDE_FLAGS := $(INCLUDES:%=$I%)
|
INCLUDE_FLAGS := $(INCLUDES:%=$I%)
|
||||||
|
|
||||||
# For a development build, we assume that the external library dependencies
|
|
||||||
# defined in `ftoption.h' are fulfilled, so we directly access the necessary
|
|
||||||
# include directory information using `pkg-config'.
|
|
||||||
#
|
|
||||||
ifdef DEVEL_DIR
|
ifdef DEVEL_DIR
|
||||||
INCLUDE_FLAGS += $(shell pkg-config --cflags libpng)
|
# We assume that all library dependencies for FreeType are fulfilled for a
|
||||||
INCLUDE_FLAGS += $(shell pkg-config --cflags harfbuzz)
|
# development build, so we directly access the necessary include directory
|
||||||
INCLUDE_FLAGS += $(shell pkg-config --cflags libbrotlidec)
|
# information using `pkg-config'.
|
||||||
|
INCLUDE_FLAGS += $(shell pkg-config --cflags libpng \
|
||||||
|
harfbuzz )
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -148,13 +146,25 @@ endif
|
||||||
# FreeType. This is required to let our sources include the internal
|
# FreeType. This is required to let our sources include the internal
|
||||||
# headers (something forbidden by clients).
|
# headers (something forbidden by clients).
|
||||||
#
|
#
|
||||||
|
# Finally, we define FT_CONFIG_MODULES_H so that the compiler uses the
|
||||||
|
# generated version of `ftmodule.h' in $(OBJ_DIR). If there is an
|
||||||
|
# `ftoption.h' files in $(OBJ_DIR), define FT_CONFIG_OPTIONS_H too.
|
||||||
|
#
|
||||||
|
ifneq ($(wildcard $(OBJ_DIR)/ftoption.h),)
|
||||||
|
FTOPTION_H := $(OBJ_DIR)/ftoption.h
|
||||||
|
FTOPTION_FLAG := $DFT_CONFIG_OPTIONS_H="<ftoption.h>"
|
||||||
|
else ifneq ($(wildcard $(BUILD_DIR)/ftoption.h),)
|
||||||
|
FTOPTION_H := $(BUILD_DIR)/ftoption.h
|
||||||
|
FTOPTION_FLAG := $DFT_CONFIG_OPTIONS_H="<ftoption.h>"
|
||||||
|
endif
|
||||||
|
|
||||||
# `CPPFLAGS' might be specified by the user in the environment.
|
# `CPPFLAGS' might be specified by the user in the environment.
|
||||||
#
|
#
|
||||||
FT_CFLAGS = $(CPPFLAGS) \
|
FT_CFLAGS = $(CPPFLAGS) \
|
||||||
$(CFLAGS) \
|
$(CFLAGS) \
|
||||||
$DFT2_BUILD_LIBRARY
|
$DFT2_BUILD_LIBRARY \
|
||||||
|
$DFT_CONFIG_MODULES_H="<ftmodule.h>" \
|
||||||
FT_COMPILE := $(CC) $(ANSIFLAGS) $(INCLUDE_FLAGS) $(FT_CFLAGS)
|
$(FTOPTION_FLAG)
|
||||||
|
|
||||||
|
|
||||||
# Include the `exports' rules file.
|
# Include the `exports' rules file.
|
||||||
|
@ -169,22 +179,16 @@ OBJECTS_LIST :=
|
||||||
|
|
||||||
# Define $(PUBLIC_H) as the list of all public header files located in
|
# Define $(PUBLIC_H) as the list of all public header files located in
|
||||||
# `$(TOP_DIR)/include/freetype'. $(INTERNAL_H), and $(CONFIG_H) are defined
|
# `$(TOP_DIR)/include/freetype'. $(INTERNAL_H), and $(CONFIG_H) are defined
|
||||||
# similarly. $(FTOPTION_H) is the option file used in the compilation.
|
# similarly.
|
||||||
#
|
#
|
||||||
# This is used to simplify the dependency rules -- if one of these files
|
# This is used to simplify the dependency rules -- if one of these files
|
||||||
# changes, the whole library is recompiled.
|
# changes, the whole library is recompiled.
|
||||||
#
|
#
|
||||||
ifneq ($(wildcard $(OBJ_DIR)/ftoption.h),)
|
|
||||||
FTOPTION_H := $(OBJ_DIR)/ftoption.h
|
|
||||||
else ifneq ($(wildcard $(PLATFORM_DIR)/ftoption.h),)
|
|
||||||
FTOPTION_H := $(PLATFORM_DIR)/ftoption.h
|
|
||||||
endif
|
|
||||||
|
|
||||||
PUBLIC_H := $(wildcard $(PUBLIC_DIR)/*.h)
|
PUBLIC_H := $(wildcard $(PUBLIC_DIR)/*.h)
|
||||||
INTERNAL_H := $(wildcard $(INTERNAL_DIR)/*.h) \
|
INTERNAL_H := $(wildcard $(INTERNAL_DIR)/*.h) \
|
||||||
$(wildcard $(SERVICES_DIR)/*.h)
|
$(wildcard $(SERVICES_DIR)/*.h)
|
||||||
CONFIG_H := $(wildcard $(CONFIG_DIR)/*.h) \
|
CONFIG_H := $(wildcard $(CONFIG_DIR)/*.h) \
|
||||||
$(wildcard $(PLATFORM_DIR)/config/*.h) \
|
$(wildcard $(BUILD_DIR)/config/*.h) \
|
||||||
$(FTMODULE_H) \
|
$(FTMODULE_H) \
|
||||||
$(FTOPTION_H)
|
$(FTOPTION_H)
|
||||||
DEVEL_H := $(wildcard $(TOP_DIR)/devel/*.h)
|
DEVEL_H := $(wildcard $(TOP_DIR)/devel/*.h)
|
||||||
|
@ -192,6 +196,8 @@ DEVEL_H := $(wildcard $(TOP_DIR)/devel/*.h)
|
||||||
FREETYPE_H := $(PUBLIC_H) $(INTERNAL_H) $(CONFIG_H) $(DEVEL_H)
|
FREETYPE_H := $(PUBLIC_H) $(INTERNAL_H) $(CONFIG_H) $(DEVEL_H)
|
||||||
|
|
||||||
|
|
||||||
|
FT_COMPILE := $(CC) $(ANSIFLAGS) $(INCLUDE_FLAGS) $(FT_CFLAGS)
|
||||||
|
|
||||||
# ftsystem component
|
# ftsystem component
|
||||||
#
|
#
|
||||||
FTSYS_SRC ?= $(BASE_DIR)/ftsystem.c
|
FTSYS_SRC ?= $(BASE_DIR)/ftsystem.c
|
||||||
|
@ -220,7 +226,6 @@ $(FTDEBUG_OBJ): $(FTDEBUG_SRC) $(FREETYPE_H)
|
||||||
#
|
#
|
||||||
include $(SRC_DIR)/base/rules.mk
|
include $(SRC_DIR)/base/rules.mk
|
||||||
include $(patsubst %,$(SRC_DIR)/%/rules.mk,$(MODULES))
|
include $(patsubst %,$(SRC_DIR)/%/rules.mk,$(MODULES))
|
||||||
include $(SRC_DIR)/dlg/rules.mk
|
|
||||||
|
|
||||||
|
|
||||||
# ftinit component
|
# ftinit component
|
||||||
|
@ -261,8 +266,8 @@ endif
|
||||||
|
|
||||||
# All FreeType library objects.
|
# All FreeType library objects.
|
||||||
#
|
#
|
||||||
OBJ_M := $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M) $(DLG_OBJS_M)
|
OBJ_M := $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M)
|
||||||
OBJ_S := $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S) $(DLG_OBJS_S)
|
OBJ_S := $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S)
|
||||||
|
|
||||||
|
|
||||||
# The target `multi' on the Make command line indicates that we want to
|
# The target `multi' on the Make command line indicates that we want to
|
||||||
|
@ -285,15 +290,17 @@ objects: $(OBJECTS_LIST)
|
||||||
library: $(PROJECT_LIBRARY)
|
library: $(PROJECT_LIBRARY)
|
||||||
|
|
||||||
# Run `docwriter' in the current Python environment.
|
# Run `docwriter' in the current Python environment.
|
||||||
|
# Option `-B' disables generation of .pyc files (available since python 2.6)
|
||||||
#
|
#
|
||||||
|
|
||||||
PYTHON ?= python
|
PYTHON ?= python
|
||||||
|
PIP ?= pip
|
||||||
|
|
||||||
refdoc:
|
refdoc:
|
||||||
@echo Running docwriter...
|
@echo Running docwriter...
|
||||||
$(PYTHON) -m docwriter \
|
$(PYTHON) -m docwriter \
|
||||||
--prefix=ft2 \
|
--prefix=ft2 \
|
||||||
--title=FreeType-$(version) \
|
--title=FreeType-$(version) \
|
||||||
--site=reference \
|
|
||||||
--output=$(DOC_DIR) \
|
--output=$(DOC_DIR) \
|
||||||
$(PUBLIC_DIR)/*.h \
|
$(PUBLIC_DIR)/*.h \
|
||||||
$(PUBLIC_DIR)/config/*.h \
|
$(PUBLIC_DIR)/config/*.h \
|
||||||
|
@ -311,17 +318,17 @@ refdoc:
|
||||||
VENV_NAME := env
|
VENV_NAME := env
|
||||||
VENV_DIR := $(DOC_DIR)$(SEP)$(VENV_NAME)
|
VENV_DIR := $(DOC_DIR)$(SEP)$(VENV_NAME)
|
||||||
ENV_PYTHON := $(VENV_DIR)$(SEP)$(BIN)$(SEP)$(PYTHON)
|
ENV_PYTHON := $(VENV_DIR)$(SEP)$(BIN)$(SEP)$(PYTHON)
|
||||||
|
ENV_PIP := $(VENV_DIR)$(SEP)$(BIN)$(SEP)$(PIP)
|
||||||
|
|
||||||
refdoc-venv:
|
refdoc-venv:
|
||||||
@echo Setting up virtualenv for Python...
|
@echo Setting up virtualenv for Python...
|
||||||
virtualenv --python=$(PYTHON) $(VENV_DIR)
|
virtualenv --python=$(PYTHON) $(VENV_DIR)
|
||||||
@echo Installing docwriter...
|
@echo Installing docwriter...
|
||||||
$(ENV_PYTHON) -m pip install docwriter
|
$(ENV_PIP) install docwriter
|
||||||
@echo Running docwriter...
|
@echo Running docwriter...
|
||||||
$(ENV_PYTHON) -m docwriter \
|
$(ENV_PYTHON) -m docwriter \
|
||||||
--prefix=ft2 \
|
--prefix=ft2 \
|
||||||
--title=FreeType-$(version) \
|
--title=FreeType-$(version) \
|
||||||
--site=reference \
|
|
||||||
--output=$(DOC_DIR) \
|
--output=$(DOC_DIR) \
|
||||||
$(PUBLIC_DIR)/*.h \
|
$(PUBLIC_DIR)/*.h \
|
||||||
$(PUBLIC_DIR)/config/*.h \
|
$(PUBLIC_DIR)/config/*.h \
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<string>English</string>
|
<string>English</string>
|
||||||
|
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>freetype</string>
|
<string>FreeType</string>
|
||||||
|
|
||||||
<key>CFBundleGetInfoString</key>
|
<key>CFBundleGetInfoString</key>
|
||||||
<string>FreeType ${PROJECT_VERSION}</string>
|
<string>FreeType ${PROJECT_VERSION}</string>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
/* Mac FOND support. Written by just@letterror.com. */
|
/* Mac FOND support. Written by just@letterror.com. */
|
||||||
/* Heavily Fixed by mpsuzuki, George Williams and Sean McBride */
|
/* Heavily Fixed by mpsuzuki, George Williams and Sean McBride */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (C) 1996-2022 by */
|
/* Copyright (C) 1996-2019 by */
|
||||||
/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -62,9 +62,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <freetype/freetype.h>
|
#include <ft2build.h>
|
||||||
#include <freetype/tttags.h>
|
#include FT_FREETYPE_H
|
||||||
#include <freetype/internal/ftstream.h>
|
#include FT_TRUETYPE_TAGS_H
|
||||||
|
#include FT_INTERNAL_STREAM_H
|
||||||
#include "ftbase.h"
|
#include "ftbase.h"
|
||||||
|
|
||||||
#if defined( __GNUC__ ) || defined( __IBMC__ )
|
#if defined( __GNUC__ ) || defined( __IBMC__ )
|
||||||
|
@ -97,7 +98,7 @@
|
||||||
|
|
||||||
#define FT_DEPRECATED_ATTRIBUTE
|
#define FT_DEPRECATED_ATTRIBUTE
|
||||||
|
|
||||||
#include <freetype/ftmac.h>
|
#include FT_MAC_H
|
||||||
|
|
||||||
/* undefine blocking-macros in ftmac.h */
|
/* undefine blocking-macros in ftmac.h */
|
||||||
#undef FT_GetFile_From_Mac_Name
|
#undef FT_GetFile_From_Mac_Name
|
||||||
|
@ -447,7 +448,7 @@ typedef short ResourceIndex;
|
||||||
|
|
||||||
stream->descriptor.pointer = NULL;
|
stream->descriptor.pointer = NULL;
|
||||||
stream->size = 0;
|
stream->size = 0;
|
||||||
stream->base = NULL;
|
stream->base = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -939,7 +940,7 @@ typedef short ResourceIndex;
|
||||||
if ( lwfn_file_name[0] )
|
if ( lwfn_file_name[0] )
|
||||||
{
|
{
|
||||||
err = lookup_lwfn_by_fond( pathname, lwfn_file_name,
|
err = lookup_lwfn_by_fond( pathname, lwfn_file_name,
|
||||||
buff, sizeof ( buff ) );
|
buff, sizeof ( buff ) );
|
||||||
if ( !err )
|
if ( !err )
|
||||||
have_lwfn = 1;
|
have_lwfn = 1;
|
||||||
}
|
}
|
||||||
|
@ -1011,7 +1012,7 @@ typedef short ResourceIndex;
|
||||||
old_total_size = total_size;
|
old_total_size = total_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( FT_QALLOC( buffer, (FT_Long)total_size ) )
|
if ( FT_ALLOC( buffer, (FT_Long)total_size ) )
|
||||||
goto Error;
|
goto Error;
|
||||||
|
|
||||||
/* Second pass: append all POST data to the buffer, add PFB fields. */
|
/* Second pass: append all POST data to the buffer, add PFB fields. */
|
||||||
|
@ -1127,7 +1128,7 @@ typedef short ResourceIndex;
|
||||||
return FT_THROW( Invalid_Handle );
|
return FT_THROW( Invalid_Handle );
|
||||||
|
|
||||||
sfnt_size = (FT_ULong)GetHandleSize( sfnt );
|
sfnt_size = (FT_ULong)GetHandleSize( sfnt );
|
||||||
if ( FT_QALLOC( sfnt_data, (FT_Long)sfnt_size ) )
|
if ( FT_ALLOC( sfnt_data, (FT_Long)sfnt_size ) )
|
||||||
{
|
{
|
||||||
ReleaseResource( sfnt );
|
ReleaseResource( sfnt );
|
||||||
return error;
|
return error;
|
||||||
|
|
|
@ -1,117 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# Copyright (C) 2020-2022 by
|
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
||||||
#
|
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
|
||||||
# and distributed under the terms of the FreeType project license,
|
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
|
||||||
# indicate that you have read the license and understand and accept it
|
|
||||||
# fully.
|
|
||||||
|
|
||||||
"""Extract the FreeType version numbers from `<freetype/freetype.h>`.
|
|
||||||
|
|
||||||
This script parses the header to extract the version number defined there.
|
|
||||||
By default, the full dotted version number is printed, but `--major`,
|
|
||||||
`--minor` or `--patch` can be used to only print one of these values
|
|
||||||
instead.
|
|
||||||
"""
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
# Expected input:
|
|
||||||
#
|
|
||||||
# ...
|
|
||||||
# #define FREETYPE_MAJOR 2
|
|
||||||
# #define FREETYPE_MINOR 10
|
|
||||||
# #define FREETYPE_PATCH 2
|
|
||||||
# ...
|
|
||||||
|
|
||||||
RE_MAJOR = re.compile(r"^ \#define \s+ FREETYPE_MAJOR \s+ (.*) $", re.X)
|
|
||||||
RE_MINOR = re.compile(r"^ \#define \s+ FREETYPE_MINOR \s+ (.*) $", re.X)
|
|
||||||
RE_PATCH = re.compile(r"^ \#define \s+ FREETYPE_PATCH \s+ (.*) $", re.X)
|
|
||||||
|
|
||||||
|
|
||||||
def parse_freetype_header(header):
|
|
||||||
major = None
|
|
||||||
minor = None
|
|
||||||
patch = None
|
|
||||||
|
|
||||||
for line in header.splitlines():
|
|
||||||
line = line.rstrip()
|
|
||||||
m = RE_MAJOR.match(line)
|
|
||||||
if m:
|
|
||||||
assert major == None, "FREETYPE_MAJOR appears more than once!"
|
|
||||||
major = m.group(1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
m = RE_MINOR.match(line)
|
|
||||||
if m:
|
|
||||||
assert minor == None, "FREETYPE_MINOR appears more than once!"
|
|
||||||
minor = m.group(1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
m = RE_PATCH.match(line)
|
|
||||||
if m:
|
|
||||||
assert patch == None, "FREETYPE_PATCH appears more than once!"
|
|
||||||
patch = m.group(1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
assert (
|
|
||||||
major and minor and patch
|
|
||||||
), "This header is missing one of FREETYPE_MAJOR, FREETYPE_MINOR or FREETYPE_PATCH!"
|
|
||||||
|
|
||||||
return (major, minor, patch)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser(description=__doc__)
|
|
||||||
|
|
||||||
group = parser.add_mutually_exclusive_group()
|
|
||||||
group.add_argument(
|
|
||||||
"--major",
|
|
||||||
action="store_true",
|
|
||||||
help="Only print the major version number.",
|
|
||||||
)
|
|
||||||
group.add_argument(
|
|
||||||
"--minor",
|
|
||||||
action="store_true",
|
|
||||||
help="Only print the minor version number.",
|
|
||||||
)
|
|
||||||
group.add_argument(
|
|
||||||
"--patch",
|
|
||||||
action="store_true",
|
|
||||||
help="Only print the patch version number.",
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"input",
|
|
||||||
metavar="FREETYPE_H",
|
|
||||||
help="The input freetype.h header to parse.",
|
|
||||||
)
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
with open(args.input) as f:
|
|
||||||
header = f.read()
|
|
||||||
|
|
||||||
version = parse_freetype_header(header)
|
|
||||||
|
|
||||||
if args.major:
|
|
||||||
print(version[0])
|
|
||||||
elif args.minor:
|
|
||||||
print(version[1])
|
|
||||||
elif args.patch:
|
|
||||||
print(version[2])
|
|
||||||
else:
|
|
||||||
print("%s.%s.%s" % version)
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
sys.exit(main())
|
|
|
@ -1,115 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# Copyright (C) 2020-2022 by
|
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
||||||
#
|
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
|
||||||
# and distributed under the terms of the FreeType project license,
|
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
|
||||||
# indicate that you have read the license and understand and accept it
|
|
||||||
# fully.
|
|
||||||
|
|
||||||
"""Extract the libtool version from `configure.raw`.
|
|
||||||
|
|
||||||
This script parses the `configure.raw` file to extract the libtool version
|
|
||||||
number. By default, the full dotted version number is printed, but
|
|
||||||
`--major`, `--minor` or `--patch` can be used to only print one of these
|
|
||||||
values instead.
|
|
||||||
"""
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
# Expected input:
|
|
||||||
#
|
|
||||||
# ...
|
|
||||||
# version_info='23:2:17'
|
|
||||||
# ...
|
|
||||||
|
|
||||||
RE_VERSION_INFO = re.compile(r"^version_info='(\d+):(\d+):(\d+)'")
|
|
||||||
|
|
||||||
|
|
||||||
def parse_configure_raw(header):
|
|
||||||
major = None
|
|
||||||
minor = None
|
|
||||||
patch = None
|
|
||||||
|
|
||||||
for line in header.splitlines():
|
|
||||||
line = line.rstrip()
|
|
||||||
m = RE_VERSION_INFO.match(line)
|
|
||||||
if m:
|
|
||||||
assert major == None, "version_info appears more than once!"
|
|
||||||
major = m.group(1)
|
|
||||||
minor = m.group(2)
|
|
||||||
patch = m.group(3)
|
|
||||||
continue
|
|
||||||
|
|
||||||
assert (
|
|
||||||
major and minor and patch
|
|
||||||
), "This input file is missing a version_info definition!"
|
|
||||||
|
|
||||||
return (major, minor, patch)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser(description=__doc__)
|
|
||||||
|
|
||||||
group = parser.add_mutually_exclusive_group()
|
|
||||||
group.add_argument(
|
|
||||||
"--major",
|
|
||||||
action="store_true",
|
|
||||||
help="Only print the major version number.",
|
|
||||||
)
|
|
||||||
group.add_argument(
|
|
||||||
"--minor",
|
|
||||||
action="store_true",
|
|
||||||
help="Only print the minor version number.",
|
|
||||||
)
|
|
||||||
group.add_argument(
|
|
||||||
"--patch",
|
|
||||||
action="store_true",
|
|
||||||
help="Only print the patch version number.",
|
|
||||||
)
|
|
||||||
group.add_argument(
|
|
||||||
"--soversion",
|
|
||||||
action="store_true",
|
|
||||||
help="Only print the libtool library suffix.",
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"input",
|
|
||||||
metavar="CONFIGURE_RAW",
|
|
||||||
help="The input configure.raw file to parse.",
|
|
||||||
)
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
with open(args.input) as f:
|
|
||||||
raw_file = f.read()
|
|
||||||
|
|
||||||
version = parse_configure_raw(raw_file)
|
|
||||||
|
|
||||||
if args.major:
|
|
||||||
print(version[0])
|
|
||||||
elif args.minor:
|
|
||||||
print(version[1])
|
|
||||||
elif args.patch:
|
|
||||||
print(version[2])
|
|
||||||
elif args.soversion:
|
|
||||||
# Convert libtool version_info to the library suffix.
|
|
||||||
# (current,revision, age) -> (current - age, age, revision)
|
|
||||||
print(
|
|
||||||
"%d.%s.%s"
|
|
||||||
% (int(version[0]) - int(version[2]), version[2], version[1])
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
print("%s.%s.%s" % version)
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
sys.exit(main())
|
|
|
@ -1,89 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# Copyright (C) 2020-2022 by
|
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
||||||
#
|
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
|
||||||
# and distributed under the terms of the FreeType project license,
|
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
|
||||||
# indicate that you have read the license and understand and accept it
|
|
||||||
# fully.
|
|
||||||
|
|
||||||
"""Generate FreeType reference documentation."""
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import glob
|
|
||||||
import os
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser(description=__doc__)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"--input-dir",
|
|
||||||
required=True,
|
|
||||||
help="Top-level FreeType source directory.",
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"--version", required=True, help='FreeType version (e.g. "2.x.y").'
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"--output-dir", required=True, help="Output directory."
|
|
||||||
)
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
# Get the list of input files of interest.
|
|
||||||
include_dir = os.path.join(args.input_dir, "include")
|
|
||||||
include_config_dir = os.path.join(include_dir, "config")
|
|
||||||
include_cache_dir = os.path.join(include_dir, "cache")
|
|
||||||
|
|
||||||
all_headers = (
|
|
||||||
glob.glob(os.path.join(args.input_dir, "include", "freetype", "*.h"))
|
|
||||||
+ glob.glob(
|
|
||||||
os.path.join(
|
|
||||||
args.input_dir, "include", "freetype", "config", "*.h"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
+ glob.glob(
|
|
||||||
os.path.join(
|
|
||||||
args.input_dir, "include", "freetype", "cache", "*.h"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if not os.path.exists(args.output_dir):
|
|
||||||
os.makedirs(args.output_dir)
|
|
||||||
else:
|
|
||||||
assert os.path.isdir(args.output_dir), (
|
|
||||||
"Not a directory: " + args.output_dir
|
|
||||||
)
|
|
||||||
|
|
||||||
cmds = [
|
|
||||||
sys.executable,
|
|
||||||
"-m",
|
|
||||||
"docwriter",
|
|
||||||
"--prefix=ft2",
|
|
||||||
"--title=FreeType-" + args.version,
|
|
||||||
"--site=reference",
|
|
||||||
"--output=" + args.output_dir,
|
|
||||||
] + all_headers
|
|
||||||
|
|
||||||
print("Running docwriter...")
|
|
||||||
subprocess.check_call(cmds)
|
|
||||||
|
|
||||||
print("Building static site...")
|
|
||||||
subprocess.check_call(
|
|
||||||
[sys.executable, "-m", "mkdocs", "build"], cwd=args.output_dir
|
|
||||||
)
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
sys.exit(main())
|
|
|
@ -1,171 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# Copyright (C) 2020-2022 by
|
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
||||||
#
|
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
|
||||||
# and distributed under the terms of the FreeType project license,
|
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
|
||||||
# indicate that you have read the license and understand and accept it
|
|
||||||
# fully.
|
|
||||||
|
|
||||||
"""Parse modules.cfg and dump its output either as ftmodule.h or a list of
|
|
||||||
base extensions.
|
|
||||||
"""
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
# Expected input:
|
|
||||||
#
|
|
||||||
# ...
|
|
||||||
# FONT_MODULES += <name>
|
|
||||||
# HINTING_MODULES += <name>
|
|
||||||
# RASTER_MODULES += <name>
|
|
||||||
# AUX_MODULES += <name>
|
|
||||||
# BASE_EXTENSIONS += <name>
|
|
||||||
# ...
|
|
||||||
|
|
||||||
|
|
||||||
def parse_modules_cfg(input_file):
|
|
||||||
|
|
||||||
lists = {
|
|
||||||
"FONT_MODULES": [],
|
|
||||||
"HINTING_MODULES": [],
|
|
||||||
"RASTER_MODULES": [],
|
|
||||||
"AUX_MODULES": [],
|
|
||||||
"BASE_EXTENSIONS": [],
|
|
||||||
}
|
|
||||||
|
|
||||||
for line in input_file.splitlines():
|
|
||||||
line = line.rstrip()
|
|
||||||
# Ignore empty lines and those that start with a comment.
|
|
||||||
if not line or line[0] == "#":
|
|
||||||
continue
|
|
||||||
|
|
||||||
items = line.split()
|
|
||||||
assert len(items) == 3 and items[1] == "+=", (
|
|
||||||
"Unexpected input line [%s]" % line
|
|
||||||
)
|
|
||||||
assert items[0] in lists, (
|
|
||||||
"Unexpected configuration variable name " + items[0]
|
|
||||||
)
|
|
||||||
|
|
||||||
lists[items[0]].append(items[2])
|
|
||||||
|
|
||||||
return lists
|
|
||||||
|
|
||||||
|
|
||||||
def generate_ftmodule(lists):
|
|
||||||
result = "/* This is a generated file. */\n"
|
|
||||||
for driver in lists["FONT_MODULES"]:
|
|
||||||
if driver == "sfnt": # Special case for the sfnt 'driver'.
|
|
||||||
result += "FT_USE_MODULE( FT_Module_Class, sfnt_module_class )\n"
|
|
||||||
continue
|
|
||||||
|
|
||||||
name = {
|
|
||||||
"truetype": "tt",
|
|
||||||
"type1": "t1",
|
|
||||||
"cid": "t1cid",
|
|
||||||
"type42": "t42",
|
|
||||||
"winfonts": "winfnt",
|
|
||||||
}.get(driver, driver)
|
|
||||||
result += (
|
|
||||||
"FT_USE_MODULE( FT_Driver_ClassRec, %s_driver_class )\n" % name
|
|
||||||
)
|
|
||||||
|
|
||||||
for module in lists["HINTING_MODULES"]:
|
|
||||||
result += (
|
|
||||||
"FT_USE_MODULE( FT_Module_Class, %s_module_class )\n" % module
|
|
||||||
)
|
|
||||||
|
|
||||||
for module in lists["RASTER_MODULES"]:
|
|
||||||
name = {
|
|
||||||
"raster": "ft_raster1",
|
|
||||||
"smooth": "ft_smooth",
|
|
||||||
"svg": "ft_svg",
|
|
||||||
}.get(module)
|
|
||||||
result += (
|
|
||||||
"FT_USE_MODULE( FT_Renderer_Class, %s_renderer_class )\n" % name
|
|
||||||
)
|
|
||||||
|
|
||||||
for module in lists["AUX_MODULES"]:
|
|
||||||
if module in ("psaux", "psnames", "otvalid", "gxvalid"):
|
|
||||||
result += (
|
|
||||||
"FT_USE_MODULE( FT_Module_Class, %s_module_class )\n" % module
|
|
||||||
)
|
|
||||||
|
|
||||||
result += "/* EOF */\n"
|
|
||||||
return result
|
|
||||||
|
|
||||||
|
|
||||||
def generate_main_modules(lists):
|
|
||||||
return "\n".join(
|
|
||||||
lists["FONT_MODULES"]
|
|
||||||
+ lists["HINTING_MODULES"]
|
|
||||||
+ lists["RASTER_MODULES"]
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def generate_aux_modules(lists):
|
|
||||||
return "\n".join(lists["AUX_MODULES"])
|
|
||||||
|
|
||||||
|
|
||||||
def generate_base_extensions(lists):
|
|
||||||
return "\n".join(lists["BASE_EXTENSIONS"])
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser(description=__doc__)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"--format",
|
|
||||||
required=True,
|
|
||||||
choices=(
|
|
||||||
"ftmodule.h",
|
|
||||||
"main-modules",
|
|
||||||
"aux-modules",
|
|
||||||
"base-extensions-list",
|
|
||||||
),
|
|
||||||
help="Select output format.",
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"input",
|
|
||||||
metavar="CONFIGURE_RAW",
|
|
||||||
help="The input configure.raw file to parse.",
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument("--output", help="Output file (default is stdout).")
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
with open(args.input) as f:
|
|
||||||
input_data = f.read()
|
|
||||||
|
|
||||||
lists = parse_modules_cfg(input_data)
|
|
||||||
|
|
||||||
if args.format == "ftmodule.h":
|
|
||||||
result = generate_ftmodule(lists)
|
|
||||||
elif args.format == "main-modules":
|
|
||||||
result = generate_main_modules(lists)
|
|
||||||
elif args.format == "aux-modules":
|
|
||||||
result = generate_aux_modules(lists)
|
|
||||||
elif args.format == "base-extensions-list":
|
|
||||||
result = generate_base_extensions(lists)
|
|
||||||
else:
|
|
||||||
assert False, "Invalid output format!"
|
|
||||||
|
|
||||||
if args.output:
|
|
||||||
with open(args.output, "w") as f:
|
|
||||||
f.write(result)
|
|
||||||
else:
|
|
||||||
print(result)
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
sys.exit(main())
|
|
|
@ -1,115 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# Copyright (C) 2020-2022 by
|
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
||||||
#
|
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
|
||||||
# and distributed under the terms of the FreeType project license,
|
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
|
||||||
# indicate that you have read the license and understand and accept it
|
|
||||||
# fully.
|
|
||||||
|
|
||||||
"""Toggle settings in `ftoption.h` file based on command-line arguments.
|
|
||||||
|
|
||||||
This script takes an `ftoption.h` file as input and rewrites
|
|
||||||
`#define`/`#undef` lines in it based on `--enable=CONFIG_VARNAME` or
|
|
||||||
`--disable=CONFIG_VARNAME` arguments passed to it, where `CONFIG_VARNAME` is
|
|
||||||
configuration variable name, such as `FT_CONFIG_OPTION_USE_LZW`, that may
|
|
||||||
appear in the file.
|
|
||||||
|
|
||||||
Note that if one of `CONFIG_VARNAME` is not found in the input file, this
|
|
||||||
script exits with an error message listing the missing variable names.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser(description=__doc__)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"input", metavar="FTOPTION_H", help="Path to input ftoption.h file."
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument("--output", help="Output to file instead of stdout.")
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"--enable",
|
|
||||||
action="append",
|
|
||||||
default=[],
|
|
||||||
help="Enable a given build option (e.g. FT_CONFIG_OPTION_USE_LZW).",
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"--disable",
|
|
||||||
action="append",
|
|
||||||
default=[],
|
|
||||||
help="Disable a given build option.",
|
|
||||||
)
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
common_options = set(args.enable) & set(args.disable)
|
|
||||||
if common_options:
|
|
||||||
parser.error(
|
|
||||||
"Options cannot be both enabled and disabled: %s"
|
|
||||||
% sorted(common_options)
|
|
||||||
)
|
|
||||||
return 1
|
|
||||||
|
|
||||||
with open(args.input) as f:
|
|
||||||
input_file = f.read()
|
|
||||||
|
|
||||||
options_seen = set()
|
|
||||||
|
|
||||||
new_lines = []
|
|
||||||
for line in input_file.splitlines():
|
|
||||||
# Expected formats:
|
|
||||||
# #define <CONFIG_VAR>
|
|
||||||
# /* #define <CONFIG_VAR> */
|
|
||||||
# #undef <CONFIG_VAR>
|
|
||||||
line = line.rstrip()
|
|
||||||
if line.startswith("/* #define ") and line.endswith(" */"):
|
|
||||||
option_name = line[11:-3].strip()
|
|
||||||
option_enabled = False
|
|
||||||
elif line.startswith("#define "):
|
|
||||||
option_name = line[8:].strip()
|
|
||||||
option_enabled = True
|
|
||||||
elif line.startswith("#undef "):
|
|
||||||
option_name = line[7:].strip()
|
|
||||||
option_enabled = False
|
|
||||||
else:
|
|
||||||
new_lines.append(line)
|
|
||||||
continue
|
|
||||||
|
|
||||||
options_seen.add(option_name)
|
|
||||||
if option_enabled and option_name in args.disable:
|
|
||||||
line = "#undef " + option_name
|
|
||||||
elif not option_enabled and option_name in args.enable:
|
|
||||||
line = "#define " + option_name
|
|
||||||
new_lines.append(line)
|
|
||||||
|
|
||||||
result = "\n".join(new_lines) + "\n"
|
|
||||||
|
|
||||||
# Sanity check that all command-line options were actually processed.
|
|
||||||
cmdline_options = set(args.enable) | set(args.disable)
|
|
||||||
assert cmdline_options.issubset(
|
|
||||||
options_seen
|
|
||||||
), "Could not find options in input file: " + ", ".join(
|
|
||||||
sorted(cmdline_options - options_seen)
|
|
||||||
)
|
|
||||||
|
|
||||||
if args.output:
|
|
||||||
with open(args.output, "w") as f:
|
|
||||||
f.write(result)
|
|
||||||
else:
|
|
||||||
print(result)
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
sys.exit(main())
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -13,11 +13,11 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
DELETE := del
|
DELETE := del
|
||||||
CAT := type
|
CAT := type
|
||||||
SEP := $(strip \ )
|
SEP := $(strip \ )
|
||||||
PLATFORM_DIR := $(TOP_DIR)/builds/os2
|
BUILD_DIR := $(TOP_DIR)/builds/os2
|
||||||
PLATFORM := os2
|
PLATFORM := os2
|
||||||
|
|
||||||
# This is used for `make refdoc' and `make refdoc-venv'
|
# This is used for `make refdoc' and `make refdoc-venv'
|
||||||
#
|
#
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// FreeType 2 project for the symbian platform
|
// FreeType 2 project for the symbian platform
|
||||||
//
|
//
|
||||||
|
|
||||||
// Copyright (C) 2008-2022 by
|
// Copyright (C) 2008-2019 by
|
||||||
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
//
|
//
|
||||||
// This file is part of the FreeType project, and may only be used, modified,
|
// This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// FreeType 2 makefile for the symbian platform
|
// FreeType 2 makefile for the symbian platform
|
||||||
//
|
//
|
||||||
|
|
||||||
// Copyright (C) 2008-2022 by
|
// Copyright (C) 2008-2019 by
|
||||||
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
//
|
//
|
||||||
// This file is part of the FreeType project, and may only be used, modified,
|
// This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -103,7 +103,6 @@ ifneq ($(findstring setup,$(MAKECMDGOALS)),)
|
||||||
check_platform := 1
|
check_platform := 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Include the automatic host platform detection rules when we need to
|
# Include the automatic host platform detection rules when we need to
|
||||||
# check the platform.
|
# check the platform.
|
||||||
#
|
#
|
||||||
|
@ -113,17 +112,6 @@ ifdef check_platform
|
||||||
|
|
||||||
include $(TOP_DIR)/builds/detect.mk
|
include $(TOP_DIR)/builds/detect.mk
|
||||||
|
|
||||||
# For builds directly from the git repository we need to copy files
|
|
||||||
# from `subprojects/dlg' to `src/dlg' and `include/dlg'.
|
|
||||||
#
|
|
||||||
ifeq ($(wildcard $(TOP_DIR)/src/dlg/dlg.*),)
|
|
||||||
ifeq ($(wildcard $(TOP_DIR)/subprojects/dlg/*),)
|
|
||||||
copy_submodule: check_out_submodule
|
|
||||||
endif
|
|
||||||
|
|
||||||
setup: copy_submodule
|
|
||||||
endif
|
|
||||||
|
|
||||||
# This rule makes sense for Unix only to remove files created by a run of
|
# This rule makes sense for Unix only to remove files created by a run of
|
||||||
# the configure script which hasn't been successful (so that no
|
# the configure script which hasn't been successful (so that no
|
||||||
# `config.mk' has been created). It uses the built-in $(RM) command of
|
# `config.mk' has been created). It uses the built-in $(RM) command of
|
||||||
|
@ -166,23 +154,6 @@ else
|
||||||
endif # test check_platform
|
endif # test check_platform
|
||||||
|
|
||||||
|
|
||||||
.PHONY: check_out_submodule copy_submodule
|
|
||||||
|
|
||||||
check_out_submodule:
|
|
||||||
$(info Checking out submodule in `subprojects/dlg')
|
|
||||||
git submodule init
|
|
||||||
git submodule update
|
|
||||||
|
|
||||||
copy_submodule:
|
|
||||||
$(info Copying files from `subprojects/dlg' to `src/dlg' and `include/dlg')
|
|
||||||
ifeq ($(wildcard include/dlg),)
|
|
||||||
mkdir $(subst /,$(SEP),include/dlg)
|
|
||||||
endif
|
|
||||||
$(COPY) $(subst /,$(SEP),subprojects/dlg/include/dlg/output.h include/dlg)
|
|
||||||
$(COPY) $(subst /,$(SEP),subprojects/dlg/include/dlg/dlg.h include/dlg)
|
|
||||||
$(COPY) $(subst /,$(SEP),subprojects/dlg/src/dlg/dlg.c src/dlg)
|
|
||||||
|
|
||||||
|
|
||||||
# We always need the list of modules in ftmodule.h.
|
# We always need the list of modules in ftmodule.h.
|
||||||
#
|
#
|
||||||
all setup: $(FTMODULE_H)
|
all setup: $(FTMODULE_H)
|
||||||
|
@ -226,7 +197,6 @@ patch := $(firstword $(patch))
|
||||||
# else
|
# else
|
||||||
version := $(major).$(minor).$(patch)
|
version := $(major).$(minor).$(patch)
|
||||||
winversion := $(major)$(minor)$(patch)
|
winversion := $(major)$(minor)$(patch)
|
||||||
version_tag := VER-$(major)-$(minor)-$(patch)
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -249,10 +219,7 @@ dist:
|
||||||
|
|
||||||
currdir=`pwd` ; \
|
currdir=`pwd` ; \
|
||||||
for f in `find . -wholename '*/.git' -prune \
|
for f in `find . -wholename '*/.git' -prune \
|
||||||
-o -name .gitattributes \
|
|
||||||
-o -name .gitignore \
|
-o -name .gitignore \
|
||||||
-o -name .gitlab-ci.yml \
|
|
||||||
-o -name .gitmodules \
|
|
||||||
-o -name .mailmap \
|
-o -name .mailmap \
|
||||||
-o -type d \
|
-o -type d \
|
||||||
-o -print` ; do \
|
-o -print` ; do \
|
||||||
|
@ -283,10 +250,6 @@ dist:
|
||||||
CONFIG_GUESS = ~/git/config/config.guess
|
CONFIG_GUESS = ~/git/config/config.guess
|
||||||
CONFIG_SUB = ~/git/config/config.sub
|
CONFIG_SUB = ~/git/config/config.sub
|
||||||
|
|
||||||
# We also use this repository to access the gnulib script that converts git
|
|
||||||
# commit messages to a ChangeLog file.
|
|
||||||
CHANGELOG_SCRIPT = ~/git/config/gitlog-to-changelog
|
|
||||||
|
|
||||||
|
|
||||||
# Don't say `make do-dist'. Always use `make dist' instead.
|
# Don't say `make do-dist'. Always use `make dist' instead.
|
||||||
#
|
#
|
||||||
|
@ -304,19 +267,8 @@ do-dist: distclean refdoc
|
||||||
cp $(CONFIG_GUESS) builds/unix
|
cp $(CONFIG_GUESS) builds/unix
|
||||||
cp $(CONFIG_SUB) builds/unix
|
cp $(CONFIG_SUB) builds/unix
|
||||||
|
|
||||||
@# Generate `ChangeLog' file with commits since release 2.11.0
|
|
||||||
@# (when we stopped creating this file manually).
|
|
||||||
$(CHANGELOG_SCRIPT) \
|
|
||||||
--format='%B%n' \
|
|
||||||
--no-cluster \
|
|
||||||
-- VER-2-11-0..$(version_tag) \
|
|
||||||
> ChangeLog
|
|
||||||
|
|
||||||
@# Remove intermediate files created by the `refdoc' target.
|
@# Remove intermediate files created by the `refdoc' target.
|
||||||
rm -rf docs/markdown
|
rm -rf docs/reference/markdown
|
||||||
rm -f docs/mkdocs.yml
|
rm -f docs/reference/mkdocs.yml
|
||||||
|
|
||||||
@# Remove more stuff related to git.
|
|
||||||
rm -rf subprojects/dlg
|
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -1,177 +0,0 @@
|
||||||
# ===========================================================================
|
|
||||||
# https://www.gnu.org/software/autoconf-archive/ax_compare_version.html
|
|
||||||
# ===========================================================================
|
|
||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_COMPARE_VERSION(VERSION_A, OP, VERSION_B, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# This macro compares two version strings. Due to the various number of
|
|
||||||
# minor-version numbers that can exist, and the fact that string
|
|
||||||
# comparisons are not compatible with numeric comparisons, this is not
|
|
||||||
# necessarily trivial to do in a autoconf script. This macro makes doing
|
|
||||||
# these comparisons easy.
|
|
||||||
#
|
|
||||||
# The six basic comparisons are available, as well as checking equality
|
|
||||||
# limited to a certain number of minor-version levels.
|
|
||||||
#
|
|
||||||
# The operator OP determines what type of comparison to do, and can be one
|
|
||||||
# of:
|
|
||||||
#
|
|
||||||
# eq - equal (test A == B)
|
|
||||||
# ne - not equal (test A != B)
|
|
||||||
# le - less than or equal (test A <= B)
|
|
||||||
# ge - greater than or equal (test A >= B)
|
|
||||||
# lt - less than (test A < B)
|
|
||||||
# gt - greater than (test A > B)
|
|
||||||
#
|
|
||||||
# Additionally, the eq and ne operator can have a number after it to limit
|
|
||||||
# the test to that number of minor versions.
|
|
||||||
#
|
|
||||||
# eq0 - equal up to the length of the shorter version
|
|
||||||
# ne0 - not equal up to the length of the shorter version
|
|
||||||
# eqN - equal up to N sub-version levels
|
|
||||||
# neN - not equal up to N sub-version levels
|
|
||||||
#
|
|
||||||
# When the condition is true, shell commands ACTION-IF-TRUE are run,
|
|
||||||
# otherwise shell commands ACTION-IF-FALSE are run. The environment
|
|
||||||
# variable 'ax_compare_version' is always set to either 'true' or 'false'
|
|
||||||
# as well.
|
|
||||||
#
|
|
||||||
# Examples:
|
|
||||||
#
|
|
||||||
# AX_COMPARE_VERSION([3.15.7],[lt],[3.15.8])
|
|
||||||
# AX_COMPARE_VERSION([3.15],[lt],[3.15.8])
|
|
||||||
#
|
|
||||||
# would both be true.
|
|
||||||
#
|
|
||||||
# AX_COMPARE_VERSION([3.15.7],[eq],[3.15.8])
|
|
||||||
# AX_COMPARE_VERSION([3.15],[gt],[3.15.8])
|
|
||||||
#
|
|
||||||
# would both be false.
|
|
||||||
#
|
|
||||||
# AX_COMPARE_VERSION([3.15.7],[eq2],[3.15.8])
|
|
||||||
#
|
|
||||||
# would be true because it is only comparing two minor versions.
|
|
||||||
#
|
|
||||||
# AX_COMPARE_VERSION([3.15.7],[eq0],[3.15])
|
|
||||||
#
|
|
||||||
# would be true because it is only comparing the lesser number of minor
|
|
||||||
# versions of the two values.
|
|
||||||
#
|
|
||||||
# Note: The characters that separate the version numbers do not matter. An
|
|
||||||
# empty string is the same as version 0. OP is evaluated by autoconf, not
|
|
||||||
# configure, so must be a string, not a variable.
|
|
||||||
#
|
|
||||||
# The author would like to acknowledge Guido Draheim whose advice about
|
|
||||||
# the m4_case and m4_ifvaln functions make this macro only include the
|
|
||||||
# portions necessary to perform the specific comparison specified by the
|
|
||||||
# OP argument in the final configure script.
|
|
||||||
#
|
|
||||||
# LICENSE
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Tim Toolan <toolan@ele.uri.edu>
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved. This file is offered as-is, without any
|
|
||||||
# warranty.
|
|
||||||
|
|
||||||
#serial 13
|
|
||||||
|
|
||||||
dnl #########################################################################
|
|
||||||
AC_DEFUN([AX_COMPARE_VERSION], [
|
|
||||||
AC_REQUIRE([AC_PROG_AWK])
|
|
||||||
|
|
||||||
# Used to indicate true or false condition
|
|
||||||
ax_compare_version=false
|
|
||||||
|
|
||||||
# Convert the two version strings to be compared into a format that
|
|
||||||
# allows a simple string comparison. The end result is that a version
|
|
||||||
# string of the form 1.12.5-r617 will be converted to the form
|
|
||||||
# 0001001200050617. In other words, each number is zero padded to four
|
|
||||||
# digits, and non digits are removed.
|
|
||||||
AS_VAR_PUSHDEF([A],[ax_compare_version_A])
|
|
||||||
A=`echo "$1" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \
|
|
||||||
-e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \
|
|
||||||
-e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \
|
|
||||||
-e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \
|
|
||||||
-e 's/[[^0-9]]//g'`
|
|
||||||
|
|
||||||
AS_VAR_PUSHDEF([B],[ax_compare_version_B])
|
|
||||||
B=`echo "$3" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \
|
|
||||||
-e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \
|
|
||||||
-e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \
|
|
||||||
-e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \
|
|
||||||
-e 's/[[^0-9]]//g'`
|
|
||||||
|
|
||||||
dnl # In the case of le, ge, lt, and gt, the strings are sorted as necessary
|
|
||||||
dnl # then the first line is used to determine if the condition is true.
|
|
||||||
dnl # The sed right after the echo is to remove any indented white space.
|
|
||||||
m4_case(m4_tolower($2),
|
|
||||||
[lt],[
|
|
||||||
ax_compare_version=`echo "x$A
|
|
||||||
x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/false/;s/x${B}/true/;1q"`
|
|
||||||
],
|
|
||||||
[gt],[
|
|
||||||
ax_compare_version=`echo "x$A
|
|
||||||
x$B" | sed 's/^ *//' | sort | sed "s/x${A}/false/;s/x${B}/true/;1q"`
|
|
||||||
],
|
|
||||||
[le],[
|
|
||||||
ax_compare_version=`echo "x$A
|
|
||||||
x$B" | sed 's/^ *//' | sort | sed "s/x${A}/true/;s/x${B}/false/;1q"`
|
|
||||||
],
|
|
||||||
[ge],[
|
|
||||||
ax_compare_version=`echo "x$A
|
|
||||||
x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/true/;s/x${B}/false/;1q"`
|
|
||||||
],[
|
|
||||||
dnl Split the operator from the subversion count if present.
|
|
||||||
m4_bmatch(m4_substr($2,2),
|
|
||||||
[0],[
|
|
||||||
# A count of zero means use the length of the shorter version.
|
|
||||||
# Determine the number of characters in A and B.
|
|
||||||
ax_compare_version_len_A=`echo "$A" | $AWK '{print(length)}'`
|
|
||||||
ax_compare_version_len_B=`echo "$B" | $AWK '{print(length)}'`
|
|
||||||
|
|
||||||
# Set A to no more than B's length and B to no more than A's length.
|
|
||||||
A=`echo "$A" | sed "s/\(.\{$ax_compare_version_len_B\}\).*/\1/"`
|
|
||||||
B=`echo "$B" | sed "s/\(.\{$ax_compare_version_len_A\}\).*/\1/"`
|
|
||||||
],
|
|
||||||
[[0-9]+],[
|
|
||||||
# A count greater than zero means use only that many subversions
|
|
||||||
A=`echo "$A" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"`
|
|
||||||
B=`echo "$B" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"`
|
|
||||||
],
|
|
||||||
[.+],[
|
|
||||||
AC_WARNING(
|
|
||||||
[invalid OP numeric parameter: $2])
|
|
||||||
],[])
|
|
||||||
|
|
||||||
# Pad zeros at end of numbers to make same length.
|
|
||||||
ax_compare_version_tmp_A="$A`echo $B | sed 's/./0/g'`"
|
|
||||||
B="$B`echo $A | sed 's/./0/g'`"
|
|
||||||
A="$ax_compare_version_tmp_A"
|
|
||||||
|
|
||||||
# Check for equality or inequality as necessary.
|
|
||||||
m4_case(m4_tolower(m4_substr($2,0,2)),
|
|
||||||
[eq],[
|
|
||||||
test "x$A" = "x$B" && ax_compare_version=true
|
|
||||||
],
|
|
||||||
[ne],[
|
|
||||||
test "x$A" != "x$B" && ax_compare_version=true
|
|
||||||
],[
|
|
||||||
AC_WARNING([invalid OP parameter: $2])
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
AS_VAR_POPDEF([A])dnl
|
|
||||||
AS_VAR_POPDEF([B])dnl
|
|
||||||
|
|
||||||
dnl # Execute ACTION-IF-TRUE / ACTION-IF-FALSE.
|
|
||||||
if test "$ax_compare_version" = "true" ; then
|
|
||||||
m4_ifvaln([$4],[$4],[:])dnl
|
|
||||||
m4_ifvaln([$5],[else $5])dnl
|
|
||||||
fi
|
|
||||||
]) dnl AX_COMPARE_VERSION
|
|
|
@ -1,66 +0,0 @@
|
||||||
# ===========================================================================
|
|
||||||
# https://www.gnu.org/software/autoconf-archive/ax_prog_python_version.html
|
|
||||||
# ===========================================================================
|
|
||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_PROG_PYTHON_VERSION([VERSION],[ACTION-IF-TRUE],[ACTION-IF-FALSE])
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Makes sure that python supports the version indicated. If true the shell
|
|
||||||
# commands in ACTION-IF-TRUE are executed. If not the shell commands in
|
|
||||||
# ACTION-IF-FALSE are run. Note if $PYTHON is not set (for example by
|
|
||||||
# running AC_CHECK_PROG or AC_PATH_PROG) the macro will fail.
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
#
|
|
||||||
# AC_PATH_PROG([PYTHON],[python])
|
|
||||||
# AX_PROG_PYTHON_VERSION([2.4.4],[ ... ],[ ... ])
|
|
||||||
#
|
|
||||||
# This will check to make sure that the python you have supports at least
|
|
||||||
# version 2.4.4.
|
|
||||||
#
|
|
||||||
# NOTE: This macro uses the $PYTHON variable to perform the check.
|
|
||||||
# AX_WITH_PYTHON can be used to set that variable prior to running this
|
|
||||||
# macro. The $PYTHON_VERSION variable will be valorized with the detected
|
|
||||||
# version.
|
|
||||||
#
|
|
||||||
# LICENSE
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Francesco Salvestrini <salvestrini@users.sourceforge.net>
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved. This file is offered as-is, without any
|
|
||||||
# warranty.
|
|
||||||
|
|
||||||
#serial 12
|
|
||||||
|
|
||||||
AC_DEFUN([AX_PROG_PYTHON_VERSION],[
|
|
||||||
AC_REQUIRE([AC_PROG_SED])
|
|
||||||
AC_REQUIRE([AC_PROG_GREP])
|
|
||||||
|
|
||||||
AS_IF([test -n "$PYTHON"],[
|
|
||||||
ax_python_version="$1"
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([for python version])
|
|
||||||
changequote(<<,>>)
|
|
||||||
python_version=`$PYTHON -V 2>&1 | $GREP "^Python " | $SED -e 's/^.* \([0-9]*\.[0-9]*\.[0-9]*\)/\1/'`
|
|
||||||
changequote([,])
|
|
||||||
AC_MSG_RESULT($python_version)
|
|
||||||
|
|
||||||
AC_SUBST([PYTHON_VERSION],[$python_version])
|
|
||||||
|
|
||||||
AX_COMPARE_VERSION([$ax_python_version],[le],[$python_version],[
|
|
||||||
:
|
|
||||||
$2
|
|
||||||
],[
|
|
||||||
:
|
|
||||||
$3
|
|
||||||
])
|
|
||||||
],[
|
|
||||||
AC_MSG_WARN([could not find the python interpreter])
|
|
||||||
$3
|
|
||||||
])
|
|
||||||
])
|
|
|
@ -1,522 +0,0 @@
|
||||||
# ===========================================================================
|
|
||||||
# https://www.gnu.org/software/autoconf-archive/ax_pthread.html
|
|
||||||
# ===========================================================================
|
|
||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# This macro figures out how to build C programs using POSIX threads. It
|
|
||||||
# sets the PTHREAD_LIBS output variable to the threads library and linker
|
|
||||||
# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
|
|
||||||
# flags that are needed. (The user can also force certain compiler
|
|
||||||
# flags/libs to be tested by setting these environment variables.)
|
|
||||||
#
|
|
||||||
# Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is
|
|
||||||
# needed for multi-threaded programs (defaults to the value of CC
|
|
||||||
# respectively CXX otherwise). (This is necessary on e.g. AIX to use the
|
|
||||||
# special cc_r/CC_r compiler alias.)
|
|
||||||
#
|
|
||||||
# NOTE: You are assumed to not only compile your program with these flags,
|
|
||||||
# but also to link with them as well. For example, you might link with
|
|
||||||
# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
|
|
||||||
# $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
|
|
||||||
#
|
|
||||||
# If you are only building threaded programs, you may wish to use these
|
|
||||||
# variables in your default LIBS, CFLAGS, and CC:
|
|
||||||
#
|
|
||||||
# LIBS="$PTHREAD_LIBS $LIBS"
|
|
||||||
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
||||||
# CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
|
|
||||||
# CC="$PTHREAD_CC"
|
|
||||||
# CXX="$PTHREAD_CXX"
|
|
||||||
#
|
|
||||||
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
|
|
||||||
# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
|
|
||||||
# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
|
|
||||||
#
|
|
||||||
# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
|
|
||||||
# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
|
|
||||||
# PTHREAD_CFLAGS.
|
|
||||||
#
|
|
||||||
# ACTION-IF-FOUND is a list of shell commands to run if a threads library
|
|
||||||
# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
|
|
||||||
# is not found. If ACTION-IF-FOUND is not specified, the default action
|
|
||||||
# will define HAVE_PTHREAD.
|
|
||||||
#
|
|
||||||
# Please let the authors know if this macro fails on any platform, or if
|
|
||||||
# you have any other suggestions or comments. This macro was based on work
|
|
||||||
# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
|
|
||||||
# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
|
|
||||||
# Alejandro Forero Cuervo to the autoconf macro repository. We are also
|
|
||||||
# grateful for the helpful feedback of numerous users.
|
|
||||||
#
|
|
||||||
# Updated for Autoconf 2.68 by Daniel Richard G.
|
|
||||||
#
|
|
||||||
# LICENSE
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
|
|
||||||
# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
|
|
||||||
# Copyright (c) 2019 Marc Stevens <marc.stevens@cwi.nl>
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License as published by the
|
|
||||||
# Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
# option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License along
|
|
||||||
# with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
|
||||||
# gives unlimited permission to copy, distribute and modify the configure
|
|
||||||
# scripts that are the output of Autoconf when processing the Macro. You
|
|
||||||
# need not follow the terms of the GNU General Public License when using
|
|
||||||
# or distributing such scripts, even though portions of the text of the
|
|
||||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
|
||||||
# all other use of the material that constitutes the Autoconf Macro.
|
|
||||||
#
|
|
||||||
# This special exception to the GPL applies to versions of the Autoconf
|
|
||||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
|
||||||
# modified version of the Autoconf Macro, you may extend this special
|
|
||||||
# exception to the GPL to apply to your modified version as well.
|
|
||||||
|
|
||||||
#serial 30
|
|
||||||
|
|
||||||
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
|
|
||||||
AC_DEFUN([AX_PTHREAD], [
|
|
||||||
AC_REQUIRE([AC_CANONICAL_TARGET])
|
|
||||||
AC_REQUIRE([AC_PROG_CC])
|
|
||||||
AC_REQUIRE([AC_PROG_SED])
|
|
||||||
AC_LANG_PUSH([C])
|
|
||||||
ax_pthread_ok=no
|
|
||||||
|
|
||||||
# We used to check for pthread.h first, but this fails if pthread.h
|
|
||||||
# requires special compiler flags (e.g. on Tru64 or Sequent).
|
|
||||||
# It gets checked for in the link test anyway.
|
|
||||||
|
|
||||||
# First of all, check if the user has set any of the PTHREAD_LIBS,
|
|
||||||
# etcetera environment variables, and if threads linking works using
|
|
||||||
# them:
|
|
||||||
if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
|
|
||||||
ax_pthread_save_CC="$CC"
|
|
||||||
ax_pthread_save_CFLAGS="$CFLAGS"
|
|
||||||
ax_pthread_save_LIBS="$LIBS"
|
|
||||||
AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
|
|
||||||
AS_IF([test "x$PTHREAD_CXX" != "x"], [CXX="$PTHREAD_CXX"])
|
|
||||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
||||||
LIBS="$PTHREAD_LIBS $LIBS"
|
|
||||||
AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
|
|
||||||
AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
|
|
||||||
AC_MSG_RESULT([$ax_pthread_ok])
|
|
||||||
if test "x$ax_pthread_ok" = "xno"; then
|
|
||||||
PTHREAD_LIBS=""
|
|
||||||
PTHREAD_CFLAGS=""
|
|
||||||
fi
|
|
||||||
CC="$ax_pthread_save_CC"
|
|
||||||
CFLAGS="$ax_pthread_save_CFLAGS"
|
|
||||||
LIBS="$ax_pthread_save_LIBS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# We must check for the threads library under a number of different
|
|
||||||
# names; the ordering is very important because some systems
|
|
||||||
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
|
|
||||||
# libraries is broken (non-POSIX).
|
|
||||||
|
|
||||||
# Create a list of thread flags to try. Items with a "," contain both
|
|
||||||
# C compiler flags (before ",") and linker flags (after ","). Other items
|
|
||||||
# starting with a "-" are C compiler flags, and remaining items are
|
|
||||||
# library names, except for "none" which indicates that we try without
|
|
||||||
# any flags at all, and "pthread-config" which is a program returning
|
|
||||||
# the flags for the Pth emulation library.
|
|
||||||
|
|
||||||
ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
|
|
||||||
|
|
||||||
# The ordering *is* (sometimes) important. Some notes on the
|
|
||||||
# individual items follow:
|
|
||||||
|
|
||||||
# pthreads: AIX (must check this before -lpthread)
|
|
||||||
# none: in case threads are in libc; should be tried before -Kthread and
|
|
||||||
# other compiler flags to prevent continual compiler warnings
|
|
||||||
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
|
|
||||||
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
|
|
||||||
# (Note: HP C rejects this with "bad form for `-t' option")
|
|
||||||
# -pthreads: Solaris/gcc (Note: HP C also rejects)
|
|
||||||
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
|
|
||||||
# doesn't hurt to check since this sometimes defines pthreads and
|
|
||||||
# -D_REENTRANT too), HP C (must be checked before -lpthread, which
|
|
||||||
# is present but should not be used directly; and before -mthreads,
|
|
||||||
# because the compiler interprets this as "-mt" + "-hreads")
|
|
||||||
# -mthreads: Mingw32/gcc, Lynx/gcc
|
|
||||||
# pthread: Linux, etcetera
|
|
||||||
# --thread-safe: KAI C++
|
|
||||||
# pthread-config: use pthread-config program (for GNU Pth library)
|
|
||||||
|
|
||||||
case $target_os in
|
|
||||||
|
|
||||||
freebsd*)
|
|
||||||
|
|
||||||
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
|
|
||||||
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
|
|
||||||
|
|
||||||
ax_pthread_flags="-kthread lthread $ax_pthread_flags"
|
|
||||||
;;
|
|
||||||
|
|
||||||
hpux*)
|
|
||||||
|
|
||||||
# From the cc(1) man page: "[-mt] Sets various -D flags to enable
|
|
||||||
# multi-threading and also sets -lpthread."
|
|
||||||
|
|
||||||
ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
|
|
||||||
;;
|
|
||||||
|
|
||||||
openedition*)
|
|
||||||
|
|
||||||
# IBM z/OS requires a feature-test macro to be defined in order to
|
|
||||||
# enable POSIX threads at all, so give the user a hint if this is
|
|
||||||
# not set. (We don't define these ourselves, as they can affect
|
|
||||||
# other portions of the system API in unpredictable ways.)
|
|
||||||
|
|
||||||
AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
|
|
||||||
[
|
|
||||||
# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
|
|
||||||
AX_PTHREAD_ZOS_MISSING
|
|
||||||
# endif
|
|
||||||
],
|
|
||||||
[AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
|
|
||||||
;;
|
|
||||||
|
|
||||||
solaris*)
|
|
||||||
|
|
||||||
# On Solaris (at least, for some versions), libc contains stubbed
|
|
||||||
# (non-functional) versions of the pthreads routines, so link-based
|
|
||||||
# tests will erroneously succeed. (N.B.: The stubs are missing
|
|
||||||
# pthread_cleanup_push, or rather a function called by this macro,
|
|
||||||
# so we could check for that, but who knows whether they'll stub
|
|
||||||
# that too in a future libc.) So we'll check first for the
|
|
||||||
# standard Solaris way of linking pthreads (-mt -lpthread).
|
|
||||||
|
|
||||||
ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Are we compiling with Clang?
|
|
||||||
|
|
||||||
AC_CACHE_CHECK([whether $CC is Clang],
|
|
||||||
[ax_cv_PTHREAD_CLANG],
|
|
||||||
[ax_cv_PTHREAD_CLANG=no
|
|
||||||
# Note that Autoconf sets GCC=yes for Clang as well as GCC
|
|
||||||
if test "x$GCC" = "xyes"; then
|
|
||||||
AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
|
|
||||||
[/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
|
|
||||||
# if defined(__clang__) && defined(__llvm__)
|
|
||||||
AX_PTHREAD_CC_IS_CLANG
|
|
||||||
# endif
|
|
||||||
],
|
|
||||||
[ax_cv_PTHREAD_CLANG=yes])
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
|
|
||||||
|
|
||||||
|
|
||||||
# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
|
|
||||||
|
|
||||||
# Note that for GCC and Clang -pthread generally implies -lpthread,
|
|
||||||
# except when -nostdlib is passed.
|
|
||||||
# This is problematic using libtool to build C++ shared libraries with pthread:
|
|
||||||
# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
|
|
||||||
# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333
|
|
||||||
# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
|
|
||||||
# To solve this, first try -pthread together with -lpthread for GCC
|
|
||||||
|
|
||||||
AS_IF([test "x$GCC" = "xyes"],
|
|
||||||
[ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"])
|
|
||||||
|
|
||||||
# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
|
|
||||||
|
|
||||||
AS_IF([test "x$ax_pthread_clang" = "xyes"],
|
|
||||||
[ax_pthread_flags="-pthread,-lpthread -pthread"])
|
|
||||||
|
|
||||||
|
|
||||||
# The presence of a feature test macro requesting re-entrant function
|
|
||||||
# definitions is, on some systems, a strong hint that pthreads support is
|
|
||||||
# correctly enabled
|
|
||||||
|
|
||||||
case $target_os in
|
|
||||||
darwin* | hpux* | linux* | osf* | solaris*)
|
|
||||||
ax_pthread_check_macro="_REENTRANT"
|
|
||||||
;;
|
|
||||||
|
|
||||||
aix*)
|
|
||||||
ax_pthread_check_macro="_THREAD_SAFE"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
ax_pthread_check_macro="--"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
AS_IF([test "x$ax_pthread_check_macro" = "x--"],
|
|
||||||
[ax_pthread_check_cond=0],
|
|
||||||
[ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
|
|
||||||
|
|
||||||
|
|
||||||
if test "x$ax_pthread_ok" = "xno"; then
|
|
||||||
for ax_pthread_try_flag in $ax_pthread_flags; do
|
|
||||||
|
|
||||||
case $ax_pthread_try_flag in
|
|
||||||
none)
|
|
||||||
AC_MSG_CHECKING([whether pthreads work without any flags])
|
|
||||||
;;
|
|
||||||
|
|
||||||
*,*)
|
|
||||||
PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
|
|
||||||
PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
|
|
||||||
AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"])
|
|
||||||
;;
|
|
||||||
|
|
||||||
-*)
|
|
||||||
AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])
|
|
||||||
PTHREAD_CFLAGS="$ax_pthread_try_flag"
|
|
||||||
;;
|
|
||||||
|
|
||||||
pthread-config)
|
|
||||||
AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
|
|
||||||
AS_IF([test "x$ax_pthread_config" = "xno"], [continue])
|
|
||||||
PTHREAD_CFLAGS="`pthread-config --cflags`"
|
|
||||||
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])
|
|
||||||
PTHREAD_LIBS="-l$ax_pthread_try_flag"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
ax_pthread_save_CFLAGS="$CFLAGS"
|
|
||||||
ax_pthread_save_LIBS="$LIBS"
|
|
||||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
||||||
LIBS="$PTHREAD_LIBS $LIBS"
|
|
||||||
|
|
||||||
# Check for various functions. We must include pthread.h,
|
|
||||||
# since some functions may be macros. (On the Sequent, we
|
|
||||||
# need a special flag -Kthread to make this header compile.)
|
|
||||||
# We check for pthread_join because it is in -lpthread on IRIX
|
|
||||||
# while pthread_create is in libc. We check for pthread_attr_init
|
|
||||||
# due to DEC craziness with -lpthreads. We check for
|
|
||||||
# pthread_cleanup_push because it is one of the few pthread
|
|
||||||
# functions on Solaris that doesn't have a non-functional libc stub.
|
|
||||||
# We try pthread_create on general principles.
|
|
||||||
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
|
|
||||||
# if $ax_pthread_check_cond
|
|
||||||
# error "$ax_pthread_check_macro must be defined"
|
|
||||||
# endif
|
|
||||||
static void *some_global = NULL;
|
|
||||||
static void routine(void *a)
|
|
||||||
{
|
|
||||||
/* To avoid any unused-parameter or
|
|
||||||
unused-but-set-parameter warning. */
|
|
||||||
some_global = a;
|
|
||||||
}
|
|
||||||
static void *start_routine(void *a) { return a; }],
|
|
||||||
[pthread_t th; pthread_attr_t attr;
|
|
||||||
pthread_create(&th, 0, start_routine, 0);
|
|
||||||
pthread_join(th, 0);
|
|
||||||
pthread_attr_init(&attr);
|
|
||||||
pthread_cleanup_push(routine, 0);
|
|
||||||
pthread_cleanup_pop(0) /* ; */])],
|
|
||||||
[ax_pthread_ok=yes],
|
|
||||||
[])
|
|
||||||
|
|
||||||
CFLAGS="$ax_pthread_save_CFLAGS"
|
|
||||||
LIBS="$ax_pthread_save_LIBS"
|
|
||||||
|
|
||||||
AC_MSG_RESULT([$ax_pthread_ok])
|
|
||||||
AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
|
|
||||||
|
|
||||||
PTHREAD_LIBS=""
|
|
||||||
PTHREAD_CFLAGS=""
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Clang needs special handling, because older versions handle the -pthread
|
|
||||||
# option in a rather... idiosyncratic way
|
|
||||||
|
|
||||||
if test "x$ax_pthread_clang" = "xyes"; then
|
|
||||||
|
|
||||||
# Clang takes -pthread; it has never supported any other flag
|
|
||||||
|
|
||||||
# (Note 1: This will need to be revisited if a system that Clang
|
|
||||||
# supports has POSIX threads in a separate library. This tends not
|
|
||||||
# to be the way of modern systems, but it's conceivable.)
|
|
||||||
|
|
||||||
# (Note 2: On some systems, notably Darwin, -pthread is not needed
|
|
||||||
# to get POSIX threads support; the API is always present and
|
|
||||||
# active. We could reasonably leave PTHREAD_CFLAGS empty. But
|
|
||||||
# -pthread does define _REENTRANT, and while the Darwin headers
|
|
||||||
# ignore this macro, third-party headers might not.)
|
|
||||||
|
|
||||||
# However, older versions of Clang make a point of warning the user
|
|
||||||
# that, in an invocation where only linking and no compilation is
|
|
||||||
# taking place, the -pthread option has no effect ("argument unused
|
|
||||||
# during compilation"). They expect -pthread to be passed in only
|
|
||||||
# when source code is being compiled.
|
|
||||||
#
|
|
||||||
# Problem is, this is at odds with the way Automake and most other
|
|
||||||
# C build frameworks function, which is that the same flags used in
|
|
||||||
# compilation (CFLAGS) are also used in linking. Many systems
|
|
||||||
# supported by AX_PTHREAD require exactly this for POSIX threads
|
|
||||||
# support, and in fact it is often not straightforward to specify a
|
|
||||||
# flag that is used only in the compilation phase and not in
|
|
||||||
# linking. Such a scenario is extremely rare in practice.
|
|
||||||
#
|
|
||||||
# Even though use of the -pthread flag in linking would only print
|
|
||||||
# a warning, this can be a nuisance for well-run software projects
|
|
||||||
# that build with -Werror. So if the active version of Clang has
|
|
||||||
# this misfeature, we search for an option to squash it.
|
|
||||||
|
|
||||||
AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread],
|
|
||||||
[ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
|
|
||||||
[ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
|
|
||||||
# Create an alternate version of $ac_link that compiles and
|
|
||||||
# links in two steps (.c -> .o, .o -> exe) instead of one
|
|
||||||
# (.c -> exe), because the warning occurs only in the second
|
|
||||||
# step
|
|
||||||
ax_pthread_save_ac_link="$ac_link"
|
|
||||||
ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
|
|
||||||
ax_pthread_link_step=`AS_ECHO(["$ac_link"]) | sed "$ax_pthread_sed"`
|
|
||||||
ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
|
|
||||||
ax_pthread_save_CFLAGS="$CFLAGS"
|
|
||||||
for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
|
|
||||||
AS_IF([test "x$ax_pthread_try" = "xunknown"], [break])
|
|
||||||
CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
|
|
||||||
ac_link="$ax_pthread_save_ac_link"
|
|
||||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
|
|
||||||
[ac_link="$ax_pthread_2step_ac_link"
|
|
||||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
|
|
||||||
[break])
|
|
||||||
])
|
|
||||||
done
|
|
||||||
ac_link="$ax_pthread_save_ac_link"
|
|
||||||
CFLAGS="$ax_pthread_save_CFLAGS"
|
|
||||||
AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no])
|
|
||||||
ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
|
|
||||||
])
|
|
||||||
|
|
||||||
case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
|
|
||||||
no | unknown) ;;
|
|
||||||
*) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
fi # $ax_pthread_clang = yes
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Various other checks:
|
|
||||||
if test "x$ax_pthread_ok" = "xyes"; then
|
|
||||||
ax_pthread_save_CFLAGS="$CFLAGS"
|
|
||||||
ax_pthread_save_LIBS="$LIBS"
|
|
||||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
||||||
LIBS="$PTHREAD_LIBS $LIBS"
|
|
||||||
|
|
||||||
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
|
|
||||||
AC_CACHE_CHECK([for joinable pthread attribute],
|
|
||||||
[ax_cv_PTHREAD_JOINABLE_ATTR],
|
|
||||||
[ax_cv_PTHREAD_JOINABLE_ATTR=unknown
|
|
||||||
for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
|
|
||||||
[int attr = $ax_pthread_attr; return attr /* ; */])],
|
|
||||||
[ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],
|
|
||||||
[])
|
|
||||||
done
|
|
||||||
])
|
|
||||||
AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
|
|
||||||
test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
|
|
||||||
test "x$ax_pthread_joinable_attr_defined" != "xyes"],
|
|
||||||
[AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
|
|
||||||
[$ax_cv_PTHREAD_JOINABLE_ATTR],
|
|
||||||
[Define to necessary symbol if this constant
|
|
||||||
uses a non-standard name on your system.])
|
|
||||||
ax_pthread_joinable_attr_defined=yes
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_CACHE_CHECK([whether more special flags are required for pthreads],
|
|
||||||
[ax_cv_PTHREAD_SPECIAL_FLAGS],
|
|
||||||
[ax_cv_PTHREAD_SPECIAL_FLAGS=no
|
|
||||||
case $target_os in
|
|
||||||
solaris*)
|
|
||||||
ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
])
|
|
||||||
AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
|
|
||||||
test "x$ax_pthread_special_flags_added" != "xyes"],
|
|
||||||
[PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
|
|
||||||
ax_pthread_special_flags_added=yes])
|
|
||||||
|
|
||||||
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
|
|
||||||
[ax_cv_PTHREAD_PRIO_INHERIT],
|
|
||||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
|
|
||||||
[[int i = PTHREAD_PRIO_INHERIT;
|
|
||||||
return i;]])],
|
|
||||||
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
|
|
||||||
[ax_cv_PTHREAD_PRIO_INHERIT=no])
|
|
||||||
])
|
|
||||||
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
|
|
||||||
test "x$ax_pthread_prio_inherit_defined" != "xyes"],
|
|
||||||
[AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])
|
|
||||||
ax_pthread_prio_inherit_defined=yes
|
|
||||||
])
|
|
||||||
|
|
||||||
CFLAGS="$ax_pthread_save_CFLAGS"
|
|
||||||
LIBS="$ax_pthread_save_LIBS"
|
|
||||||
|
|
||||||
# More AIX lossage: compile with *_r variant
|
|
||||||
if test "x$GCC" != "xyes"; then
|
|
||||||
case $target_os in
|
|
||||||
aix*)
|
|
||||||
AS_CASE(["x/$CC"],
|
|
||||||
[x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
|
|
||||||
[#handle absolute path differently from PATH based program lookup
|
|
||||||
AS_CASE(["x$CC"],
|
|
||||||
[x/*],
|
|
||||||
[
|
|
||||||
AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])
|
|
||||||
AS_IF([test "x${CXX}" != "x"], [AS_IF([AS_EXECUTABLE_P([${CXX}_r])],[PTHREAD_CXX="${CXX}_r"])])
|
|
||||||
],
|
|
||||||
[
|
|
||||||
AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])
|
|
||||||
AS_IF([test "x${CXX}" != "x"], [AC_CHECK_PROGS([PTHREAD_CXX],[${CXX}_r],[$CXX])])
|
|
||||||
]
|
|
||||||
)
|
|
||||||
])
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
|
|
||||||
test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX"
|
|
||||||
|
|
||||||
AC_SUBST([PTHREAD_LIBS])
|
|
||||||
AC_SUBST([PTHREAD_CFLAGS])
|
|
||||||
AC_SUBST([PTHREAD_CC])
|
|
||||||
AC_SUBST([PTHREAD_CXX])
|
|
||||||
|
|
||||||
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
|
||||||
if test "x$ax_pthread_ok" = "xyes"; then
|
|
||||||
ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
|
|
||||||
:
|
|
||||||
else
|
|
||||||
ax_pthread_ok=no
|
|
||||||
$2
|
|
||||||
fi
|
|
||||||
AC_LANG_POP
|
|
||||||
])dnl AX_PTHREAD
|
|
|
@ -2,7 +2,7 @@
|
||||||
#
|
#
|
||||||
# Process this file with autoconf to produce a configure script.
|
# Process this file with autoconf to produce a configure script.
|
||||||
#
|
#
|
||||||
# Copyright (C) 2001-2022 by
|
# Copyright (C) 2001-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -12,12 +12,12 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
AC_INIT([FreeType], [@VERSION@], [freetype@nongnu.org], [freetype])
|
AC_INIT([FreeType], [@VERSION@], [freetype@nongnu.org], [freetype])
|
||||||
AC_CONFIG_SRCDIR([ftconfig.h.in])
|
AC_CONFIG_SRCDIR([ftconfig.in])
|
||||||
|
|
||||||
|
|
||||||
# Don't forget to update `docs/VERSIONS.TXT'!
|
# Don't forget to update `docs/VERSIONS.TXT'!
|
||||||
|
|
||||||
version_info='24:3:18'
|
version_info='23:1:17'
|
||||||
AC_SUBST([version_info])
|
AC_SUBST([version_info])
|
||||||
ft_version=`echo $version_info | tr : .`
|
ft_version=`echo $version_info | tr : .`
|
||||||
AC_SUBST([ft_version])
|
AC_SUBST([ft_version])
|
||||||
|
@ -97,12 +97,85 @@ esac
|
||||||
|
|
||||||
# checks for header files
|
# checks for header files
|
||||||
|
|
||||||
|
AC_HEADER_STDC
|
||||||
AC_CHECK_HEADERS([fcntl.h unistd.h])
|
AC_CHECK_HEADERS([fcntl.h unistd.h])
|
||||||
|
|
||||||
|
|
||||||
# checks for typedefs, structures, and compiler characteristics
|
# checks for typedefs, structures, and compiler characteristics
|
||||||
|
|
||||||
AC_C_CONST
|
AC_C_CONST
|
||||||
|
AC_CHECK_SIZEOF([int])
|
||||||
|
AC_CHECK_SIZEOF([long])
|
||||||
|
AC_TYPE_LONG_LONG_INT
|
||||||
|
|
||||||
|
|
||||||
|
# check whether cpp computation of size of int and long in ftconfig.in works
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether cpp computation of bit length in ftconfig.in works])
|
||||||
|
orig_CPPFLAGS="${CPPFLAGS}"
|
||||||
|
CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include/freetype/config ${CPPFLAGS}"
|
||||||
|
|
||||||
|
ac_clean_files=
|
||||||
|
if test ! -f ft2build.h; then
|
||||||
|
ac_clean_files=ft2build.h
|
||||||
|
touch ft2build.h
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > conftest.c <<\_ACEOF
|
||||||
|
#include <limits.h>
|
||||||
|
#define FT_CONFIG_OPTIONS_H "ftoption.h"
|
||||||
|
#define FT_CONFIG_STANDARD_LIBRARY_H "ftstdlib.h"
|
||||||
|
#define FT_UINT_MAX UINT_MAX
|
||||||
|
#define FT_ULONG_MAX ULONG_MAX
|
||||||
|
#include "ftconfig.in"
|
||||||
|
_ACEOF
|
||||||
|
echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int}
|
||||||
|
echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int}
|
||||||
|
echo >> conftest.c "#endif"
|
||||||
|
echo >> conftest.c "#if FT_SIZEOF_LONG == "${ac_cv_sizeof_long}
|
||||||
|
echo >> conftest.c "ac_cpp_ft_sizeof_long="${ac_cv_sizeof_long}
|
||||||
|
echo >> conftest.c "#endif"
|
||||||
|
|
||||||
|
${CPP} ${CPPFLAGS} conftest.c | ${GREP} ac_cpp_ft > conftest.sh
|
||||||
|
eval `cat conftest.sh`
|
||||||
|
rm -f conftest.* $ac_clean_files
|
||||||
|
|
||||||
|
if test x != "x${ac_cpp_ft_sizeof_int}" \
|
||||||
|
-a x != x"${ac_cpp_ft_sizeof_long}"; then
|
||||||
|
unset ft_use_autoconf_sizeof_types
|
||||||
|
else
|
||||||
|
ft_use_autoconf_sizeof_types=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(biarch-config,
|
||||||
|
[ --enable-biarch-config install biarch ftconfig.h to support multiple
|
||||||
|
architectures by single file], [], [])
|
||||||
|
|
||||||
|
case :${ft_use_autoconf_sizeof_types}:${enable_biarch_config}: in
|
||||||
|
:yes:yes:)
|
||||||
|
AC_MSG_RESULT([broken but use it])
|
||||||
|
unset ft_use_autoconf_sizeof_types
|
||||||
|
;;
|
||||||
|
::no:)
|
||||||
|
AC_MSG_RESULT([works but ignore it])
|
||||||
|
ft_use_autoconf_sizeof_types=yes
|
||||||
|
;;
|
||||||
|
::yes: | :::)
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
unset ft_use_autoconf_sizeof_types
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
ft_use_autoconf_sizeof_types=yes
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test x"${ft_use_autoconf_sizeof_types}" = xyes; then
|
||||||
|
AC_DEFINE([FT_USE_AUTOCONF_SIZEOF_TYPES], [],
|
||||||
|
[Define if autoconf sizeof types should be used.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
CPPFLAGS="${orig_CPPFLAGS}"
|
||||||
|
|
||||||
AC_ARG_ENABLE([freetype-config],
|
AC_ARG_ENABLE([freetype-config],
|
||||||
AS_HELP_STRING([--enable-freetype-config], [install freetype-config]),
|
AS_HELP_STRING([--enable-freetype-config], [install freetype-config]),
|
||||||
|
@ -119,59 +192,53 @@ AC_SUBST(INSTALL_FT2_CONFIG, [$enable_freetype_config])
|
||||||
AC_SYS_LARGEFILE
|
AC_SYS_LARGEFILE
|
||||||
|
|
||||||
# Here we check whether we can use our mmap file component.
|
# Here we check whether we can use our mmap file component.
|
||||||
#
|
|
||||||
# Note that `ftsystem.c` for Windows has its own mmap-like implementation
|
|
||||||
# not covered by `AC_FUNC_MMAP` and/or `FT_UNMAP_PARAM`.
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([mmap],
|
AC_ARG_ENABLE([mmap],
|
||||||
AS_HELP_STRING([--disable-mmap],
|
AS_HELP_STRING([--disable-mmap],
|
||||||
[do not check mmap() and do not use]),
|
[do not check mmap() and do not use]),
|
||||||
[enable_mmap="no"], [enable_mmap="yes"])
|
[enable_mmap="no"], [enable_mmap="yes"])
|
||||||
if test "x${enable_mmap}" != "xno"; then
|
if test "x${enable_mmap}" != "xno"; then
|
||||||
case "$host" in
|
AC_FUNC_MMAP
|
||||||
*-*-mingw*)
|
fi
|
||||||
AC_MSG_CHECKING([for working mmap])
|
if test "x${enable_mmap}" = "xno" \
|
||||||
AC_MSG_RESULT([using MapViewOfFile in Windows])
|
-o "$ac_cv_func_mmap_fixed_mapped" != "yes"; then
|
||||||
FTSYS_SRC='$(TOP_DIR)/builds/windows/ftsystem.c'
|
FTSYS_SRC='$(BASE_DIR)/ftsystem.c'
|
||||||
;;
|
else
|
||||||
*)
|
FTSYS_SRC='$(BUILD_DIR)/ftsystem.c'
|
||||||
AC_FUNC_MMAP
|
|
||||||
if test "$ac_cv_func_mmap_fixed_mapped" = "yes"; then
|
|
||||||
FTSYS_SRC='$(PLATFORM_DIR)/ftsystem.c'
|
|
||||||
|
|
||||||
AC_CHECK_DECLS([munmap],
|
AC_CHECK_DECLS([munmap],
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
[
|
[
|
||||||
|
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
|
|
||||||
])
|
])
|
||||||
|
|
||||||
FT_MUNMAP_PARAM
|
FT_MUNMAP_PARAM
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$FTSYS_SRC"; then
|
|
||||||
FTSYS_SRC='$(BASE_DIR)/ftsystem.c'
|
|
||||||
fi
|
fi
|
||||||
AC_SUBST([FTSYS_SRC])
|
AC_SUBST([FTSYS_SRC])
|
||||||
|
|
||||||
|
|
||||||
AC_CHECK_FUNCS([memcpy memmove])
|
AC_CHECK_FUNCS([memcpy memmove])
|
||||||
|
|
||||||
|
|
||||||
# get compiler flags right
|
# get compiler flags right
|
||||||
#
|
#
|
||||||
# We try to make the compiler work for C99-strict source. Even if the
|
# We try to make the compiler work for C89-strict source. Even if the
|
||||||
# C compiler is gcc and C99 flags are available, some system headers
|
# C compiler is gcc and C89 flags are available, some system headers
|
||||||
# might be broken in C99 mode. We have to check whether compilation
|
# (e.g., Android Bionic libc) are broken in C89 mode. We have to check
|
||||||
# finishes successfully.
|
# whether the compilation finishes successfully.
|
||||||
|
#
|
||||||
|
# Due to bugs in mingwrt 4.0.3 we don't use `-ansi' for MinGW.
|
||||||
|
#
|
||||||
|
# To avoid zillions of
|
||||||
|
#
|
||||||
|
# ISO C90 does not support 'long long'
|
||||||
|
#
|
||||||
|
# warnings, we disable `-pedantic' for gcc version < 4.6.
|
||||||
#
|
#
|
||||||
if test "x$GCC" = xyes; then
|
if test "x$GCC" = xyes; then
|
||||||
XX_CFLAGS="-Wall"
|
XX_CFLAGS="-Wall"
|
||||||
|
@ -183,11 +250,23 @@ if test "x$GCC" = xyes; then
|
||||||
XX_ANSIFLAGS="-pedantic"
|
XX_ANSIFLAGS="-pedantic"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
XX_ANSIFLAGS=""
|
GCC_VERSION=`$CC -dumpversion`
|
||||||
|
GCC_MAJOR=`echo "$GCC_VERSION" | sed 's/\([[^.]][[^.]]*\).*/\1/'`
|
||||||
|
GCC_MINOR=`echo "$GCC_VERSION" | sed 's/[[^.]][[^.]]*.\([[^.]][[^.]]*\).*/\1/'`
|
||||||
|
|
||||||
for a in "-pedantic" "-std=c99"
|
XX_PEDANTIC=-pedantic
|
||||||
|
if test $GCC_MAJOR -lt 4; then
|
||||||
|
XX_PEDANTIC=
|
||||||
|
else
|
||||||
|
if test $GCC_MAJOR -eq 4 -a $GCC_MINOR -lt 6; then
|
||||||
|
XX_PEDANTIC=
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
XX_ANSIFLAGS=""
|
||||||
|
for a in $XX_PEDANTIC -ansi
|
||||||
do
|
do
|
||||||
AC_MSG_CHECKING([$CC compiler flag ${a} to assure ANSI C99 works correctly])
|
AC_MSG_CHECKING([gcc compiler flag ${a} to assure ANSI C works correctly])
|
||||||
orig_CFLAGS="${CFLAGS}"
|
orig_CFLAGS="${CFLAGS}"
|
||||||
CFLAGS="${CFLAGS} ${XX_ANSIFLAGS} ${a}"
|
CFLAGS="${CFLAGS} ${XX_ANSIFLAGS} ${a}"
|
||||||
AC_COMPILE_IFELSE([
|
AC_COMPILE_IFELSE([
|
||||||
|
@ -317,12 +396,6 @@ if test x"$with_zlib" = xyes -a "$have_zlib" = no; then
|
||||||
AC_MSG_ERROR([external zlib support requested but library not found])
|
AC_MSG_ERROR([external zlib support requested but library not found])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SYSTEM_ZLIB=
|
|
||||||
if test "$have_zlib" != no; then
|
|
||||||
SYSTEM_ZLIB=yes
|
|
||||||
fi
|
|
||||||
AC_SUBST([SYSTEM_ZLIB])
|
|
||||||
|
|
||||||
|
|
||||||
# check for system libbz2
|
# check for system libbz2
|
||||||
|
|
||||||
|
@ -405,7 +478,7 @@ if test x"$with_png" = xyes -o x"$with_png" = xauto; then
|
||||||
libpng_libsstaticconf="$LIBPNG_LIBS"
|
libpng_libsstaticconf="$LIBPNG_LIBS"
|
||||||
have_libpng="yes (LIBPNG_CFLAGS and LIBPNG_LIBS)"
|
have_libpng="yes (LIBPNG_CFLAGS and LIBPNG_LIBS)"
|
||||||
else
|
else
|
||||||
# fall back to config script
|
# fall back to config script.
|
||||||
AC_MSG_CHECKING([for libpng-config])
|
AC_MSG_CHECKING([for libpng-config])
|
||||||
if which libpng-config > /dev/null 2>&1; then
|
if which libpng-config > /dev/null 2>&1; then
|
||||||
LIBPNG_CFLAGS=`libpng-config --cflags`
|
LIBPNG_CFLAGS=`libpng-config --cflags`
|
||||||
|
@ -435,7 +508,7 @@ AC_ARG_WITH([harfbuzz],
|
||||||
|
|
||||||
have_harfbuzz=no
|
have_harfbuzz=no
|
||||||
if test x"$with_harfbuzz" = xyes -o x"$with_harfbuzz" = xauto; then
|
if test x"$with_harfbuzz" = xyes -o x"$with_harfbuzz" = xauto; then
|
||||||
harfbuzz_pkg="harfbuzz >= 2.0.0"
|
harfbuzz_pkg="harfbuzz >= 1.3.0"
|
||||||
have_harfbuzz_pkg=no
|
have_harfbuzz_pkg=no
|
||||||
|
|
||||||
if test x"$HARFBUZZ_CFLAGS" = x -a x"$HARFBUZZ_LIBS" = x; then
|
if test x"$HARFBUZZ_CFLAGS" = x -a x"$HARFBUZZ_LIBS" = x; then
|
||||||
|
@ -470,92 +543,19 @@ if test x"$with_harfbuzz" = xyes -a "$have_harfbuzz" = no; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# check for system libbrotlidec
|
# check for librt
|
||||||
|
|
||||||
AC_ARG_WITH([brotli],
|
|
||||||
[AS_HELP_STRING([--with-brotli=@<:@yes|no|auto@:>@],
|
|
||||||
[support decompression of WOFF2 streams @<:@default=auto@:>@])],
|
|
||||||
[], [with_brotli=auto])
|
|
||||||
|
|
||||||
have_brotli=no
|
|
||||||
if test x"$with_brotli" = xyes -o x"$with_brotli" = xauto; then
|
|
||||||
brotli_pkg="libbrotlidec"
|
|
||||||
have_brotli_pkg=no
|
|
||||||
|
|
||||||
if test x"$BROTLI_CFLAGS" = x -a x"$BROTLI_LIBS" = x; then
|
|
||||||
PKG_CHECK_EXISTS([$brotli_pkg], [have_brotli_pkg=yes])
|
|
||||||
fi
|
|
||||||
PKG_CHECK_MODULES([BROTLI], [$brotli_pkg],
|
|
||||||
[have_brotli="yes (pkg-config)"], [:])
|
|
||||||
|
|
||||||
if test $have_brotli_pkg = yes; then
|
|
||||||
# we have libbrotlidec.pc
|
|
||||||
brotli_reqpriv="$brotli_pkg"
|
|
||||||
brotli_libspriv=
|
|
||||||
brotli_libsstaticconf=`$PKG_CONFIG --static --libs "$brotli_pkg"`
|
|
||||||
else
|
|
||||||
brotli_reqpriv=
|
|
||||||
|
|
||||||
if test "$have_brotli" != no; then
|
|
||||||
# BROTLI_CFLAGS and BROTLI_LIBS are set by the user
|
|
||||||
brotli_libspriv="$BROTLI_LIBS"
|
|
||||||
brotli_libsstaticconf="$BROTLI_LIBS"
|
|
||||||
have_brotli="yes (BROTLI_CFLAGS and BROTLI_LIBS)"
|
|
||||||
else
|
|
||||||
# since Brotli is quite a new library we don't fall back to a
|
|
||||||
# different test
|
|
||||||
:
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$with_brotli" = xyes -a "$have_brotli" = no; then
|
|
||||||
AC_MSG_ERROR([brotli support requested but library not found])
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Checks for the demo programs.
|
|
||||||
#
|
#
|
||||||
# FreeType doesn't need this. However, since the demo program repository
|
# We need `clock_gettime' for the `ftbench' demo program.
|
||||||
# doesn't come with a `configure` script of its own, we integrate the tests
|
|
||||||
# here for simplicity.
|
|
||||||
|
|
||||||
# We need `clock_gettime` from 'librt' for the `ftbench` demo program.
|
|
||||||
#
|
#
|
||||||
# The code is modeled after gnulib's file `clock_time.m4`, ignoring
|
# The code is modeled after gnulib's file `clock_time.m4', ignoring
|
||||||
# very old Solaris systems.
|
# very old Solaris systems.
|
||||||
|
|
||||||
LIB_CLOCK_GETTIME=
|
LIB_CLOCK_GETTIME=
|
||||||
AC_SEARCH_LIBS([clock_gettime],
|
AC_SEARCH_LIBS([clock_gettime],
|
||||||
[rt],
|
[rt],
|
||||||
[test "$ac_cv_search_clock_gettime" = "none required" \
|
[test "$ac_cv_search_clock_gettime" = "none required" \
|
||||||
|| LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
|
|| LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
|
||||||
|
AC_SUBST([LIB_CLOCK_GETTIME])
|
||||||
FT_DEMO_CFLAGS=""
|
|
||||||
FT_DEMO_LDFLAGS="$LIB_CLOCK_GETTIME"
|
|
||||||
|
|
||||||
# 'librsvg' is needed to demonstrate SVG support.
|
|
||||||
AC_ARG_WITH([librsvg],
|
|
||||||
[AS_HELP_STRING([--with-librsvg=@<:@yes|no|auto@:>@],
|
|
||||||
[support OpenType SVG fonts in FreeType demo programs @<:@default=auto@:>@])],
|
|
||||||
[], [with_librsvg=auto])
|
|
||||||
|
|
||||||
have_librsvg=no
|
|
||||||
if test x"$with_librsvg" = xyes -o x"$with_librsvg" = xauto; then
|
|
||||||
PKG_CHECK_MODULES([LIBRSVG], [librsvg-2.0 >= 2.46.0],
|
|
||||||
[have_librsvg="yes (pkg-config)"], [:])
|
|
||||||
|
|
||||||
if test "$have_librsvg" != no; then
|
|
||||||
FT_DEMO_CFLAGS="$FT_DEMO_CFLAGS $LIBRSVG_CFLAGS -DHAVE_LIBRSVG"
|
|
||||||
FT_DEMO_LDFLAGS="$FT_DEMO_LDFLAGS $LIBRSVG_LIBS"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$with_librsvg" = xyes -a "$have_librsvg" = no; then
|
|
||||||
AC_MSG_ERROR([librsvg support requested but library not found])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST([FT_DEMO_CFLAGS])
|
|
||||||
AC_SUBST([FT_DEMO_LDFLAGS])
|
|
||||||
|
|
||||||
|
|
||||||
# Some options handling SDKs/archs in CFLAGS should be copied
|
# Some options handling SDKs/archs in CFLAGS should be copied
|
||||||
|
@ -968,24 +968,16 @@ case "$CFLAGS" in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Check for pthreads
|
# Check for python and docwriter
|
||||||
|
|
||||||
AX_PTHREAD([have_pthread=yes], [have_pthread=no])
|
AC_CHECK_PROGS([PYTHON], [python3 python2 python], [missing])
|
||||||
|
|
||||||
# Check for Python and docwriter
|
|
||||||
|
|
||||||
have_py3=no
|
|
||||||
have_docwriter=no
|
have_docwriter=no
|
||||||
PIP=pip
|
|
||||||
|
|
||||||
AC_CHECK_PROGS([PYTHON], [python3 python], [missing])
|
|
||||||
if test "x$PYTHON" != "xmissing"; then
|
if test "x$PYTHON" != "xmissing"; then
|
||||||
AX_PROG_PYTHON_VERSION([3.5], [have_py3=yes], [])
|
AC_CHECK_PROGS([PIP], [pip3 pip2 pip], [missing])
|
||||||
|
|
||||||
if test "x$have_py3" = "xyes"; then
|
if test "x$PIP" != "xmissing"; then
|
||||||
PIP="$PYTHON -m $PIP"
|
AC_MSG_CHECKING([for \`docwriter' Python module])
|
||||||
AC_MSG_CHECKING([for `docwriter' Python module])
|
$PIP show -q docwriter
|
||||||
$PYTHON -m docwriter -h > /dev/null 2>&1
|
|
||||||
if test "x$?" = "x0"; then
|
if test "x$?" = "x0"; then
|
||||||
have_docwriter=yes
|
have_docwriter=yes
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
|
@ -996,40 +988,37 @@ if test "x$PYTHON" != "xmissing"; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# entries in Requires.private are separated by commas
|
# entries in Requires.private are separated by commas;
|
||||||
PKGCONFIG_REQUIRES_PRIVATE="$zlib_reqpriv, \
|
REQUIRES_PRIVATE="$zlib_reqpriv, \
|
||||||
$bzip2_reqpriv, \
|
$bzip2_reqpriv, \
|
||||||
$libpng_reqpriv, \
|
$libpng_reqpriv, \
|
||||||
$harfbuzz_reqpriv, \
|
$harfbuzz_reqpriv"
|
||||||
$brotli_reqpriv"
|
|
||||||
# beautify
|
# beautify
|
||||||
PKGCONFIG_REQUIRES_PRIVATE=`echo "$PKGCONFIG_REQUIRES_PRIVATE" \
|
REQUIRES_PRIVATE=`echo "$REQUIRES_PRIVATE" \
|
||||||
| sed -e 's/^ *//' \
|
| sed -e 's/^ *//' \
|
||||||
-e 's/ *$//' \
|
-e 's/ *$//' \
|
||||||
-e 's/, */,/g' \
|
-e 's/, */,/g' \
|
||||||
-e 's/,,*/,/g' \
|
-e 's/,,*/,/g' \
|
||||||
-e 's/^,*//' \
|
-e 's/^,*//' \
|
||||||
-e 's/,*$//' \
|
-e 's/,*$//' \
|
||||||
-e 's/,/, /g'`
|
-e 's/,/, /g'`
|
||||||
|
|
||||||
PKGCONFIG_LIBS_PRIVATE="$zlib_libspriv \
|
LIBS_PRIVATE="$zlib_libspriv \
|
||||||
$bzip2_libspriv \
|
$bzip2_libspriv \
|
||||||
$libpng_libspriv \
|
$libpng_libspriv \
|
||||||
$harfbuzz_libspriv \
|
$harfbuzz_libspriv \
|
||||||
$brotli_libspriv \
|
$ft2_extra_libs"
|
||||||
$ft2_extra_libs"
|
|
||||||
# beautify
|
# beautify
|
||||||
PKGCONFIG_LIBS_PRIVATE=`echo "$PKGCONFIG_LIBS_PRIVATE" \
|
LIBS_PRIVATE=`echo "$LIBS_PRIVATE" \
|
||||||
| sed -e 's/^ *//' \
|
| sed -e 's/^ *//' \
|
||||||
-e 's/ *$//' \
|
-e 's/ *$//' \
|
||||||
-e 's/ */ /g'`
|
-e 's/ */ /g'`
|
||||||
|
|
||||||
LIBSSTATIC_CONFIG="-lfreetype \
|
LIBSSTATIC_CONFIG="-lfreetype \
|
||||||
$zlib_libsstaticconf \
|
$zlib_libsstaticconf \
|
||||||
$bzip2_libsstaticconf \
|
$bzip2_libsstaticconf \
|
||||||
$libpng_libsstaticconf \
|
$libpng_libsstaticconf \
|
||||||
$harfbuzz_libsstaticconf \
|
$harfbuzz_libsstaticconf \
|
||||||
$brotli_libsstaticconf \
|
|
||||||
$ft2_extra_libs"
|
$ft2_extra_libs"
|
||||||
# remove -L/usr/lib and -L/usr/lib64 since `freetype-config' adds them later
|
# remove -L/usr/lib and -L/usr/lib64 since `freetype-config' adds them later
|
||||||
# on if necessary; also beautify
|
# on if necessary; also beautify
|
||||||
|
@ -1040,28 +1029,10 @@ LIBSSTATIC_CONFIG=`echo "$LIBSSTATIC_CONFIG" \
|
||||||
-e 's/ *$//' \
|
-e 's/ *$//' \
|
||||||
-e 's/ */ /g'`
|
-e 's/ */ /g'`
|
||||||
|
|
||||||
# If FreeType gets installed with `--disable-shared', don't use
|
|
||||||
# 'private' fields. `pkg-config' only looks into `.pc' files and is
|
|
||||||
# completely agnostic to whether shared libraries are actually present
|
|
||||||
# or not. As a consequence, the user had to specify `--static' while
|
|
||||||
# calling `pkg-config', which configure scripts are normally not
|
|
||||||
# prepared for.
|
|
||||||
|
|
||||||
PKGCONFIG_REQUIRES=
|
|
||||||
PKGCONFIG_LIBS='-L${libdir} -lfreetype'
|
|
||||||
|
|
||||||
if test $enable_shared = "no"; then
|
|
||||||
PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES $PKGCONFIG_REQUIRES_PRIVATE"
|
|
||||||
PKGCONFIG_REQUIRES_PRIVATE=
|
|
||||||
PKGCONFIG_LIBS="$PKGCONFIG_LIBS $PKGCONFIG_LIBS_PRIVATE"
|
|
||||||
PKGCONFIG_LIBS_PRIVATE=
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST([ftmac_c])
|
AC_SUBST([ftmac_c])
|
||||||
AC_SUBST([PKGCONFIG_REQUIRES])
|
AC_SUBST([REQUIRES_PRIVATE])
|
||||||
AC_SUBST([PKGCONFIG_LIBS])
|
AC_SUBST([LIBS_PRIVATE])
|
||||||
AC_SUBST([PKGCONFIG_REQUIRES_PRIVATE])
|
|
||||||
AC_SUBST([PKGCONFIG_LIBS_PRIVATE])
|
|
||||||
AC_SUBST([LIBSSTATIC_CONFIG])
|
AC_SUBST([LIBSSTATIC_CONFIG])
|
||||||
|
|
||||||
AC_SUBST([hardcode_libdir_flag_spec])
|
AC_SUBST([hardcode_libdir_flag_spec])
|
||||||
|
@ -1112,18 +1083,6 @@ if test "$have_harfbuzz" != no; then
|
||||||
else
|
else
|
||||||
ftoption_unset FT_CONFIG_OPTION_USE_HARFBUZZ
|
ftoption_unset FT_CONFIG_OPTION_USE_HARFBUZZ
|
||||||
fi
|
fi
|
||||||
if test "$have_brotli" != no; then
|
|
||||||
CFLAGS="$CFLAGS $BROTLI_CFLAGS"
|
|
||||||
LDFLAGS="$LDFLAGS $BROTLI_LIBS"
|
|
||||||
ftoption_set FT_CONFIG_OPTION_USE_BROTLI
|
|
||||||
else
|
|
||||||
ftoption_unset FT_CONFIG_OPTION_USE_BROTLI
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$have_pthread" != no; then
|
|
||||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
||||||
LDFLAGS="$LDFLAGS $PTHREAD_CFLAGS $PTHREAD_LIBS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST([CFLAGS])
|
AC_SUBST([CFLAGS])
|
||||||
AC_SUBST([LDFLAGS])
|
AC_SUBST([LDFLAGS])
|
||||||
|
@ -1141,7 +1100,15 @@ AC_CONFIG_FILES([ftoption.h:${srcdir}/../../include/freetype/config/ftoption.h],
|
||||||
rm ftoption.tmp],
|
rm ftoption.tmp],
|
||||||
[FTOPTION_H_SED="$FTOPTION_H_SED"])
|
[FTOPTION_H_SED="$FTOPTION_H_SED"])
|
||||||
|
|
||||||
AC_CONFIG_HEADERS([ftconfig.h])
|
# configuration file -- stay in 8.3 limit
|
||||||
|
#
|
||||||
|
# since #undef doesn't survive in configuration header files we replace
|
||||||
|
# `/undef' with `#undef' after creating the output file
|
||||||
|
|
||||||
|
AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in],
|
||||||
|
[mv ftconfig.h ftconfig.tmp
|
||||||
|
sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h
|
||||||
|
rm ftconfig.tmp])
|
||||||
|
|
||||||
# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
|
# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
|
||||||
# and `builds/unix/unix-cc.mk' that will be used by the build system
|
# and `builds/unix/unix-cc.mk' that will be used by the build system
|
||||||
|
@ -1149,6 +1116,10 @@ AC_CONFIG_HEADERS([ftconfig.h])
|
||||||
AC_CONFIG_FILES([unix-cc.mk:unix-cc.in
|
AC_CONFIG_FILES([unix-cc.mk:unix-cc.in
|
||||||
unix-def.mk:unix-def.in])
|
unix-def.mk:unix-def.in])
|
||||||
|
|
||||||
|
# re-generate the Jamfile to use libtool now
|
||||||
|
#
|
||||||
|
# AC_CONFIG_FILES([../../Jamfile:../../Jamfile.in])
|
||||||
|
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
AC_MSG_NOTICE([
|
AC_MSG_NOTICE([
|
||||||
|
@ -1158,28 +1129,16 @@ Library configuration:
|
||||||
bzip2: $have_bzip2
|
bzip2: $have_bzip2
|
||||||
libpng: $have_libpng
|
libpng: $have_libpng
|
||||||
harfbuzz: $have_harfbuzz
|
harfbuzz: $have_harfbuzz
|
||||||
brotli: $have_brotli
|
|
||||||
pthread: $have_pthread
|
|
||||||
])
|
])
|
||||||
|
|
||||||
# Warn if docwriter is not installed
|
# Warn if docwriter is not installed
|
||||||
|
|
||||||
if test $have_docwriter = no; then
|
if test $have_docwriter = no; then
|
||||||
AC_MSG_WARN([
|
AC_MSG_NOTICE([
|
||||||
`make refdoc' will fail since pip package `docwriter' is not installed.
|
Warning: \`make refdoc' will fail since pip package \`docwriter' is not
|
||||||
To install, run `$PIP install docwriter', or to use a Python
|
installed. To install, run \`$PIP install docwriter', or to use a python
|
||||||
virtual environment, run `make refdoc-venv' (requires pip package
|
virtual environment, run \`make refdoc-venv' (requires pip package
|
||||||
`virtualenv'). These operations require Python >= 3.5.
|
\`virtualenv').
|
||||||
])
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Warn if pthread is not available
|
|
||||||
|
|
||||||
if test $have_pthread = no; then
|
|
||||||
AC_MSG_WARN([
|
|
||||||
`FT_DEBUG_LOGGING' will not work since the `pthread' library is not
|
|
||||||
available. This warning can be safely ignored if you don't plan to use
|
|
||||||
this configuration macro.
|
|
||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000-2022 by
|
# Copyright (C) 2000-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -7,8 +7,8 @@ Name: FreeType 2
|
||||||
URL: https://freetype.org
|
URL: https://freetype.org
|
||||||
Description: A free, high-quality, and portable font engine.
|
Description: A free, high-quality, and portable font engine.
|
||||||
Version: %ft_version%
|
Version: %ft_version%
|
||||||
Requires: %PKGCONFIG_REQUIRES%
|
Requires:
|
||||||
Requires.private: %PKGCONFIG_REQUIRES_PRIVATE%
|
Requires.private: %REQUIRES_PRIVATE%
|
||||||
Libs: %PKGCONFIG_LIBS%
|
Libs: -L${libdir} -lfreetype
|
||||||
Libs.private: %PKGCONFIG_LIBS_PRIVATE%
|
Libs.private: %LIBS_PRIVATE%
|
||||||
Cflags: -I${includedir}/freetype2
|
Cflags: -I${includedir}/freetype2
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Configure paths for FreeType2
|
# Configure paths for FreeType2
|
||||||
# Marcelo Magallon 2001-10-26, based on `gtk.m4` by Owen Taylor
|
# Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor
|
||||||
#
|
#
|
||||||
# Copyright (C) 2001-2022 by
|
# Copyright (C) 2001-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -15,32 +15,32 @@
|
||||||
# generated by Autoconf, under the same distribution terms as the rest of
|
# generated by Autoconf, under the same distribution terms as the rest of
|
||||||
# that program.
|
# that program.
|
||||||
#
|
#
|
||||||
# serial 6
|
# serial 4
|
||||||
|
|
||||||
# AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
# AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||||
# Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
|
# Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
|
||||||
# MINIMUM-VERSION is what libtool reports; the default is '7.0.1' (this is
|
# MINIMUM-VERSION is what libtool reports; the default is `7.0.1' (this is
|
||||||
# FreeType 2.0.4).
|
# FreeType 2.0.4).
|
||||||
#
|
#
|
||||||
# To make this code work with older autoconf versions, `AS_HELP_STRING` is
|
|
||||||
# not quoted.
|
|
||||||
#
|
|
||||||
AC_DEFUN([AC_CHECK_FT2],
|
AC_DEFUN([AC_CHECK_FT2],
|
||||||
[# Get the cflags and libraries from the freetype-config script
|
[# Get the cflags and libraries from the freetype-config script
|
||||||
#
|
#
|
||||||
AC_ARG_WITH([ft-prefix],
|
AC_ARG_WITH([ft-prefix],
|
||||||
|
dnl don't quote AS_HELP_STRING!
|
||||||
AS_HELP_STRING([--with-ft-prefix=PREFIX],
|
AS_HELP_STRING([--with-ft-prefix=PREFIX],
|
||||||
[Prefix where FreeType is installed (optional)]),
|
[Prefix where FreeType is installed (optional)]),
|
||||||
[ft_config_prefix="$withval"],
|
[ft_config_prefix="$withval"],
|
||||||
[ft_config_prefix=""])
|
[ft_config_prefix=""])
|
||||||
|
|
||||||
AC_ARG_WITH([ft-exec-prefix],
|
AC_ARG_WITH([ft-exec-prefix],
|
||||||
|
dnl don't quote AS_HELP_STRING!
|
||||||
AS_HELP_STRING([--with-ft-exec-prefix=PREFIX],
|
AS_HELP_STRING([--with-ft-exec-prefix=PREFIX],
|
||||||
[Exec prefix where FreeType is installed (optional)]),
|
[Exec prefix where FreeType is installed (optional)]),
|
||||||
[ft_config_exec_prefix="$withval"],
|
[ft_config_exec_prefix="$withval"],
|
||||||
[ft_config_exec_prefix=""])
|
[ft_config_exec_prefix=""])
|
||||||
|
|
||||||
AC_ARG_ENABLE([freetypetest],
|
AC_ARG_ENABLE([freetypetest],
|
||||||
|
dnl don't quote AS_HELP_STRING!
|
||||||
AS_HELP_STRING([--disable-freetypetest],
|
AS_HELP_STRING([--disable-freetypetest],
|
||||||
[Do not try to compile and run a test FreeType program]),
|
[Do not try to compile and run a test FreeType program]),
|
||||||
[],
|
[],
|
||||||
|
@ -116,7 +116,7 @@ AC_DEFUN([AC_CHECK_FT2],
|
||||||
AC_LANG_SOURCE([[
|
AC_LANG_SOURCE([[
|
||||||
|
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
#include <freetype/freetype.h>
|
#include FT_FREETYPE_H
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
## FreeType specific autoconf tests
|
## FreeType specific autoconf tests
|
||||||
#
|
#
|
||||||
# Copyright (C) 2002-2022 by
|
# Copyright (C) 2002-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
*
|
|
||||||
* ftconfig.h.in
|
|
||||||
*
|
|
||||||
* UNIX-specific configuration file (specification only).
|
|
||||||
*
|
|
||||||
* Copyright (C) 1996-2022 by
|
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
||||||
*
|
|
||||||
* This file is part of the FreeType project, and may only be used,
|
|
||||||
* modified, and distributed under the terms of the FreeType project
|
|
||||||
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
|
||||||
* this file you indicate that you have read the license and
|
|
||||||
* understand and accept it fully.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* This header file contains a number of macro definitions that are used by
|
|
||||||
* the rest of the engine. Most of the macros here are automatically
|
|
||||||
* determined at compile time, and you should not need to change it to port
|
|
||||||
* FreeType, except to compile the library with a non-ANSI compiler.
|
|
||||||
*
|
|
||||||
* Note however that if some specific modifications are needed, we advise
|
|
||||||
* you to place a modified copy in your build directory.
|
|
||||||
*
|
|
||||||
* The build directory is usually `builds/<system>`, and contains
|
|
||||||
* system-specific files that are always included first when building the
|
|
||||||
* library.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef FTCONFIG_H_
|
|
||||||
#define FTCONFIG_H_
|
|
||||||
|
|
||||||
#include <ft2build.h>
|
|
||||||
#include FT_CONFIG_OPTIONS_H
|
|
||||||
#include FT_CONFIG_STANDARD_LIBRARY_H
|
|
||||||
|
|
||||||
#undef HAVE_UNISTD_H
|
|
||||||
#undef HAVE_FCNTL_H
|
|
||||||
|
|
||||||
#include <freetype/config/integer-types.h>
|
|
||||||
#include <freetype/config/public-macros.h>
|
|
||||||
#include <freetype/config/mac-support.h>
|
|
||||||
|
|
||||||
#endif /* FTCONFIG_H_ */
|
|
||||||
|
|
||||||
|
|
||||||
/* END */
|
|
|
@ -0,0 +1,603 @@
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* ftconfig.in
|
||||||
|
*
|
||||||
|
* UNIX-specific configuration file (specification only).
|
||||||
|
*
|
||||||
|
* Copyright (C) 1996-2019 by
|
||||||
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
*
|
||||||
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
* modified, and distributed under the terms of the FreeType project
|
||||||
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
|
* this file you indicate that you have read the license and
|
||||||
|
* understand and accept it fully.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* This header file contains a number of macro definitions that are used by
|
||||||
|
* the rest of the engine. Most of the macros here are automatically
|
||||||
|
* determined at compile time, and you should not need to change it to port
|
||||||
|
* FreeType, except to compile the library with a non-ANSI compiler.
|
||||||
|
*
|
||||||
|
* Note however that if some specific modifications are needed, we advise
|
||||||
|
* you to place a modified copy in your build directory.
|
||||||
|
*
|
||||||
|
* The build directory is usually `builds/<system>`, and contains
|
||||||
|
* system-specific files that are always included first when building the
|
||||||
|
* library.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FTCONFIG_H_
|
||||||
|
#define FTCONFIG_H_
|
||||||
|
|
||||||
|
#include <ft2build.h>
|
||||||
|
#include FT_CONFIG_OPTIONS_H
|
||||||
|
#include FT_CONFIG_STANDARD_LIBRARY_H
|
||||||
|
|
||||||
|
|
||||||
|
FT_BEGIN_HEADER
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* PLATFORM-SPECIFIC CONFIGURATION MACROS
|
||||||
|
*
|
||||||
|
* These macros can be toggled to suit a specific system. The current ones
|
||||||
|
* are defaults used to compile FreeType in an ANSI C environment (16bit
|
||||||
|
* compilers are also supported). Copy this file to your own
|
||||||
|
* `builds/<system>` directory, and edit it to port the engine.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
#undef HAVE_FCNTL_H
|
||||||
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
/* There are systems (like the Texas Instruments 'C54x) where a `char` */
|
||||||
|
/* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */
|
||||||
|
/* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */
|
||||||
|
/* is probably unexpected. */
|
||||||
|
/* */
|
||||||
|
/* `CHAR_BIT` (defined in `limits.h`) gives the number of bits in a */
|
||||||
|
/* `char` type. */
|
||||||
|
|
||||||
|
#ifndef FT_CHAR_BIT
|
||||||
|
#define FT_CHAR_BIT CHAR_BIT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#undef FT_USE_AUTOCONF_SIZEOF_TYPES
|
||||||
|
#ifdef FT_USE_AUTOCONF_SIZEOF_TYPES
|
||||||
|
|
||||||
|
#undef SIZEOF_INT
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define FT_SIZEOF_INT SIZEOF_INT
|
||||||
|
#define FT_SIZEOF_LONG SIZEOF_LONG
|
||||||
|
|
||||||
|
#else /* !FT_USE_AUTOCONF_SIZEOF_TYPES */
|
||||||
|
|
||||||
|
/* Following cpp computation of the bit length of `int` and `long` */
|
||||||
|
/* is copied from default `include/freetype/config/ftconfig.h`. */
|
||||||
|
/* If any improvement is required for this file, it should be */
|
||||||
|
/* applied to the original header file for the builders that do */
|
||||||
|
/* not use configure script. */
|
||||||
|
|
||||||
|
/* The size of an `int` type. */
|
||||||
|
#if FT_UINT_MAX == 0xFFFFUL
|
||||||
|
#define FT_SIZEOF_INT ( 16 / FT_CHAR_BIT )
|
||||||
|
#elif FT_UINT_MAX == 0xFFFFFFFFUL
|
||||||
|
#define FT_SIZEOF_INT ( 32 / FT_CHAR_BIT )
|
||||||
|
#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL
|
||||||
|
#define FT_SIZEOF_INT ( 64 / FT_CHAR_BIT )
|
||||||
|
#else
|
||||||
|
#error "Unsupported size of `int' type!"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* The size of a `long` type. A five-byte `long` (as used e.g. on the */
|
||||||
|
/* DM642) is recognized but avoided. */
|
||||||
|
#if FT_ULONG_MAX == 0xFFFFFFFFUL
|
||||||
|
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
|
||||||
|
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL
|
||||||
|
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
|
||||||
|
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL
|
||||||
|
#define FT_SIZEOF_LONG ( 64 / FT_CHAR_BIT )
|
||||||
|
#else
|
||||||
|
#error "Unsupported size of `long' type!"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_USE_AUTOCONF_SIZEOF_TYPES */
|
||||||
|
|
||||||
|
/* `FT_UNUSED` indicates that a given parameter is not used -- */
|
||||||
|
/* this is only used to get rid of unpleasant compiler warnings. */
|
||||||
|
#ifndef FT_UNUSED
|
||||||
|
#define FT_UNUSED( arg ) ( (arg) = (arg) )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* AUTOMATIC CONFIGURATION MACROS
|
||||||
|
*
|
||||||
|
* These macros are computed from the ones defined above. Don't touch
|
||||||
|
* their definition, unless you know precisely what you are doing. No
|
||||||
|
* porter should need to mess with them.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Mac support
|
||||||
|
*
|
||||||
|
* This is the only necessary change, so it is defined here instead
|
||||||
|
* providing a new configuration file.
|
||||||
|
*/
|
||||||
|
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
|
||||||
|
/* No Carbon frameworks for 64bit 10.4.x. */
|
||||||
|
/* `AvailabilityMacros.h` is available since Mac OS X 10.2, */
|
||||||
|
/* so guess the system version by maximum errno before inclusion. */
|
||||||
|
#include <errno.h>
|
||||||
|
#ifdef ECANCELED /* defined since 10.2 */
|
||||||
|
#include "AvailabilityMacros.h"
|
||||||
|
#endif
|
||||||
|
#if defined( __LP64__ ) && \
|
||||||
|
( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
|
||||||
|
/undef FT_MACINTOSH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined( __SC__ ) || defined( __MRC__ )
|
||||||
|
/* Classic MacOS compilers */
|
||||||
|
#include "ConditionalMacros.h"
|
||||||
|
#if TARGET_OS_MAC
|
||||||
|
#define FT_MACINTOSH 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Fix compiler warning with sgi compiler. */
|
||||||
|
#if defined( __sgi ) && !defined( __GNUC__ )
|
||||||
|
#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
|
||||||
|
#pragma set woff 3505
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @section:
|
||||||
|
* basic_types
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Int16
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for a 16bit signed integer type.
|
||||||
|
*/
|
||||||
|
typedef signed short FT_Int16;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UInt16
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for a 16bit unsigned integer type.
|
||||||
|
*/
|
||||||
|
typedef unsigned short FT_UInt16;
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
|
||||||
|
/* this #if 0 ... #endif clause is for documentation purposes */
|
||||||
|
#if 0
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Int32
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for a 32bit signed integer type. The size depends on the
|
||||||
|
* configuration.
|
||||||
|
*/
|
||||||
|
typedef signed XXX FT_Int32;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UInt32
|
||||||
|
*
|
||||||
|
* A typedef for a 32bit unsigned integer type. The size depends on the
|
||||||
|
* configuration.
|
||||||
|
*/
|
||||||
|
typedef unsigned XXX FT_UInt32;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Int64
|
||||||
|
*
|
||||||
|
* A typedef for a 64bit signed integer type. The size depends on the
|
||||||
|
* configuration. Only defined if there is real 64bit support;
|
||||||
|
* otherwise, it gets emulated with a structure (if necessary).
|
||||||
|
*/
|
||||||
|
typedef signed XXX FT_Int64;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UInt64
|
||||||
|
*
|
||||||
|
* A typedef for a 64bit unsigned integer type. The size depends on the
|
||||||
|
* configuration. Only defined if there is real 64bit support;
|
||||||
|
* otherwise, it gets emulated with a structure (if necessary).
|
||||||
|
*/
|
||||||
|
typedef unsigned XXX FT_UInt64;
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if FT_SIZEOF_INT == 4
|
||||||
|
|
||||||
|
typedef signed int FT_Int32;
|
||||||
|
typedef unsigned int FT_UInt32;
|
||||||
|
|
||||||
|
#elif FT_SIZEOF_LONG == 4
|
||||||
|
|
||||||
|
typedef signed long FT_Int32;
|
||||||
|
typedef unsigned long FT_UInt32;
|
||||||
|
|
||||||
|
#else
|
||||||
|
#error "no 32bit type found -- please check your configuration files"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* look up an integer type that is at least 32~bits */
|
||||||
|
#if FT_SIZEOF_INT >= 4
|
||||||
|
|
||||||
|
typedef int FT_Fast;
|
||||||
|
typedef unsigned int FT_UFast;
|
||||||
|
|
||||||
|
#elif FT_SIZEOF_LONG >= 4
|
||||||
|
|
||||||
|
typedef long FT_Fast;
|
||||||
|
typedef unsigned long FT_UFast;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* determine whether we have a 64-bit `int` type for platforms without */
|
||||||
|
/* Autoconf */
|
||||||
|
#if FT_SIZEOF_LONG == 8
|
||||||
|
|
||||||
|
/* `FT_LONG64` must be defined if a 64-bit type is available */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long
|
||||||
|
#define FT_UINT64 unsigned long
|
||||||
|
|
||||||
|
/* we handle the LLP64 scheme separately for GCC and clang, */
|
||||||
|
/* suppressing the `long long` warning */
|
||||||
|
#elif ( FT_SIZEOF_LONG == 4 ) && \
|
||||||
|
defined( HAVE_LONG_LONG_INT ) && \
|
||||||
|
defined( __GNUC__ )
|
||||||
|
#pragma GCC diagnostic ignored "-Wlong-long"
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* A 64-bit data type may create compilation problems if you compile in
|
||||||
|
* strict ANSI mode. To avoid them, we disable other 64-bit data types if
|
||||||
|
* `__STDC__` is defined. You can however ignore this rule by defining the
|
||||||
|
* `FT_CONFIG_OPTION_FORCE_INT64` configuration macro.
|
||||||
|
*/
|
||||||
|
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
|
||||||
|
|
||||||
|
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
|
||||||
|
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
|
||||||
|
|
||||||
|
/* this compiler provides the `__int64` type */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 __int64
|
||||||
|
#define FT_UINT64 unsigned __int64
|
||||||
|
|
||||||
|
#elif defined( __BORLANDC__ ) /* Borland C++ */
|
||||||
|
|
||||||
|
/* XXXX: We should probably check the value of `__BORLANDC__` in order */
|
||||||
|
/* to test the compiler version. */
|
||||||
|
|
||||||
|
/* this compiler provides the `__int64` type */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 __int64
|
||||||
|
#define FT_UINT64 unsigned __int64
|
||||||
|
|
||||||
|
#elif defined( __WATCOMC__ ) /* Watcom C++ */
|
||||||
|
|
||||||
|
/* Watcom doesn't provide 64-bit data types */
|
||||||
|
|
||||||
|
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
|
||||||
|
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
#elif defined( __GNUC__ )
|
||||||
|
|
||||||
|
/* GCC provides the `long long` type */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
#endif /* __STDC_VERSION__ >= 199901L */
|
||||||
|
|
||||||
|
#endif /* FT_SIZEOF_LONG == 8 */
|
||||||
|
|
||||||
|
#ifdef FT_LONG64
|
||||||
|
typedef FT_INT64 FT_Int64;
|
||||||
|
typedef FT_UINT64 FT_UInt64;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _WIN64
|
||||||
|
/* only 64bit Windows uses the LLP64 data model, i.e., */
|
||||||
|
/* 32bit integers, 64bit pointers */
|
||||||
|
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
|
||||||
|
#else
|
||||||
|
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* miscellaneous
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define FT_BEGIN_STMNT do {
|
||||||
|
#define FT_END_STMNT } while ( 0 )
|
||||||
|
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
|
||||||
|
|
||||||
|
|
||||||
|
/* `typeof` condition taken from gnulib's `intprops.h` header file */
|
||||||
|
#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
|
||||||
|
( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
|
||||||
|
defined( __IBM__TYPEOF__ ) ) || \
|
||||||
|
( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
|
||||||
|
#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
|
||||||
|
#else
|
||||||
|
#define FT_TYPEOF( type ) /* empty */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Use `FT_LOCAL` and `FT_LOCAL_DEF` to declare and define, */
|
||||||
|
/* respectively, a function that gets used only within the scope of a */
|
||||||
|
/* module. Normally, both the header and source code files for such a */
|
||||||
|
/* function are within a single module directory. */
|
||||||
|
/* */
|
||||||
|
/* Intra-module arrays should be tagged with `FT_LOCAL_ARRAY` and */
|
||||||
|
/* `FT_LOCAL_ARRAY_DEF`. */
|
||||||
|
/* */
|
||||||
|
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
|
||||||
|
|
||||||
|
#define FT_LOCAL( x ) static x
|
||||||
|
#define FT_LOCAL_DEF( x ) static x
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_LOCAL( x ) extern "C" x
|
||||||
|
#define FT_LOCAL_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_LOCAL( x ) extern x
|
||||||
|
#define FT_LOCAL_DEF( x ) x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
|
||||||
|
|
||||||
|
#define FT_LOCAL_ARRAY( x ) extern const x
|
||||||
|
#define FT_LOCAL_ARRAY_DEF( x ) const x
|
||||||
|
|
||||||
|
|
||||||
|
/* Use `FT_BASE` and `FT_BASE_DEF` to declare and define, respectively, */
|
||||||
|
/* functions that are used in more than a single module. In the */
|
||||||
|
/* current setup this implies that the declaration is in a header file */
|
||||||
|
/* in the `include/freetype/internal` directory, and the function body */
|
||||||
|
/* is in a file in `src/base`. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_BASE
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_BASE( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_BASE( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_BASE */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FT_BASE_DEF
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_BASE_DEF( x ) x
|
||||||
|
#else
|
||||||
|
#define FT_BASE_DEF( x ) x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_BASE_DEF */
|
||||||
|
|
||||||
|
|
||||||
|
/* When compiling FreeType as a DLL or DSO with hidden visibility */
|
||||||
|
/* some systems/compilers need a special attribute in front OR after */
|
||||||
|
/* the return type of function declarations. */
|
||||||
|
/* */
|
||||||
|
/* Two macros are used within the FreeType source code to define */
|
||||||
|
/* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. */
|
||||||
|
/* */
|
||||||
|
/* - `FT_EXPORT( return_type )` */
|
||||||
|
/* */
|
||||||
|
/* is used in a function declaration, as in */
|
||||||
|
/* */
|
||||||
|
/* ``` */
|
||||||
|
/* FT_EXPORT( FT_Error ) */
|
||||||
|
/* FT_Init_FreeType( FT_Library* alibrary ); */
|
||||||
|
/* ``` */
|
||||||
|
/* */
|
||||||
|
/* - `FT_EXPORT_DEF( return_type )` */
|
||||||
|
/* */
|
||||||
|
/* is used in a function definition, as in */
|
||||||
|
/* */
|
||||||
|
/* ``` */
|
||||||
|
/* FT_EXPORT_DEF( FT_Error ) */
|
||||||
|
/* FT_Init_FreeType( FT_Library* alibrary ) */
|
||||||
|
/* { */
|
||||||
|
/* ... some code ... */
|
||||||
|
/* return FT_Err_Ok; */
|
||||||
|
/* } */
|
||||||
|
/* ``` */
|
||||||
|
/* */
|
||||||
|
/* You can provide your own implementation of `FT_EXPORT` and */
|
||||||
|
/* `FT_EXPORT_DEF` here if you want. */
|
||||||
|
/* */
|
||||||
|
/* To export a variable, use `FT_EXPORT_VAR`. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_EXPORT
|
||||||
|
|
||||||
|
#ifdef FT2_BUILD_LIBRARY
|
||||||
|
|
||||||
|
#if defined( _WIN32 ) && defined( DLL_EXPORT )
|
||||||
|
#define FT_EXPORT( x ) __declspec( dllexport ) x
|
||||||
|
#elif defined( __GNUC__ ) && __GNUC__ >= 4
|
||||||
|
#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x
|
||||||
|
#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550
|
||||||
|
#define FT_EXPORT( x ) __global x
|
||||||
|
#elif defined( __cplusplus )
|
||||||
|
#define FT_EXPORT( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#if defined( _WIN32 ) && defined( DLL_IMPORT )
|
||||||
|
#define FT_EXPORT( x ) __declspec( dllimport ) x
|
||||||
|
#elif defined( __cplusplus )
|
||||||
|
#define FT_EXPORT( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_EXPORT */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FT_EXPORT_DEF
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_EXPORT_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT_DEF( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_EXPORT_DEF */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FT_EXPORT_VAR
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_EXPORT_VAR( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT_VAR( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_EXPORT_VAR */
|
||||||
|
|
||||||
|
|
||||||
|
/* The following macros are needed to compile the library with a */
|
||||||
|
/* C++ compiler and with 16bit compilers. */
|
||||||
|
/* */
|
||||||
|
|
||||||
|
/* This is special. Within C++, you must specify `extern "C"` for */
|
||||||
|
/* functions which are used via function pointers, and you also */
|
||||||
|
/* must do that for structures which contain function pointers to */
|
||||||
|
/* assure C linkage -- it's not possible to have (local) anonymous */
|
||||||
|
/* functions which are accessed by (global) function pointers. */
|
||||||
|
/* */
|
||||||
|
/* */
|
||||||
|
/* FT_CALLBACK_DEF is used to _define_ a callback function, */
|
||||||
|
/* located in the same source code file as the structure that uses */
|
||||||
|
/* it. */
|
||||||
|
/* */
|
||||||
|
/* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */
|
||||||
|
/* and define a callback function, respectively, in a similar way */
|
||||||
|
/* as FT_BASE and FT_BASE_DEF work. */
|
||||||
|
/* */
|
||||||
|
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
|
||||||
|
/* contains pointers to callback functions. */
|
||||||
|
/* */
|
||||||
|
/* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */
|
||||||
|
/* that contains pointers to callback functions. */
|
||||||
|
/* */
|
||||||
|
/* */
|
||||||
|
/* Some 16bit compilers have to redefine these macros to insert */
|
||||||
|
/* the infamous `_cdecl` or `__fastcall` declarations. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_CALLBACK_DEF
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_CALLBACK_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_CALLBACK_DEF( x ) static x
|
||||||
|
#endif
|
||||||
|
#endif /* FT_CALLBACK_DEF */
|
||||||
|
|
||||||
|
#ifndef FT_BASE_CALLBACK
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_BASE_CALLBACK( x ) extern "C" x
|
||||||
|
#define FT_BASE_CALLBACK_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_BASE_CALLBACK( x ) extern x
|
||||||
|
#define FT_BASE_CALLBACK_DEF( x ) x
|
||||||
|
#endif
|
||||||
|
#endif /* FT_BASE_CALLBACK */
|
||||||
|
|
||||||
|
#ifndef FT_CALLBACK_TABLE
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_CALLBACK_TABLE extern "C"
|
||||||
|
#define FT_CALLBACK_TABLE_DEF extern "C"
|
||||||
|
#else
|
||||||
|
#define FT_CALLBACK_TABLE extern
|
||||||
|
#define FT_CALLBACK_TABLE_DEF /* nothing */
|
||||||
|
#endif
|
||||||
|
#endif /* FT_CALLBACK_TABLE */
|
||||||
|
|
||||||
|
|
||||||
|
FT_END_HEADER
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* FTCONFIG_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
|
@ -1,29 +1,29 @@
|
||||||
/****************************************************************************
|
/***************************************************************************/
|
||||||
*
|
/* */
|
||||||
* ftsystem.c
|
/* ftsystem.c */
|
||||||
*
|
/* */
|
||||||
* Unix-specific FreeType low-level system interface (body).
|
/* Unix-specific FreeType low-level system interface (body). */
|
||||||
*
|
/* */
|
||||||
* Copyright (C) 1996-2022 by
|
/* Copyright (C) 1996-2019 by */
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
*
|
/* */
|
||||||
* This file is part of the FreeType project, and may only be used,
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
* modified, and distributed under the terms of the FreeType project
|
/* modified, and distributed under the terms of the FreeType project */
|
||||||
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
||||||
* this file you indicate that you have read the license and
|
/* this file you indicate that you have read the license and */
|
||||||
* understand and accept it fully.
|
/* understand and accept it fully. */
|
||||||
*
|
/* */
|
||||||
*/
|
/***************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
/* we use our special ftconfig.h file, not the standard one */
|
/* we use our special ftconfig.h file, not the standard one */
|
||||||
#include FT_CONFIG_CONFIG_H
|
#include <ftconfig.h>
|
||||||
#include <freetype/internal/ftdebug.h>
|
#include FT_INTERNAL_DEBUG_H
|
||||||
#include <freetype/ftsystem.h>
|
#include FT_SYSTEM_H
|
||||||
#include <freetype/fterrors.h>
|
#include FT_ERRORS_H
|
||||||
#include <freetype/fttypes.h>
|
#include FT_TYPES_H
|
||||||
#include <freetype/internal/ftstream.h>
|
#include FT_INTERNAL_STREAM_H
|
||||||
|
|
||||||
/* memory-mapping includes and definitions */
|
/* memory-mapping includes and definitions */
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
|
@ -70,40 +70,29 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/*************************************************************************/
|
||||||
*
|
/* */
|
||||||
* MEMORY MANAGEMENT INTERFACE
|
/* MEMORY MANAGEMENT INTERFACE */
|
||||||
*
|
/* */
|
||||||
*/
|
/*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/*************************************************************************/
|
||||||
*
|
/* */
|
||||||
* It is not necessary to do any error checking for the
|
/* <Function> */
|
||||||
* allocation-related functions. This will be done by the higher level
|
/* ft_alloc */
|
||||||
* routines like ft_mem_alloc() or ft_mem_realloc().
|
/* */
|
||||||
*
|
/* <Description> */
|
||||||
*/
|
/* The memory allocation function. */
|
||||||
|
/* */
|
||||||
|
/* <Input> */
|
||||||
/**************************************************************************
|
/* memory :: A pointer to the memory object. */
|
||||||
*
|
/* */
|
||||||
* @Function:
|
/* size :: The requested size in bytes. */
|
||||||
* ft_alloc
|
/* */
|
||||||
*
|
/* <Return> */
|
||||||
* @Description:
|
/* The address of newly allocated block. */
|
||||||
* The memory allocation function.
|
/* */
|
||||||
*
|
|
||||||
* @Input:
|
|
||||||
* memory ::
|
|
||||||
* A pointer to the memory object.
|
|
||||||
*
|
|
||||||
* size ::
|
|
||||||
* The requested size in bytes.
|
|
||||||
*
|
|
||||||
* @Return:
|
|
||||||
* The address of newly allocated block.
|
|
||||||
*/
|
|
||||||
FT_CALLBACK_DEF( void* )
|
FT_CALLBACK_DEF( void* )
|
||||||
ft_alloc( FT_Memory memory,
|
ft_alloc( FT_Memory memory,
|
||||||
long size )
|
long size )
|
||||||
|
@ -114,30 +103,26 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/*************************************************************************/
|
||||||
*
|
/* */
|
||||||
* @Function:
|
/* <Function> */
|
||||||
* ft_realloc
|
/* ft_realloc */
|
||||||
*
|
/* */
|
||||||
* @Description:
|
/* <Description> */
|
||||||
* The memory reallocation function.
|
/* The memory reallocation function. */
|
||||||
*
|
/* */
|
||||||
* @Input:
|
/* <Input> */
|
||||||
* memory ::
|
/* memory :: A pointer to the memory object. */
|
||||||
* A pointer to the memory object.
|
/* */
|
||||||
*
|
/* cur_size :: The current size of the allocated memory block. */
|
||||||
* cur_size ::
|
/* */
|
||||||
* The current size of the allocated memory block.
|
/* new_size :: The newly requested size in bytes. */
|
||||||
*
|
/* */
|
||||||
* new_size ::
|
/* block :: The current address of the block in memory. */
|
||||||
* The newly requested size in bytes.
|
/* */
|
||||||
*
|
/* <Return> */
|
||||||
* block ::
|
/* The address of the reallocated memory block. */
|
||||||
* The current address of the block in memory.
|
/* */
|
||||||
*
|
|
||||||
* @Return:
|
|
||||||
* The address of the reallocated memory block.
|
|
||||||
*/
|
|
||||||
FT_CALLBACK_DEF( void* )
|
FT_CALLBACK_DEF( void* )
|
||||||
ft_realloc( FT_Memory memory,
|
ft_realloc( FT_Memory memory,
|
||||||
long cur_size,
|
long cur_size,
|
||||||
|
@ -151,21 +136,19 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/*************************************************************************/
|
||||||
*
|
/* */
|
||||||
* @Function:
|
/* <Function> */
|
||||||
* ft_free
|
/* ft_free */
|
||||||
*
|
/* */
|
||||||
* @Description:
|
/* <Description> */
|
||||||
* The memory release function.
|
/* The memory release function. */
|
||||||
*
|
/* */
|
||||||
* @Input:
|
/* <Input> */
|
||||||
* memory ::
|
/* memory :: A pointer to the memory object. */
|
||||||
* A pointer to the memory object.
|
/* */
|
||||||
*
|
/* block :: The address of block in memory to be freed. */
|
||||||
* block ::
|
/* */
|
||||||
* The address of block in memory to be freed.
|
|
||||||
*/
|
|
||||||
FT_CALLBACK_DEF( void )
|
FT_CALLBACK_DEF( void )
|
||||||
ft_free( FT_Memory memory,
|
ft_free( FT_Memory memory,
|
||||||
void* block )
|
void* block )
|
||||||
|
@ -176,19 +159,19 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/*************************************************************************/
|
||||||
*
|
/* */
|
||||||
* RESOURCE MANAGEMENT INTERFACE
|
/* RESOURCE MANAGEMENT INTERFACE */
|
||||||
*
|
/* */
|
||||||
*/
|
/*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/*************************************************************************/
|
||||||
*
|
/* */
|
||||||
* The macro FT_COMPONENT is used in trace mode. It is an implicit
|
/* The macro FT_COMPONENT is used in trace mode. It is an implicit */
|
||||||
* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log
|
/* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
|
||||||
* messages during execution.
|
/* messages during execution. */
|
||||||
*/
|
/* */
|
||||||
#undef FT_COMPONENT
|
#undef FT_COMPONENT
|
||||||
#define FT_COMPONENT io
|
#define FT_COMPONENT io
|
||||||
|
|
||||||
|
@ -197,17 +180,17 @@
|
||||||
#define STREAM_FILE( stream ) ( (FILE*)stream->descriptor.pointer )
|
#define STREAM_FILE( stream ) ( (FILE*)stream->descriptor.pointer )
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/*************************************************************************/
|
||||||
*
|
/* */
|
||||||
* @Function:
|
/* <Function> */
|
||||||
* ft_close_stream_by_munmap
|
/* ft_close_stream_by_munmap */
|
||||||
*
|
/* */
|
||||||
* @Description:
|
/* <Description> */
|
||||||
* The function to close a stream which is opened by mmap.
|
/* The function to close a stream which is opened by mmap. */
|
||||||
*
|
/* */
|
||||||
* @Input:
|
/* <Input> */
|
||||||
* stream :: A pointer to the stream object.
|
/* stream :: A pointer to the stream object. */
|
||||||
*/
|
/* */
|
||||||
FT_CALLBACK_DEF( void )
|
FT_CALLBACK_DEF( void )
|
||||||
ft_close_stream_by_munmap( FT_Stream stream )
|
ft_close_stream_by_munmap( FT_Stream stream )
|
||||||
{
|
{
|
||||||
|
@ -215,29 +198,29 @@
|
||||||
|
|
||||||
stream->descriptor.pointer = NULL;
|
stream->descriptor.pointer = NULL;
|
||||||
stream->size = 0;
|
stream->size = 0;
|
||||||
stream->base = NULL;
|
stream->base = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/*************************************************************************/
|
||||||
*
|
/* */
|
||||||
* @Function:
|
/* <Function> */
|
||||||
* ft_close_stream_by_free
|
/* ft_close_stream_by_free */
|
||||||
*
|
/* */
|
||||||
* @Description:
|
/* <Description> */
|
||||||
* The function to close a stream which is created by ft_alloc.
|
/* The function to close a stream which is created by ft_alloc. */
|
||||||
*
|
/* */
|
||||||
* @Input:
|
/* <Input> */
|
||||||
* stream :: A pointer to the stream object.
|
/* stream :: A pointer to the stream object. */
|
||||||
*/
|
/* */
|
||||||
FT_CALLBACK_DEF( void )
|
FT_CALLBACK_DEF( void )
|
||||||
ft_close_stream_by_free( FT_Stream stream )
|
ft_close_stream_by_free( FT_Stream stream )
|
||||||
{
|
{
|
||||||
ft_free( stream->memory, stream->descriptor.pointer );
|
ft_free( NULL, stream->descriptor.pointer );
|
||||||
|
|
||||||
stream->descriptor.pointer = NULL;
|
stream->descriptor.pointer = NULL;
|
||||||
stream->size = 0;
|
stream->size = 0;
|
||||||
stream->base = NULL;
|
stream->base = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -313,7 +296,8 @@
|
||||||
file,
|
file,
|
||||||
0 );
|
0 );
|
||||||
|
|
||||||
if ( stream->base != MAP_FAILED )
|
/* on some RTOS, mmap might return 0 */
|
||||||
|
if ( (long)stream->base != -1 && stream->base != NULL )
|
||||||
stream->close = ft_close_stream_by_munmap;
|
stream->close = ft_close_stream_by_munmap;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -323,7 +307,7 @@
|
||||||
FT_ERROR(( "FT_Stream_Open:" ));
|
FT_ERROR(( "FT_Stream_Open:" ));
|
||||||
FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
|
FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
|
||||||
|
|
||||||
stream->base = (unsigned char*)ft_alloc( stream->memory, stream->size );
|
stream->base = (unsigned char*)ft_alloc( NULL, stream->size );
|
||||||
|
|
||||||
if ( !stream->base )
|
if ( !stream->base )
|
||||||
{
|
{
|
||||||
|
@ -364,16 +348,16 @@
|
||||||
stream->descriptor.pointer = stream->base;
|
stream->descriptor.pointer = stream->base;
|
||||||
stream->pathname.pointer = (char*)filepathname;
|
stream->pathname.pointer = (char*)filepathname;
|
||||||
|
|
||||||
stream->read = NULL;
|
stream->read = 0;
|
||||||
|
|
||||||
FT_TRACE1(( "FT_Stream_Open:" ));
|
FT_TRACE1(( "FT_Stream_Open:" ));
|
||||||
FT_TRACE1(( " opened `%s' (%ld bytes) successfully\n",
|
FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
|
||||||
filepathname, stream->size ));
|
filepathname, stream->size ));
|
||||||
|
|
||||||
return FT_Err_Ok;
|
return FT_Err_Ok;
|
||||||
|
|
||||||
Fail_Read:
|
Fail_Read:
|
||||||
ft_free( stream->memory, stream->base );
|
ft_free( NULL, stream->base );
|
||||||
|
|
||||||
Fail_Map:
|
Fail_Map:
|
||||||
close( file );
|
close( file );
|
||||||
|
@ -408,7 +392,7 @@
|
||||||
memory = (FT_Memory)malloc( sizeof ( *memory ) );
|
memory = (FT_Memory)malloc( sizeof ( *memory ) );
|
||||||
if ( memory )
|
if ( memory )
|
||||||
{
|
{
|
||||||
memory->user = NULL;
|
memory->user = 0;
|
||||||
memory->alloc = ft_alloc;
|
memory->alloc = ft_alloc;
|
||||||
memory->realloc = ft_realloc;
|
memory->realloc = ft_realloc;
|
||||||
memory->free = ft_free;
|
memory->free = ft_free;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -62,7 +62,7 @@ endif
|
||||||
$(DESTDIR)$(includedir)/freetype2/freetype/config/ftmodule.h
|
$(DESTDIR)$(includedir)/freetype2/freetype/config/ftmodule.h
|
||||||
$(INSTALL_DATA) $(OBJ_BUILD)/ftoption.h \
|
$(INSTALL_DATA) $(OBJ_BUILD)/ftoption.h \
|
||||||
$(DESTDIR)$(includedir)/freetype2/freetype/config/ftoption.h
|
$(DESTDIR)$(includedir)/freetype2/freetype/config/ftoption.h
|
||||||
$(INSTALL_SCRIPT) -m 644 $(PLATFORM_DIR)/freetype2.m4 \
|
$(INSTALL_SCRIPT) -m 644 $(BUILD_DIR)/freetype2.m4 \
|
||||||
$(DESTDIR)$(datadir)/aclocal/freetype2.m4
|
$(DESTDIR)$(datadir)/aclocal/freetype2.m4
|
||||||
$(INSTALL_SCRIPT) -m 644 $(OBJ_BUILD)/freetype2.pc \
|
$(INSTALL_SCRIPT) -m 644 $(OBJ_BUILD)/freetype2.pc \
|
||||||
$(DESTDIR)$(libdir)/pkgconfig/freetype2.pc
|
$(DESTDIR)$(libdir)/pkgconfig/freetype2.pc
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# FreeType 2 template for Unix-specific compiler definitions
|
# FreeType 2 template for Unix-specific compiler definitions
|
||||||
#
|
#
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
CC := @CC@
|
CC := @CC@
|
||||||
COMPILER_SEP := $(SEP)
|
COMPILER_SEP := $(SEP)
|
||||||
FT_LIBTOOL_DIR ?= $(PLATFORM_DIR)
|
FT_LIBTOOL_DIR ?= $(BUILD_DIR)
|
||||||
|
|
||||||
LIBTOOL := $(FT_LIBTOOL_DIR)/libtool
|
LIBTOOL := $(FT_LIBTOOL_DIR)/libtool
|
||||||
|
|
||||||
|
@ -73,16 +73,13 @@ T := -o$(space)
|
||||||
#
|
#
|
||||||
# These should concern: debug output, optimization & warnings.
|
# These should concern: debug output, optimization & warnings.
|
||||||
#
|
#
|
||||||
# Use the ANSIFLAGS variable to define the compiler flags used to enforce
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
||||||
# ANSI compliance.
|
# ANSI compliance.
|
||||||
#
|
#
|
||||||
# We use our own FreeType configuration files overriding defaults.
|
# We use our own FreeType configuration file.
|
||||||
#
|
#
|
||||||
CPPFLAGS := @CPPFLAGS@
|
CPPFLAGS := @CPPFLAGS@
|
||||||
CFLAGS := -c @XX_CFLAGS@ @CFLAGS@ \
|
CFLAGS := -c @XX_CFLAGS@ @CFLAGS@ -DFT_CONFIG_CONFIG_H="<ftconfig.h>"
|
||||||
$DFT_CONFIG_CONFIG_H="<ftconfig.h>" \
|
|
||||||
$DFT_CONFIG_MODULES_H="<ftmodule.h>" \
|
|
||||||
$DFT_CONFIG_OPTIONS_H="<ftoption.h>"
|
|
||||||
|
|
||||||
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
||||||
#
|
#
|
||||||
|
@ -90,12 +87,8 @@ ANSIFLAGS := @XX_ANSIFLAGS@
|
||||||
|
|
||||||
# C compiler to use -- we use libtool!
|
# C compiler to use -- we use libtool!
|
||||||
#
|
#
|
||||||
# CC might be set on the command line; we store this value in `CCraw'.
|
CCraw := $(CC)
|
||||||
# Consequently, we use the `override' directive to ensure that the
|
CC := $(LIBTOOL) --mode=compile $(CCraw)
|
||||||
# libtool call is always prepended.
|
|
||||||
#
|
|
||||||
CCraw := $(CC)
|
|
||||||
override CC := $(LIBTOOL) --mode=compile $(CCraw)
|
|
||||||
|
|
||||||
# Resource compiler to use on Cygwin/MinGW, usually windres.
|
# Resource compiler to use on Cygwin/MinGW, usually windres.
|
||||||
#
|
#
|
||||||
|
@ -106,7 +99,9 @@ endif
|
||||||
|
|
||||||
# Linker flags.
|
# Linker flags.
|
||||||
#
|
#
|
||||||
LDFLAGS := @LDFLAGS@
|
LDFLAGS := @LDFLAGS@
|
||||||
|
LIB_CLOCK_GETTIME := @LIB_CLOCK_GETTIME@ # for ftbench
|
||||||
|
|
||||||
|
|
||||||
# export symbols
|
# export symbols
|
||||||
#
|
#
|
||||||
|
@ -116,15 +111,11 @@ EXPORTS_LIST := $(OBJ_DIR)/ftexport.sym
|
||||||
CCexe := $(CCraw_build) # used to compile `apinames' only
|
CCexe := $(CCraw_build) # used to compile `apinames' only
|
||||||
|
|
||||||
|
|
||||||
# Library linking.
|
# Library linking
|
||||||
#
|
#
|
||||||
LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \
|
LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \
|
||||||
-rpath $(libdir) -version-info $(version_info) \
|
-rpath $(libdir) -version-info $(version_info) \
|
||||||
$(LDFLAGS) -no-undefined \
|
$(LDFLAGS) -no-undefined \
|
||||||
-export-symbols $(EXPORTS_LIST)
|
-export-symbols $(EXPORTS_LIST)
|
||||||
|
|
||||||
# For the demo programs.
|
|
||||||
FT_DEMO_CFLAGS := @FT_DEMO_CFLAGS@
|
|
||||||
FT_DEMO_LDFLAGS := @FT_DEMO_LDFLAGS@
|
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -24,10 +24,11 @@ SEP := /
|
||||||
# This is used for `make refdoc' and `make refdoc-venv'
|
# This is used for `make refdoc' and `make refdoc-venv'
|
||||||
#
|
#
|
||||||
PYTHON := @PYTHON@
|
PYTHON := @PYTHON@
|
||||||
|
PIP := @PIP@
|
||||||
BIN := bin
|
BIN := bin
|
||||||
|
|
||||||
# this is used for `make distclean' and `make install'
|
# this is used for `make distclean' and `make install'
|
||||||
OBJ_BUILD ?= $(PLATFORM_DIR)
|
OBJ_BUILD ?= $(BUILD_DIR)
|
||||||
|
|
||||||
# don't use `:=' here since the path stuff will be included after this file
|
# don't use `:=' here since the path stuff will be included after this file
|
||||||
#
|
#
|
||||||
|
@ -68,14 +69,12 @@ version_info := @version_info@
|
||||||
|
|
||||||
# Variables needed for `freetype-config' and `freetype.pc'.
|
# Variables needed for `freetype-config' and `freetype.pc'.
|
||||||
#
|
#
|
||||||
PKG_CONFIG := @PKG_CONFIG@
|
PKG_CONFIG := @PKG_CONFIG@
|
||||||
PKGCONFIG_REQUIRES := @PKGCONFIG_REQUIRES@
|
REQUIRES_PRIVATE := @REQUIRES_PRIVATE@
|
||||||
PKGCONFIG_REQUIRES_PRIVATE := @PKGCONFIG_REQUIRES_PRIVATE@
|
LIBS_PRIVATE := @LIBS_PRIVATE@
|
||||||
PKGCONFIG_LIBS := @PKGCONFIG_LIBS@
|
LIBSSTATIC_CONFIG := @LIBSSTATIC_CONFIG@
|
||||||
PKGCONFIG_LIBS_PRIVATE := @PKGCONFIG_LIBS_PRIVATE@
|
build_libtool_libs := @build_libtool_libs@
|
||||||
LIBSSTATIC_CONFIG := @LIBSSTATIC_CONFIG@
|
ft_version := @ft_version@
|
||||||
build_libtool_libs := @build_libtool_libs@
|
|
||||||
ft_version := @ft_version@
|
|
||||||
|
|
||||||
# The directory where all library files are placed.
|
# The directory where all library files are placed.
|
||||||
#
|
#
|
||||||
|
@ -139,17 +138,15 @@ prefix_x := $(subst $(space),\\$(space),$(prefix))
|
||||||
|
|
||||||
$(OBJ_BUILD)/freetype2.pc: $(TOP_DIR)/builds/unix/freetype2.in
|
$(OBJ_BUILD)/freetype2.pc: $(TOP_DIR)/builds/unix/freetype2.in
|
||||||
rm -f $@ $@.tmp
|
rm -f $@ $@.tmp
|
||||||
sed -e 's|%PKGCONFIG_REQUIRES%|$(PKGCONFIG_REQUIRES)|' \
|
sed -e 's|%REQUIRES_PRIVATE%|$(REQUIRES_PRIVATE)|' \
|
||||||
-e 's|%PKGCONFIG_REQUIRES_PRIVATE%|$(PKGCONFIG_REQUIRES_PRIVATE)|' \
|
-e 's|%LIBS_PRIVATE%|$(LIBS_PRIVATE)|' \
|
||||||
-e 's|%PKGCONFIG_LIBS%|$(PKGCONFIG_LIBS)|' \
|
-e 's|%build_libtool_libs%|$(build_libtool_libs)|' \
|
||||||
-e 's|%PKGCONFIG_LIBS_PRIVATE%|$(PKGCONFIG_LIBS_PRIVATE)|' \
|
-e 's|%exec_prefix%|$(exec_prefix_x)|' \
|
||||||
-e 's|%build_libtool_libs%|$(build_libtool_libs)|' \
|
-e 's|%ft_version%|$(ft_version)|' \
|
||||||
-e 's|%exec_prefix%|$(exec_prefix_x)|' \
|
-e 's|%includedir%|$(includedir_x)|' \
|
||||||
-e 's|%ft_version%|$(ft_version)|' \
|
-e 's|%libdir%|$(libdir_x)|' \
|
||||||
-e 's|%includedir%|$(includedir_x)|' \
|
-e 's|%prefix%|$(prefix_x)|' \
|
||||||
-e 's|%libdir%|$(libdir_x)|' \
|
$< \
|
||||||
-e 's|%prefix%|$(prefix_x)|' \
|
|
||||||
$< \
|
|
||||||
> $@.tmp
|
> $@.tmp
|
||||||
chmod a-w $@.tmp
|
chmod a-w $@.tmp
|
||||||
mv $@.tmp $@
|
mv $@.tmp $@
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -13,8 +13,8 @@
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
# We need these declarations here since unix-def.mk is a generated file.
|
# We need these declarations here since unix-def.mk is a generated file.
|
||||||
PLATFORM_DIR := $(TOP_DIR)/builds/unix
|
BUILD_DIR := $(TOP_DIR)/builds/unix
|
||||||
PLATFORM := unix
|
PLATFORM := unix
|
||||||
|
|
||||||
have_mk := $(wildcard $(OBJ_DIR)/unix-def.mk)
|
have_mk := $(wildcard $(OBJ_DIR)/unix-def.mk)
|
||||||
ifneq ($(have_mk),)
|
ifneq ($(have_mk),)
|
||||||
|
@ -22,8 +22,8 @@ ifneq ($(have_mk),)
|
||||||
include $(OBJ_DIR)/unix-def.mk
|
include $(OBJ_DIR)/unix-def.mk
|
||||||
include $(OBJ_DIR)/unix-cc.mk
|
include $(OBJ_DIR)/unix-cc.mk
|
||||||
else
|
else
|
||||||
include $(PLATFORM_DIR)/unix-def.mk
|
include $(BUILD_DIR)/unix-def.mk
|
||||||
include $(PLATFORM_DIR)/unix-cc.mk
|
include $(BUILD_DIR)/unix-cc.mk
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef BUILD_PROJECT
|
ifdef BUILD_PROJECT
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2022 by
|
# Copyright (C) 1996-2019 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
@ -27,6 +27,9 @@ SEP := /
|
||||||
#
|
#
|
||||||
BIN := bin
|
BIN := bin
|
||||||
|
|
||||||
|
# we use a special devel ftoption.h
|
||||||
|
DEVEL_DIR := $(TOP_DIR)/devel
|
||||||
|
|
||||||
|
|
||||||
# library file name
|
# library file name
|
||||||
#
|
#
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* VMS-specific configuration file (specification only).
|
* VMS-specific configuration file (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2022 by
|
* Copyright (C) 1996-2019 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -39,6 +39,21 @@
|
||||||
#include FT_CONFIG_OPTIONS_H
|
#include FT_CONFIG_OPTIONS_H
|
||||||
#include FT_CONFIG_STANDARD_LIBRARY_H
|
#include FT_CONFIG_STANDARD_LIBRARY_H
|
||||||
|
|
||||||
|
|
||||||
|
FT_BEGIN_HEADER
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* PLATFORM-SPECIFIC CONFIGURATION MACROS
|
||||||
|
*
|
||||||
|
* These macros can be toggled to suit a specific system. The current ones
|
||||||
|
* are defaults used to compile FreeType in an ANSI C environment (16bit
|
||||||
|
* compilers are also supported). Copy this file to your own
|
||||||
|
* `builds/<system>` directory, and edit it to port the engine.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
#define HAVE_UNISTD_H 1
|
#define HAVE_UNISTD_H 1
|
||||||
#define HAVE_FCNTL_H 1
|
#define HAVE_FCNTL_H 1
|
||||||
|
|
||||||
|
@ -48,9 +63,491 @@
|
||||||
#define FT_SIZEOF_INT 4
|
#define FT_SIZEOF_INT 4
|
||||||
#define FT_SIZEOF_LONG 4
|
#define FT_SIZEOF_LONG 4
|
||||||
|
|
||||||
#include <freetype/config/integer-types.h>
|
|
||||||
#include <freetype/config/public-macros.h>
|
/* `FT_UNUSED` indicates that a given parameter is not used -- */
|
||||||
#include <freetype/config/mac-support.h>
|
/* this is only used to get rid of unpleasant compiler warnings. */
|
||||||
|
#ifndef FT_UNUSED
|
||||||
|
#define FT_UNUSED( arg ) ( (arg) = (arg) )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* AUTOMATIC CONFIGURATION MACROS
|
||||||
|
*
|
||||||
|
* These macros are computed from the ones defined above. Don't touch
|
||||||
|
* their definition, unless you know precisely what you are doing. No
|
||||||
|
* porter should need to mess with them.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Mac support
|
||||||
|
*
|
||||||
|
* This is the only necessary change, so it is defined here instead
|
||||||
|
* providing a new configuration file.
|
||||||
|
*/
|
||||||
|
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
|
||||||
|
/* No Carbon frameworks for 64bit 10.4.x. */
|
||||||
|
/* `AvailabilityMacros.h` is available since Mac OS X 10.2, */
|
||||||
|
/* so guess the system version by maximum errno before inclusion. */
|
||||||
|
#include <errno.h>
|
||||||
|
#ifdef ECANCELED /* defined since 10.2 */
|
||||||
|
#include "AvailabilityMacros.h"
|
||||||
|
#endif
|
||||||
|
#if defined( __LP64__ ) && \
|
||||||
|
( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
|
||||||
|
#undef FT_MACINTOSH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined( __SC__ ) || defined( __MRC__ )
|
||||||
|
/* Classic MacOS compilers */
|
||||||
|
#include "ConditionalMacros.h"
|
||||||
|
#if TARGET_OS_MAC
|
||||||
|
#define FT_MACINTOSH 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Fix compiler warning with sgi compiler. */
|
||||||
|
#if defined( __sgi ) && !defined( __GNUC__ )
|
||||||
|
#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
|
||||||
|
#pragma set woff 3505
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @section:
|
||||||
|
* basic_types
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Int16
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for a 16bit signed integer type.
|
||||||
|
*/
|
||||||
|
typedef signed short FT_Int16;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UInt16
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for a 16bit unsigned integer type.
|
||||||
|
*/
|
||||||
|
typedef unsigned short FT_UInt16;
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
|
||||||
|
/* this #if 0 ... #endif clause is for documentation purposes */
|
||||||
|
#if 0
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Int32
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for a 32bit signed integer type. The size depends on the
|
||||||
|
* configuration.
|
||||||
|
*/
|
||||||
|
typedef signed XXX FT_Int32;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UInt32
|
||||||
|
*
|
||||||
|
* A typedef for a 32bit unsigned integer type. The size depends on the
|
||||||
|
* configuration.
|
||||||
|
*/
|
||||||
|
typedef unsigned XXX FT_UInt32;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Int64
|
||||||
|
*
|
||||||
|
* A typedef for a 64bit signed integer type. The size depends on the
|
||||||
|
* configuration. Only defined if there is real 64bit support;
|
||||||
|
* otherwise, it gets emulated with a structure (if necessary).
|
||||||
|
*/
|
||||||
|
typedef signed XXX FT_Int64;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UInt64
|
||||||
|
*
|
||||||
|
* A typedef for a 64bit unsigned integer type. The size depends on the
|
||||||
|
* configuration. Only defined if there is real 64bit support;
|
||||||
|
* otherwise, it gets emulated with a structure (if necessary).
|
||||||
|
*/
|
||||||
|
typedef unsigned XXX FT_UInt64;
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if FT_SIZEOF_INT == 4
|
||||||
|
|
||||||
|
typedef signed int FT_Int32;
|
||||||
|
typedef unsigned int FT_UInt32;
|
||||||
|
|
||||||
|
#elif FT_SIZEOF_LONG == 4
|
||||||
|
|
||||||
|
typedef signed long FT_Int32;
|
||||||
|
typedef unsigned long FT_UInt32;
|
||||||
|
|
||||||
|
#else
|
||||||
|
#error "no 32bit type found -- please check your configuration files"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* look up an integer type that is at least 32~bits */
|
||||||
|
#if FT_SIZEOF_INT >= 4
|
||||||
|
|
||||||
|
typedef int FT_Fast;
|
||||||
|
typedef unsigned int FT_UFast;
|
||||||
|
|
||||||
|
#elif FT_SIZEOF_LONG >= 4
|
||||||
|
|
||||||
|
typedef long FT_Fast;
|
||||||
|
typedef unsigned long FT_UFast;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* determine whether we have a 64-bit `int` type for platforms without */
|
||||||
|
/* Autoconf */
|
||||||
|
#if FT_SIZEOF_LONG == 8
|
||||||
|
|
||||||
|
/* `FT_LONG64` must be defined if a 64-bit type is available */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long
|
||||||
|
#define FT_UINT64 unsigned long
|
||||||
|
|
||||||
|
/* we handle the LLP64 scheme separately for GCC and clang, */
|
||||||
|
/* suppressing the `long long` warning */
|
||||||
|
#elif ( FT_SIZEOF_LONG == 4 ) && \
|
||||||
|
defined( HAVE_LONG_LONG_INT ) && \
|
||||||
|
defined( __GNUC__ )
|
||||||
|
#pragma GCC diagnostic ignored "-Wlong-long"
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* A 64-bit data type may create compilation problems if you compile in
|
||||||
|
* strict ANSI mode. To avoid them, we disable other 64-bit data types if
|
||||||
|
* `__STDC__` is defined. You can however ignore this rule by defining the
|
||||||
|
* `FT_CONFIG_OPTION_FORCE_INT64` configuration macro.
|
||||||
|
*/
|
||||||
|
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
|
||||||
|
|
||||||
|
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
|
||||||
|
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
|
||||||
|
|
||||||
|
/* this compiler provides the `__int64` type */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 __int64
|
||||||
|
#define FT_UINT64 unsigned __int64
|
||||||
|
|
||||||
|
#elif defined( __BORLANDC__ ) /* Borland C++ */
|
||||||
|
|
||||||
|
/* XXXX: We should probably check the value of `__BORLANDC__` in order */
|
||||||
|
/* to test the compiler version. */
|
||||||
|
|
||||||
|
/* this compiler provides the `__int64` type */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 __int64
|
||||||
|
#define FT_UINT64 unsigned __int64
|
||||||
|
|
||||||
|
#elif defined( __WATCOMC__ ) /* Watcom C++ */
|
||||||
|
|
||||||
|
/* Watcom doesn't provide 64-bit data types */
|
||||||
|
|
||||||
|
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
|
||||||
|
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
#elif defined( __GNUC__ )
|
||||||
|
|
||||||
|
/* GCC provides the `long long` type */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
#endif /* __STDC_VERSION__ >= 199901L */
|
||||||
|
|
||||||
|
#endif /* FT_SIZEOF_LONG == 8 */
|
||||||
|
|
||||||
|
#ifdef FT_LONG64
|
||||||
|
typedef FT_INT64 FT_Int64;
|
||||||
|
typedef FT_UINT64 FT_UInt64;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _WIN64
|
||||||
|
/* only 64bit Windows uses the LLP64 data model, i.e., */
|
||||||
|
/* 32bit integers, 64bit pointers */
|
||||||
|
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
|
||||||
|
#else
|
||||||
|
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* miscellaneous
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define FT_BEGIN_STMNT do {
|
||||||
|
#define FT_END_STMNT } while ( 0 )
|
||||||
|
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
|
||||||
|
|
||||||
|
|
||||||
|
/* `typeof` condition taken from gnulib's `intprops.h` header file */
|
||||||
|
#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
|
||||||
|
( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
|
||||||
|
defined( __IBM__TYPEOF__ ) ) || \
|
||||||
|
( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
|
||||||
|
#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
|
||||||
|
#else
|
||||||
|
#define FT_TYPEOF( type ) /* empty */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Use `FT_LOCAL` and `FT_LOCAL_DEF` to declare and define, */
|
||||||
|
/* respectively, a function that gets used only within the scope of a */
|
||||||
|
/* module. Normally, both the header and source code files for such a */
|
||||||
|
/* function are within a single module directory. */
|
||||||
|
/* */
|
||||||
|
/* Intra-module arrays should be tagged with `FT_LOCAL_ARRAY` and */
|
||||||
|
/* `FT_LOCAL_ARRAY_DEF`. */
|
||||||
|
/* */
|
||||||
|
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
|
||||||
|
|
||||||
|
#define FT_LOCAL( x ) static x
|
||||||
|
#define FT_LOCAL_DEF( x ) static x
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_LOCAL( x ) extern "C" x
|
||||||
|
#define FT_LOCAL_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_LOCAL( x ) extern x
|
||||||
|
#define FT_LOCAL_DEF( x ) x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
|
||||||
|
|
||||||
|
#define FT_LOCAL_ARRAY( x ) extern const x
|
||||||
|
#define FT_LOCAL_ARRAY_DEF( x ) const x
|
||||||
|
|
||||||
|
|
||||||
|
/* Use `FT_BASE` and `FT_BASE_DEF` to declare and define, respectively, */
|
||||||
|
/* functions that are used in more than a single module. In the */
|
||||||
|
/* current setup this implies that the declaration is in a header file */
|
||||||
|
/* in the `include/freetype/internal` directory, and the function body */
|
||||||
|
/* is in a file in `src/base`. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_BASE
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_BASE( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_BASE( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_BASE */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FT_BASE_DEF
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_BASE_DEF( x ) x
|
||||||
|
#else
|
||||||
|
#define FT_BASE_DEF( x ) x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_BASE_DEF */
|
||||||
|
|
||||||
|
|
||||||
|
/* When compiling FreeType as a DLL or DSO with hidden visibility */
|
||||||
|
/* some systems/compilers need a special attribute in front OR after */
|
||||||
|
/* the return type of function declarations. */
|
||||||
|
/* */
|
||||||
|
/* Two macros are used within the FreeType source code to define */
|
||||||
|
/* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. */
|
||||||
|
/* */
|
||||||
|
/* - `FT_EXPORT( return_type )` */
|
||||||
|
/* */
|
||||||
|
/* is used in a function declaration, as in */
|
||||||
|
/* */
|
||||||
|
/* ``` */
|
||||||
|
/* FT_EXPORT( FT_Error ) */
|
||||||
|
/* FT_Init_FreeType( FT_Library* alibrary ); */
|
||||||
|
/* ``` */
|
||||||
|
/* */
|
||||||
|
/* - `FT_EXPORT_DEF( return_type )` */
|
||||||
|
/* */
|
||||||
|
/* is used in a function definition, as in */
|
||||||
|
/* */
|
||||||
|
/* ``` */
|
||||||
|
/* FT_EXPORT_DEF( FT_Error ) */
|
||||||
|
/* FT_Init_FreeType( FT_Library* alibrary ) */
|
||||||
|
/* { */
|
||||||
|
/* ... some code ... */
|
||||||
|
/* return FT_Err_Ok; */
|
||||||
|
/* } */
|
||||||
|
/* ``` */
|
||||||
|
/* */
|
||||||
|
/* You can provide your own implementation of `FT_EXPORT` and */
|
||||||
|
/* `FT_EXPORT_DEF` here if you want. */
|
||||||
|
/* */
|
||||||
|
/* To export a variable, use `FT_EXPORT_VAR`. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_EXPORT
|
||||||
|
|
||||||
|
#ifdef FT2_BUILD_LIBRARY
|
||||||
|
|
||||||
|
#if defined( _WIN32 ) && defined( DLL_EXPORT )
|
||||||
|
#define FT_EXPORT( x ) __declspec( dllexport ) x
|
||||||
|
#elif defined( __GNUC__ ) && __GNUC__ >= 4
|
||||||
|
#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x
|
||||||
|
#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550
|
||||||
|
#define FT_EXPORT( x ) __global x
|
||||||
|
#elif defined( __cplusplus )
|
||||||
|
#define FT_EXPORT( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#if defined( _WIN32 ) && defined( DLL_IMPORT )
|
||||||
|
#define FT_EXPORT( x ) __declspec( dllimport ) x
|
||||||
|
#elif defined( __cplusplus )
|
||||||
|
#define FT_EXPORT( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_EXPORT */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FT_EXPORT_DEF
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_EXPORT_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT_DEF( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_EXPORT_DEF */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FT_EXPORT_VAR
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_EXPORT_VAR( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT_VAR( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_EXPORT_VAR */
|
||||||
|
|
||||||
|
|
||||||
|
/* The following macros are needed to compile the library with a */
|
||||||
|
/* C++ compiler and with 16bit compilers. */
|
||||||
|
/* */
|
||||||
|
|
||||||
|
/* This is special. Within C++, you must specify `extern "C"` for */
|
||||||
|
/* functions which are used via function pointers, and you also */
|
||||||
|
/* must do that for structures which contain function pointers to */
|
||||||
|
/* assure C linkage -- it's not possible to have (local) anonymous */
|
||||||
|
/* functions which are accessed by (global) function pointers. */
|
||||||
|
/* */
|
||||||
|
/* */
|
||||||
|
/* FT_CALLBACK_DEF is used to _define_ a callback function, */
|
||||||
|
/* located in the same source code file as the structure that uses */
|
||||||
|
/* it. */
|
||||||
|
/* */
|
||||||
|
/* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */
|
||||||
|
/* and define a callback function, respectively, in a similar way */
|
||||||
|
/* as FT_BASE and FT_BASE_DEF work. */
|
||||||
|
/* */
|
||||||
|
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
|
||||||
|
/* contains pointers to callback functions. */
|
||||||
|
/* */
|
||||||
|
/* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */
|
||||||
|
/* that contains pointers to callback functions. */
|
||||||
|
/* */
|
||||||
|
/* */
|
||||||
|
/* Some 16bit compilers have to redefine these macros to insert */
|
||||||
|
/* the infamous `_cdecl` or `__fastcall` declarations. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_CALLBACK_DEF
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_CALLBACK_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_CALLBACK_DEF( x ) static x
|
||||||
|
#endif
|
||||||
|
#endif /* FT_CALLBACK_DEF */
|
||||||
|
|
||||||
|
#ifndef FT_BASE_CALLBACK
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_BASE_CALLBACK( x ) extern "C" x
|
||||||
|
#define FT_BASE_CALLBACK_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_BASE_CALLBACK( x ) extern x
|
||||||
|
#define FT_BASE_CALLBACK_DEF( x ) x
|
||||||
|
#endif
|
||||||
|
#endif /* FT_BASE_CALLBACK */
|
||||||
|
|
||||||
|
#ifndef FT_CALLBACK_TABLE
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_CALLBACK_TABLE extern "C"
|
||||||
|
#define FT_CALLBACK_TABLE_DEF extern "C"
|
||||||
|
#else
|
||||||
|
#define FT_CALLBACK_TABLE extern
|
||||||
|
#define FT_CALLBACK_TABLE_DEF /* nothing */
|
||||||
|
#endif
|
||||||
|
#endif /* FT_CALLBACK_TABLE */
|
||||||
|
|
||||||
|
|
||||||
|
FT_END_HEADER
|
||||||
|
|
||||||
|
|
||||||
#endif /* FTCONFIG_H_ */
|
#endif /* FTCONFIG_H_ */
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* VMS-specific FreeType low-level system interface (body). */
|
/* VMS-specific FreeType low-level system interface (body). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (C) 1996-2022 by */
|
/* Copyright (C) 1996-2019 by */
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -19,11 +19,11 @@
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
/* we use our special ftconfig.h file, not the standard one */
|
/* we use our special ftconfig.h file, not the standard one */
|
||||||
#include <ftconfig.h>
|
#include <ftconfig.h>
|
||||||
#include <freetype/internal/ftdebug.h>
|
#include FT_INTERNAL_DEBUG_H
|
||||||
#include <freetype/ftsystem.h>
|
#include FT_SYSTEM_H
|
||||||
#include <freetype/fterrors.h>
|
#include FT_ERRORS_H
|
||||||
#include <freetype/fttypes.h>
|
#include FT_TYPES_H
|
||||||
#include <freetype/internal/ftobjs.h>
|
#include FT_INTERNAL_OBJECTS_H
|
||||||
|
|
||||||
/* memory-mapping includes and definitions */
|
/* memory-mapping includes and definitions */
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
|
@ -197,7 +197,7 @@
|
||||||
|
|
||||||
stream->descriptor.pointer = NULL;
|
stream->descriptor.pointer = NULL;
|
||||||
stream->size = 0;
|
stream->size = 0;
|
||||||
stream->base = NULL;
|
stream->base = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -246,7 +246,7 @@
|
||||||
file,
|
file,
|
||||||
0 );
|
0 );
|
||||||
|
|
||||||
if ( stream->base == MAP_FAILED )
|
if ( (long)stream->base == -1 )
|
||||||
{
|
{
|
||||||
FT_ERROR(( "FT_Stream_Open:" ));
|
FT_ERROR(( "FT_Stream_Open:" ));
|
||||||
FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
|
FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
|
||||||
|
@ -259,7 +259,7 @@
|
||||||
stream->pathname.pointer = (char*)filepathname;
|
stream->pathname.pointer = (char*)filepathname;
|
||||||
|
|
||||||
stream->close = ft_close_stream;
|
stream->close = ft_close_stream;
|
||||||
stream->read = NULL;
|
stream->read = 0;
|
||||||
|
|
||||||
FT_TRACE1(( "FT_Stream_Open:" ));
|
FT_TRACE1(( "FT_Stream_Open:" ));
|
||||||
FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
|
FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
|
||||||
|
@ -300,7 +300,7 @@
|
||||||
memory = (FT_Memory)malloc( sizeof ( *memory ) );
|
memory = (FT_Memory)malloc( sizeof ( *memory ) );
|
||||||
if ( memory )
|
if ( memory )
|
||||||
{
|
{
|
||||||
memory->user = NULL;
|
memory->user = 0;
|
||||||
memory->alloc = ft_alloc;
|
memory->alloc = ft_alloc;
|
||||||
memory->realloc = ft_realloc;
|
memory->realloc = ft_realloc;
|
||||||
memory->free = ft_free;
|
memory->free = ft_free;
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue