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.
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]:
| Definicja | Działanie |
|---|---|
DEBUG | Włącza tryb diagnostyczny. |
USE_STATIC_LIBSTDC | Dołą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>.