Повторна компіляція за допомогою ServBay
ServBay пропонує потужне й повноцінне локальне середовище розробки Web для користувачів macOS та Windows, яке містить широкий набір інструментів і пакетів. Окрім стандартних версій пакетів, встановлених у ServBay, розробникам іноді потрібно виконати повторну компіляцію для особливих задач, наприклад:
- Активувати специфічні опції компіляції для певного пакета.
- Додати модулі чи розширення, які за замовчуванням не входять у ServBay (наприклад, новий PHP-розширення чи модуль PostgreSQL).
- Компілювати з іншими бібліотеками, відмінними від стандартних у ServBay.
- Внести кастомні зміни до вже наявних пакетів ServBay.
ServBay надає необхідне середовище та інструментарій для того, щоб зручно виконувати такі задачі повторної компіляції.
Щоб успішно виконати повторну компіляцію, потрібно базово розуміти процеси компіляції для обраної операційної системи:
- macOS/Linux: Система компіляції Unix/Linux —
configure
,make
,make install
тощо. - Windows: Системи побудови на основі Visual Studio, MSBuild, cmake і т.д.
Передумови
Перед початком повторної компіляції переконайтеся, що виконано такі вимоги:
Встановіть ServBay Development Library: Це основна залежність для повторної компіляції. Пакет містить необхідні бібліотеки, заголовки та інші ресурси розробника для ServBay. Її можна знайти та встановити через панель Пакети у програмі ServBay.
Встановіть інструменти розробника:
macOS
Встановлення Xcode Command Line Tools: Це базовий набір інструментів для розробки від macOS, що надає компілятор (Clang), компоновщик тощо. Відкрийте Terminal і виконайте команду:
bashxcode-select --install
1Якщо утиліта вже встановлена, система вас про це повідомить.
Встановіть додаткові інструменти компіляції: Для більшості open-source проектів також знадобляться
autoconf
,automake
,libtool
та інші. Їх можна встановити за допомогою Homebrew:bashbrew install autoconf automake libtool cmake
1Якщо Homebrew не встановлено — скористайтеся офіційною інструкцією з сайту Homebrew.
Windows
Встановіть Visual Studio Build Tools або Visual Studio Community: На Windows потрібен компілятор Microsoft Visual C++ та інструменти збірки. Можлива установка одним із способів:
Спосіб 1: Visual Studio Build Tools (рекомендовано, легша версія)
- Скачайте та встановіть Visual Studio Build Tools
- Під час встановлення виберіть "C++ build tools" (набір засобів)
- Переконайтеся, що встановлені такі компоненти:
- MSVC v143 — VS 2022 C++ x64/x86 build tools
- Windows 11 SDK (останньої версії)
- Інструмент CMake
Спосіб 2: Visual Studio Community
- Скачайте та встановіть Visual Studio Community
- Під час встановлення виберіть "Desktop development with C++"
- Переконайтеся, що встановлені CMake та Windows SDK
Додаткові інструменти: Для окремих проектів можуть знадобитися:
- Git for Windows: Для завантаження вихідного коду
- MSYS2 або vcpkg: Для управління залежностями C/C++
- Python: Деякі скрипти компіляції використовують Python
powershell# Встановлення додаткових інструментів через chocolatey (необов’язково) choco install git cmake python msys2
1
2
Налаштування середовища компіляції
Після встановлення ServBay Development Library та інших критичних інструментів потрібно ініціалізувати середовище компіляції. Це налаштовує низку змінних середовища, які повідомляють компілятору, де шукати бібліотеки, заголовки й виконувані файли ServBay, щоб коректно обробити залежності та лінкування.
Конфігурація змінних залежить від операційної системи та архітектури:
macOS
Середовище ServBay для Mac розподіляється на Intel (x86_64) і Apple Silicon (Arm64). Виберіть відповідну команду для ініціалізації середовища згідно з архітектурою вашого Mac.
Windows
Версія ServBay для Windows працює з x64 і встановлюється в каталог C:\ServBay
.
Визначення архітектури CPU ServBay Runtime
macOS
Щоб визначити архітектуру, перегляньте довільний виконуваний файл з каталогу ServBay bin
, наприклад bison
:
bash
# Виконайте цю команду в Terminal
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable arm64
1
2
3
2
3
bash
# Виконайте цю команду в Terminal
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable x86_64
1
2
3
2
3
Windows
На Windows ServBay підтримує x64. Перевірте файли через PowerShell:
powershell
# Виконайте команду в PowerShell
PS> Get-Command "C:\ServBay\bin\bison.exe" | Select-Object -ExpandProperty FileVersionInfo | Select-Object ProductName, FileDescription
1
2
2
Або перегляньте властивості файлу вручну.
Після перевірки виберіть відповідний скрипт для ініціалізації середовища.
Ініціалізація змінних середовища компіляції
Виберіть скрипт для ініціалізації згідно з платформою й архітектурою:
macOS
Відкрийте новий Тerminal і вставте відповідний скрипт для вашого CPU. Він підготує шляхи та прапори для компіляції в середовищі ServBay.
bash
# Встановлення кількості ядер CPU для паралельної компіляції
CPU_NUMBER=$(sysctl -n hw.ncpu)
# Базовий шлях до встановлення ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# Назва каталогу пакетів
SERVBAY_PACKAGE_DIR_NAME="package"
# Повний шлях до каталогу пакетів
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# Шляхи до виконуваних файлів
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# Конфігураційний шлях
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# Дані змінних
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# Шляхи до ServBay Development Library
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
SERVBAY_COMMON_LIB_PATH="${SERVBAY_COMMON_PATH}/lib"
SERVBAY_COMMON_LIBEXEC_PATH="${SERVBAY_COMMON_PATH}/libexec"
SERVBAY_COMMON_SHARE_PATH="${SERVBAY_COMMON_PATH}/share"
SERVBAY_COMMON_MAN_PATH="${SERVBAY_COMMON_PATH}/man"
SERVBAY_COMMON_DOC_PATH="${SERVBAY_COMMON_PATH}/doc"
# Робочий каталог
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# OpenSSL: версія та вибір
OPENSSL_SELECTED_VERSION="3.2"
OPENSSL_VERSION="3.2.1"
# Мінімальна версія macOS
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey або новіше
# CPU архітектура та прапори
BUILD_CPU_ARCH="-arch arm64"
BUILD_CPU_ARCH_CMAKE="arm64"
BUILD_MACOS_TARGET="" # Arm64 звичайно не потребує -target
# Прапори компілятора C: рівень оптимізації, мін. macOS, архітектура
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Лінкер: rpath, шляхи до бібліотек, minmacOS і архітектура
export LDFLAGS="-Wl,-rpath -Wl,${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_PACKAGE_FULL_PATH} -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Прапори препроцесора й CXX: шляхи до заголовків
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Пошук виконуваних: спершу ServBay
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# pkg-config
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Додаємо Homebrew та системні каталоги
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # стандартний шлях Homebrew
# Додаємо OpenSSL до LDFLAGS і CPPFLAGS
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
# Додавання pkgconfig для OpenSSL
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
echo "Середовище компіляції ServBay Arm64 налаштовано."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
bash
# Встановлення кількості ядер CPU для паралельної компіляції
CPU_NUMBER=$(sysctl -n hw.ncpu)
# Базовий шлях до встановлення ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# Назва каталогу пакетів
SERVBAY_PACKAGE_DIR_NAME="package"
# Повний шлях до каталогу пакетів
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# Шляхи до виконуваних файлів
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# Конфігураційний шлях
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# Дані змінних
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# Шляхи до ServBay Development Library
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
SERVBAY_COMMON_LIB_PATH="${SERVBAY_COMMON_PATH}/lib"
SERVBAY_COMMON_LIBEXEC_PATH="${SERVBAY_COMMON_PATH}/libexec"
SERVBAY_COMMON_SHARE_PATH="${SERVBAY_COMMON_PATH}/share"
SERVBAY_COMMON_MAN_PATH="${SERVBAY_COMMON_PATH}/man"
SERVBAY_COMMON_DOC_PATH="${SERVBAY_COMMON_PATH}/doc"
# Робочий каталог
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# OpenSSL: версія та вибір
OPENSSL_SELECTED_VERSION="1.1.1u"
OPENSSL_VERSION="1.1.1u"
# Мінімальна версія macOS
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey або новіше
# Архітектура та цільова платформа (Intel часто потрібен -target)
BUILD_CPU_ARCH="-arch x86_64"
BUILD_CPU_ARCH_CMAKE="x86_64"
BUILD_MACOS_TARGET="-target x86_64-apple-macos${BUILD_OS_MIN_VERSION}"
# Прапори компілятора C: рівень оптимізації, мін. macOS, архітектура та ціль
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export LDFLAGS="-Wl,-rpath -Wl,${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_PACKAGE_FULL_PATH} -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # Homebrew
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
echo "Середовище компіляції ServBay x86_64 налаштовано."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Windows
На платформі Windows змінні середовища потрібно налаштовувати в PowerShell або Developer Command Prompt. Нижче — приклад скрипта для Windows x64:
powershell
# Встановлення кількості ядер CPU для паралельної компіляції
$CPU_NUMBER = (Get-WmiObject -Class Win32_Processor).NumberOfLogicalProcessors
# Базовий шлях до встановлення ServBay
$SERVBAY_BASE_FULL_PATH = "C:\ServBay"
$SERVBAY_PACKAGE_DIR_NAME = "package"
$SERVBAY_PACKAGE_FULL_PATH = "${SERVBAY_BASE_FULL_PATH}\${SERVBAY_PACKAGE_DIR_NAME}"
# Шляхи до виконуваних файлів
$SERVBAY_BIN_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\bin"
$SERVBAY_SBIN_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\sbin"
# Конфігураційний шлях
$SERVBAY_ETC_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\etc"
# Дані змінних
$SERVBAY_VAR_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\var"
# ServBay Development Library
$SERVBAY_COMMON_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\common"
$SERVBAY_COMMON_INCLUDE_PATH = "${SERVBAY_COMMON_PATH}\include"
$SERVBAY_COMMON_LIB_PATH = "${SERVBAY_COMMON_PATH}\lib"
$SERVBAY_COMMON_LIBEXEC_PATH = "${SERVBAY_COMMON_PATH}\libexec"
$SERVBAY_COMMON_SHARE_PATH = "${SERVBAY_COMMON_PATH}\share"
$SERVBAY_COMMON_DOC_PATH = "${SERVBAY_COMMON_PATH}\doc"
# Робочий каталог
$SERVBAY_BUILD_DIR = Get-Location
$SERVBAY_BUILD_SRC_DIR = "${SERVBAY_BUILD_DIR}\src"
# OpenSSL — вибір і версія
$OPENSSL_SELECTED_VERSION = "3.2"
$OPENSSL_VERSION = "3.2.1"
# Конфігурація Windows
$BUILD_PLATFORM = "x64"
$BUILD_CONFIG = "Release"
# Встановлення змінних середовища
$env:SERVBAY_BASE_FULL_PATH = $SERVBAY_BASE_FULL_PATH
$env:SERVBAY_COMMON_PATH = $SERVBAY_COMMON_PATH
$env:SERVBAY_COMMON_INCLUDE_PATH = $SERVBAY_COMMON_INCLUDE_PATH
$env:SERVBAY_COMMON_LIB_PATH = $SERVBAY_COMMON_LIB_PATH
# PATH — сервісні каталоги ServBay першими
$env:PATH = "${SERVBAY_BIN_PATH};${SERVBAY_SBIN_PATH};$env:PATH"
# Компілятор
$env:INCLUDE = "${SERVBAY_COMMON_INCLUDE_PATH};$env:INCLUDE"
$env:LIB = "${SERVBAY_COMMON_LIB_PATH};$env:LIB"
$env:LIBPATH = "${SERVBAY_COMMON_LIB_PATH};$env:LIBPATH"
# pkg-config (якщо застосовується)
$env:PKG_CONFIG_PATH = "${SERVBAY_COMMON_LIB_PATH}\pkgconfig"
# OpenSSL
$env:INCLUDE = "${SERVBAY_COMMON_PATH}\openssl\${OPENSSL_SELECTED_VERSION}\include;$env:INCLUDE"
$env:LIB = "${SERVBAY_COMMON_PATH}\openssl\${OPENSSL_SELECTED_VERSION}\lib;$env:LIB"
# CMAKE
$env:CMAKE_PREFIX_PATH = $SERVBAY_COMMON_PATH
$env:CMAKE_INSTALL_PREFIX = $SERVBAY_COMMON_PATH
Write-Host "Середовище компіляції ServBay Windows x64 налаштовано."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Для тих, хто використовує Developer Command Prompt, доступний бат-файл:
batch
@echo off
REM Налаштування середовища компіляції ServBay Windows
REM Базовий шлях
set SERVBAY_BASE_FULL_PATH=C:\ServBay
set SERVBAY_PACKAGE_FULL_PATH=%SERVBAY_BASE_FULL_PATH%\package
REM Шляхи ServBay
set SERVBAY_BIN_PATH=%SERVBAY_PACKAGE_FULL_PATH%\bin
set SERVBAY_COMMON_PATH=%SERVBAY_PACKAGE_FULL_PATH%\common
set SERVBAY_COMMON_INCLUDE_PATH=%SERVBAY_COMMON_PATH%\include
set SERVBAY_COMMON_LIB_PATH=%SERVBAY_COMMON_PATH%\lib
REM Версія OpenSSL
set OPENSSL_SELECTED_VERSION=3.2
REM Змінні середовища
set PATH=%SERVBAY_BIN_PATH%;%PATH%
set INCLUDE=%SERVBAY_COMMON_INCLUDE_PATH%;%SERVBAY_COMMON_PATH%\openssl\%OPENSSL_SELECTED_VERSION%\include;%INCLUDE%
set LIB=%SERVBAY_COMMON_LIB_PATH%;%SERVBAY_COMMON_PATH%\openssl\%OPENSSL_SELECTED_VERSION%\lib;%LIB%
set CMAKE_PREFIX_PATH=%SERVBAY_COMMON_PATH%
echo Середовище компіляції ServBay Windows налаштовано.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Важливо: Ці змінні середовища діють лише в поточній сесії Terminal. При закритті чи новому вікні потрібно повторити налаштування.
Приклади компіляції
Після налаштування середовища можете завантажувати та компілювати вихідний код. Ось типові приклади для різних платформ.
Компіляція ImageMagick
ImageMagick — потужна бібліотека для обробки зображень, залежність PHP-розширення imagick
. У стандартній інсталяції ServBay вона вже міститься, тому компіляція здебільшого не потрібна. Наведений приклад ілюструє загальний процес компіляції пакета в середовищі ServBay.
macOS / Linux
Завантажте джерела ImageMagick і розпакуйте:
bash# Використовуйте актуальну версію wget https://imagemagick.org/archive/releases/ImageMagick-7.1.1-33.tar.gz tar zxvf ImageMagick-7.1.1-33.tar.gz cd ImageMagick-7.1.1-33
1
2
3
4Запустіть
./configure
: Використовуючи параметри середовища, запускайте скрипт із префіксом і шляхами до ServBay Development Library. Це забезпечить доступність бібліотек і заголовків для решти пакетів ServBay, зокрема PHP-розширенняimagick
.bash./configure \ --prefix=${SERVBAY_COMMON_PATH} \ --libdir=${SERVBAY_COMMON_LIB_PATH} \ --includedir=${SERVBAY_COMMON_INCLUDE_PATH} \ --oldincludedir=${SERVBAY_COMMON_INCLUDE_PATH} \ --bindir=${SERVBAY_BIN_PATH} \ --sbindir=${SERVBAY_SBIN_PATH} \ --sysconfdir=${SERVBAY_ETC_PATH} \ --datarootdir=${SERVBAY_COMMON_SHARE_PATH} \ --enable-osx-universal-binary=no \ --disable-silent-rules \ --disable-opencl \ --enable-shared \ --enable-static \ --with-freetype=yes \ --with-gvc=no \ --with-modules \ --with-webp=yes \ --with-heic=no \ --without-gslib \ --with-fpx=no \ --without-openexexr \ --with-raw=yes \ --without-lqr \ --without-djvu \ --without-fftw \ --without-pango \ --without-wmf \ --without-x \ --with-gs-font-dir=${SERVBAY_COMMON_SHARE_PATH}/ghostscript/10.02.1/Resource/Font
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30Компілюйте та встановлюйте: Параметр
-j ${CPU_NUMBER}
дозволяє використовувати багатоядерність, прискорюючи процес.bashmake -j ${CPU_NUMBER} make install
1
2
Windows
Для Windows ImageMagick зазвичай компілюють через Visual Studio або CMake, причому другий варіант часто простіший:
Завантажте джерела:
powershell# Використайте curl або браузер curl -O https://imagemagick.org/archive/releases/ImageMagick-7.1.1-33.tar.gz # Розпакуйте (встановіть 7zip чи іншу утиліту) tar -xzf ImageMagick-7.1.1-33.tar.gz cd ImageMagick-7.1.1-33
1
2
3
4
5Конфігурація через CMake:
powershell# Створіть build-каталог і перейдіть до нього mkdir builddir cd builddir cmake .. ` -DCMAKE_INSTALL_PREFIX="$env:SERVBAY_COMMON_PATH" ` -DCMAKE_BUILD_TYPE=Release ` -DBUILD_SHARED_LIBS=ON ` -DMAGICKCORE_QUANTUM_DEPTH=16 ` -DMAGICKCORE_HDRI_ENABLE=OFF ` -DWITH_BZLIB=ON ` -DWITH_ZLIB=ON ` -DWITH_PNG=ON ` -DWITH_JPEG=ON ` -DWITH_TIFF=ON ` -DWITH_FREETYPE=ON ` -DWITH_WEBP=ON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17Компіляція та встановлення:
powershellcmake --build . --config Release --parallel $CPU_NUMBER cmake --install . --config Release
1
2
Компіляція пакету за допомогою cmake
Для програм, які використовують систему складання cmake
, процес компіляції схожий для macOS і Windows. Розглянемо це на прикладі protobuf
(Protocol Buffers).
- Завантажте та перейдіть у каталог protobuf.
macOS / Linux
Налаштуйте проект:
bashcmake -S . -B builddir \ -DCMAKE_INSTALL_PREFIX=${SERVBAY_COMMON_PATH} \ -DCMAKE_INSTALL_LIBDIR=${SERVBAY_COMMON_LIB_PATH} \ -DCMAKE_INSTALL_INCLUDEDIR=${SERVBAY_COMMON_INCLUDE_PATH} \ -DCMAKE_INSTALL_BINDIR=${SERVBAY_BIN_PATH} \ -DCMAKE_INSTALL_SBINDIR=${SERVBAY_SBIN_PATH} \ -DCMAKE_INSTALL_SYSCONFDIR=${SERVBAY_ETC_PATH} \ -DCMAKE_INSTALL_DATAROOTDIR=${SERVBAY_COMMON_SHARE_PATH} \ -DCMAKE_MACOSX_RPATH=1 \ -DCMAKE_INSTALL_RPATH=${SERVBAY_COMMON_LIB_PATH} \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE \ -DCMAKE_PREFIX_PATH=${SERVBAY_COMMON_PATH} \ -DBUILD_SHARED_LIBS=ON \ -Dprotobuf_BUILD_LIBPROTOC=ON \ -Dprotobuf_BUILD_SHARED_LIBS=ON \ -Dprotobuf_INSTALL_EXAMPLES=OFF \ -Dprotobuf_BUILD_TESTS=OFF \ -Dprotobuf_ABSL_PROVIDER=package \ -Dprotobuf_JSONCPP_PROVIDER=module \ -DCMAKE_CXX_STANDARD=17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Компіляція та встановлення:
bashcmake --build builddir -j ${CPU_NUMBER} cmake --install builddir
1
2
Windows
Конфігуруйте проект через CMake:
powershellcmake -S . -B builddir ` -DCMAKE_INSTALL_PREFIX="$env:SERVBAY_COMMON_PATH" ` -DCMAKE_BUILD_TYPE=Release ` -DCMAKE_PREFIX_PATH="$env:SERVBAY_COMMON_PATH" ` -DBUILD_SHARED_LIBS=ON ` -Dprotobuf_BUILD_LIBPROTOC=ON ` -Dprotobuf_BUILD_SHARED_LIBS=ON ` -Dprotobuf_INSTALL_EXAMPLES=OFF ` -Dprotobuf_BUILD_TESTS=OFF ` -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ` -DCMAKE_CXX_STANDARD=17
1
2
3
4
5
6
7
8
9
10
11Компіляція та інсталяція:
powershellcmake --build builddir --config Release --parallel $CPU_NUMBER cmake --install builddir --config Release
1
2
Компіляція PHP-модуля
Щоб зібрати додатковий PHP-модуль (наприклад, swoole
, redis
, mongodb
), скористайтеся окремою інструкцією:
Компіляція PostgreSQL-модуля
Для компіляції додаткового модуля під PostgreSQL у ServBay скористайтеся відповідною інструкцією:
Як скомпілювати модуль PostgreSQL
Підсумок
Використовуючи ServBay Development Library і якісне налаштування середовища, розробники можуть легко виконувати повторну компіляцію або кастомізацію пакетів у macOS і Windows. Ви отримуєте максимальну гнучкість для специфічних проектних потреб або актуалізації бібліотек.
Основні моменти
- Кросплатформеність: ServBay підтримує компіляційне середовище як для macOS, так і Windows.
- Відмінності в шляхах: Для macOS —
/Applications/ServBay
, для Windows —C:\ServBay
. - Різні інструментарії: macOS — Xcode Command Line Tools; Windows — Visual Studio Build Tools.
- Налаштування середовища: Обирайте відповідний скрипт залежно від платформи.
Зауваження
- Перед компіляцією ознайомтеся з офіційною документацією пакета.
- Коригуйте параметри відповідно до особливостей платформ.
- Для Windows рекомендовано використовувати збірку через CMake.
- Деякі open-source пакети мають різні вимоги/залежності для різних ОС.
Дотримуючись цієї інструкції, ви успішно виконаєте компіляцію програм у середовищі ServBay для обох платформ.