Building FreeType Static Library for Ubuntu (GCC, CMake & Ninja) Сборка статической библиотеки FreeType для Ubuntu (GCC, CMake и Ninja)

A guide to compiling FreeType source code into a static library (libfreetype.a) on Ubuntu. Руководство по компиляции исходного кода FreeType в статическую библиотеку (libfreetype.a) в Ubuntu.

If you haven't set up C/C++ development tools on your Ubuntu machine, follow the Если вы еще не настроили инструменты разработки C/C++ на вашей системе Ubuntu, следуйте инструкции: Ubuntu C/C++ Development Environment Setup Guide Руководство по настройке среды разработки C/C++ на Ubuntu

Step 1: Install Build Dependencies Шаг 1: Установка зависимостей сборки

Ensure that wget is installed on your system to download source archives: Убедитесь, что wget установлен в вашей системе для скачивания архивов с исходным кодом:

sudo apt update && sudo apt install -y wget

Step 2: Download FreeType Source Code Archive Шаг 2: Скачивание архива исходного кода FreeType

You can browse the official FreeType releases page to check the latest available release assets: Вы можете перейти на страницу релизов FreeType, чтобы посмотреть список доступных версий:

View FreeType Releases Смотреть релизы FreeType

Download and extract the source archive for version 2.14.3 using wget: Скачайте и распакуйте архив с исходным кодом версии 2.14.3 с помощью wget:

cd ~
wget https://github.com/freetype/freetype/archive/refs/tags/VER-2-14-3.tar.gz -O freetype-2.14.3.tar.gz
tar -xzf freetype-2.14.3.tar.gz
cd freetype-VER-2-14-3

Step 3: Create the Build Script Шаг 3: Создание скрипта сборки

In the root directory of the extracted FreeType source folder, create a script named build-ubuntu-static.sh with the following content: В корневой директории извлеченного исходного кода FreeType создайте файл build-ubuntu-static.sh со следующим содержимым:

#!/usr/bin/env bash
set -e

BUILD_DIR="build-ubuntu-static"

rm -rf "$BUILD_DIR"
mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"

cmake .. \
  -GNinja \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX="$HOME/libs/freetype-2.14.3-ubuntu" \
  -DBUILD_SHARED_LIBS=OFF \
  -DFT_DISABLE_HARFBUZZ=ON \
  -DFT_DISABLE_ZLIB=ON \
  -DFT_DISABLE_PNG=ON \
  -DFT_DISABLE_BROTLI=ON

cmake --build . --config Release --parallel $(nproc) --target install
Note: Примечание: The flags -DFT_DISABLE_HARFBUZZ=ON, -DFT_DISABLE_ZLIB=ON, -DFT_DISABLE_PNG=ON, and -DFT_DISABLE_BROTLI=ON disable third-party dependencies, ensuring a standalone static build without needing external libraries. Флаги -DFT_DISABLE_HARFBUZZ=ON, -DFT_DISABLE_ZLIB=ON, -DFT_DISABLE_PNG=ON и -DFT_DISABLE_BROTLI=ON отключают сторонние зависимости, обеспечивая автономную статическую сборку без необходимости в дополнительных библиотеках.

Step 4: Run, Compile, and Clean Up Шаг 4: Запуск, сборка и очистка

Grant execution permissions to the script and run it in your terminal: Сделайте скрипт исполняемым и запустите его в терминале:

chmod +x build-ubuntu-static.sh
./build-ubuntu-static.sh

Upon completion, your compiled static library (libfreetype.a) along with headers will be installed in your specified CMAKE_INSTALL_PREFIX directory. После успешного завершения собранная статическая библиотека (libfreetype.a) вместе с заголовочными файлами будет установлена по пути, указанному в CMAKE_INSTALL_PREFIX.

Once installed, you can safely remove the temporary source directory and the downloaded archive: После установки вы можете безопасно удалить временную директорию с исходным кодом и скачанный архив:

cd ~ && rm -rf ~/freetype-VER-2-14-3 ~/freetype-2.14.3.tar.gz

Step 5: Next Steps Шаг 5: Следующие шаги

Now that you have configured your environment, you can proceed with integrating the FreeType library using CMake: Теперь, когда вы настроили окружение, вы можете перейти к интеграции библиотеки FreeType с помощью CMake:

Integrating FreeType Library with CMake on Windows & Ubuntu Интеграция C++-библиотеки FreeType с CMake под Windows и Ubuntu


Support My Work Поддержать проект

If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.

Sberbank (Russia only) Сбербанк (только для РФ)

Sberbank SBP QR Code

Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)

+7 (917) 212-29-59

USDT TRC20

USDT TRC20 QR Code

Support via Cryptocurrency Поддержка криптовалютой

TMtY1YifNf6FKvgeFmqKGQR4NStKr3csGp