Przejdź do głównej zawartości

Instrukcja kompilacji

Większość administratorów serwerów powinna używać oficjalnego wydania. Kompiluj ze źródeł, gdy rozwijasz ReHLDS, testujesz niewydaną jeszcze zmianę albo potrzebujesz własnej wersji.

Sprawdzenie wymagań​

Kompilacja ReHLDS wymaga kilku rzeczy:

Windows

  • Visual Studio 2015 (standard C++14) lub nowsze

Linux

  • CMake 3.10 lub nowszy
  • Jeden z: GCC 4.9.2+, ICC 15.0.1 20141023+ albo Clang (LLVM) 6.0+

Sklonowanie repozytorium​

git clone https://github.com/rehlds/ReHLDS.git
cd ReHLDS

Kompilacja w Windowsie​

Otwórz msvc/ReHLDS.sln w Visual Studio, wybierz Release Swds (albo Debug Swds, jeśli chcesz wersję diagnostyczną) spośród konfiguracji rozwiązania, a następnie skompiluj.

notatka

CMake nie obsługuje kompilacji w Windowsie — CMakeLists.txt celowo kończy się błędem i komunikatem kierującym do msvc/ReHLDS.sln. CMake służy wyłącznie do kompilacji pod Linuksem.

Kompilacja w Linuksie​

Skorzystaj z dołączonego skryptu build.sh, opcjonalnie podając wybrany kompilator i liczbę zadań:

./build.sh --compiler=[gcc|icc|clang] --jobs=[N]

Na przykład:

./build.sh --compiler=gcc --jobs=4 # GCC
./build.sh --compiler=intel # ICC
./build.sh --compiler=clang # Clang / LLVM

Przez build.sh możesz też przekazać definicje CMake w postaci -D<opcja>=[ON|OFF]:

DefinicjaDziałanie
DEBUGWłącza tryb diagnostyczny.
USE_STATIC_LIBSTDCDołącza statycznie bibliotekę libstdc++.

Przygotowanie środowiska kompilacji (Debian / Ubuntu)​

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y gcc-multilib g++-multilib
sudo apt-get install -y build-essential
sudo apt-get install -y libc6-dev libc6-dev-i386
sudo apt-get install -y cmake

Następnie wybierz kompilator:

sudo apt-get install -y gcc g++
# albo
sudo apt-get install -y clang

Uruchomienie testów jednostkowych​

System ciągłej integracji projektu kompiluje i uruchamia zestaw testów jednostkowych przed zwykłą kompilacją, korzystając z osobnego typu kompilacji CMake:

cmake -DCMAKE_BUILD_TYPE=Unittests -B build
cmake --build build -j8
LD_LIBRARY_PATH="rehlds/lib/linux32:$LD_LIBRARY_PATH" ./build/rehlds/engine_i486

Kod wyjścia 0 albo 3 oznacza, że zestaw testów przeszedł; każdy inny kod wskazuje na nieudany test.

Wynik​

Udana kompilacja pod Linuksem daje engine_i486.so (a także pliki serwera dedykowanego, HLTV i systemu plików) w katalogu build/, w takim samym układzie, jaki podmieniasz podczas instalacji. W Windowsie skompilowane pliki DLL i EXE trafiają do odpowiedniego katalogu msvc/<Konfiguracja>.