Skip to content

Source Engine (RU)

nillerusr edited this page Jan 25, 2023 · 2 revisions

Добро пожаловать на Source Engine вики!

Инструкция по сборке:

Linux:

Ubuntu 18.04 (bionic) / Debian 10 (buster)

Подготовка

  • Установите git и склонируйте этот репозиторий с помощью команды git clone --recursive --depth 1. Ключ --recursive склонирует и проинициализирует модули сразу при клонировании, а ключ --depth 1 склонирует только один последний известный коммит с ветки.
  • Добавьте архитектуру i386 в dpkg при помощи команды dpkg --add-architecture i386.
  • Установите также build-essential gcc-multilib g++-multilib pkg-config ccache.

Зависимости

  • libsdl2-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libopenal-dev:i386 libjpeg-dev:i386 libpng-dev:i386 libcurl4-gnutls-dev:i386 libbz2-dev:i386 libedit-dev:i386 для 64-битной системы.
  • Можно использовать также libcurl4-openssl-dev или libcurl4-nss-dev вместо libcurl4-gnutls-dev.
OPUS
  • Если вам требуется поддержка голосового чата, добавьте ключ --enable-opus в WAF и следуйте следущим инструкциям.
  • НЕ УСТАНАВЛИВАЙТЕ ПАКЕТ libopus-dev ИЗ РЕПОЗИТОРИЯ! Эта сборка opus не содержит включённой поддержки кастомных режимов!!
  • Склонируйте исходный код opus с помощью команды git clone --recursive --depth 1 https://github.com/xiph/opus и зайдите в него.
  • Выполните sudo apt update; sudo apt install automake autoconf libtool.
  • export CFLAGS="-m32" CPPFLAGS="-m32" для 64-битной системы, если вы собираете 32-битный движок.
  • После установки зависимостей выполните ./autogen.sh && ./configure --enable-custom-modes && make -j$(nproc) && sudo make install.
  • Теперь вы можете продолжить сборку движка.

Arch Linux и Arch Linux подобные дистрибутивы

Зависимости

  • Установите git python gcc gcc-multilib sdl2 freetype2 fontconfig zlib bzip2 libjpeg libpng curl openal opus.
  • Для 32-битной сборки установите lib32-gcc-libs lib32-sdl2 lib32-freetype2 lib32-fontconfig lib32-zlib lib32-bzip2 lib32-libjpeg lib32-libpng lib32-curl lib32-openal lib32-opus.
  • Следуйте общим инструкциям по сборке.

gen2

Windows

  • Установите MSVC 15.9 и Windows SDK с помощью установщика Visual Studio. Или вы можете установить полную Visual Studio 2017 и использовать MSVC 15.9 оттуда.
  • Установите Python 3 и добавьте его в Path.
  • Сборка по какой-то причине работает только в PowerShell. Дальше следуйте общей иструкции по сборке.

OSX

Подготовка

  • Установите Xcode из AppStore.
  • Установите инструменты разработки Xcode с помощью команды xcode-select --install.
  • Установите HomeBrew.

Зависимости

  • Выполните brew install sdl2 freetype2 fontconfig pkg-config opus libpng libedit
  • Следуйте общим инструкциям по сборке.

BSD

FreeBSD

Зависимости
  • Выполните pkg ins python sdl2 freetype2 fontconfig curl pkgconf openal-soft jpeg-turbo png.
  • Следуйте общим инструкциям по сборке.

Общая иструкция по сборке (Все OS)

  • Для использования системы сборки WAF вам требуется Python. Я рекомендую использовать {ython 3.
  • Выболните ./waf configure -T BUILDMODE, где BUILDMODE это release или debug.
  • На Windows вы должны использовать .\waf.bat или запускать скрипт waf таким образом python3 waf.
  • Если WAF говорит что-то вроде /usr/bin/env: 'python': Нет такого файла или каталога добавьте python3 префикс перед ./waf.
  • Если вы хотите собрать 64-битный движок тогда добавьте аргумент -8 или --64bits в WAF.

Выделенный сервер

  • Просто добавьте флаг -d при конфигурации проекта.

Android (на Linux)

Подготовка

  • Скачайте и распакуйте Android NDK r10e отсюда.
  • Скачайте и распакуйте CLANG 11 или используйте CLANG из репозитория LLVM для APT-подобных дистрибутивов.
  • Выполните export ANDROID_NDK_HOME="PATH/TO/NDK/android-ndk-r10e" и export PATH="PATH/TO/CLANG/bin:$PATH" или export PATH="/usr/lib/llvm-11/bin:$PATH" если вы использовали скрипт llvm.sh.
  • Добавьте --togles --android=armeabi-v7a-hard,host,21 в аргументы WAF. armeabi-v7a-hard может быть изменён на aarch64 для сборки под 64-битный ARM, но тогда нужно добавить аргумент -8 или --64bits.