-
Notifications
You must be signed in to change notification settings - Fork 109
RU: Building and Running
Table of Contents generated with DocToc
Перевод готов на 5%
Если вам требуется поддержка VGUI, вам нужен Half-Life 1 SDK для сборки библиотеки vgui_support.
Примечание: VGUI работает только на Linux/MacOSX/Windows и только для x86.
Если вы не желаете использовать VGUI, либо не в состоянии по описанной причине выше, собирайте Xash3D с аргументом -DXASH_VGUI=no
.
Склонируйте репозиторий Xash3D через git:
git clone https://github.com/FWGS/xash3d
Теперь склонируйте Half Life 1 SDK:
git submodule init && git submodule update
Half Life 1 SDK склонирован в директорию hlsdk
, теперь можно собрать Xash3D:
cd xash3d
mkdir -p build # Создаём директорию build
cd build
cmake -DHL_SDK_DIR=../hlsdk -DXASH_SDL=yes -DXASH_VGUI=yes .. #указывается директория к SDK, а также включается поддержка VGUI
make # Начинаем сборку, не забудьте добавить -j<кол-во ядер>
Также есть другие конфигурации в нашей вики на английском языке: Possible-configurations
Если вы хотите собрать Xash3D для встраиваемого устройства или избежать использования CMake, то используйте Makefile.linux
cd (xash3d)/engine
make -f Makefile.linux XASH_VGUI=1
или
make -f Makefile.linux XASH_DEDICATED=1
Чтобы включить поддержку dll на linux, соберите библиотеку загрузчика:
cd (xash3d)/loader
make -f Makefile.linux libloader.so libloader.a
cp libloader.so libloader.a ../engine/
И соберите движок с параметром XASH_DLL_LOADER=1:
make -f Makefile.linux XASH_VGUI=1 XASH_SDL=1 XASH_DLL_LOADER=1
или
make -f Makefile.linux XASH_DEDICATED=1 XASH_DLL_LOADER=1
cd (xash3d)/game_launch
gcc xash.c -o xash -ldl -lrt -lm
После этого вы можете использовать XASH_SINGLE_BINARY:
make -f Makefile.linux XASH_SINGLE_BINARY=1 xash
Download latest prebuilt SDL2 from
https://www.libsdl.org/release/SDL2-devel-2.0.4-VC.zip
Unzip and rename SDL2-2.0.4
folder to SDL2
and put it next to xash3d project folder.
..\xash3d\
..\SDL2\
Open xash.sln
with Visual Studio 2013 and make a build. After building, copy contents of Debug
or
Release
folder to directory you choose. Copy valve
folder and vgui.dll
from your Half Life game
installation folder and SDL2.dll
form \SDL2\lib\x86\
to it.
Move vgui_support.dll
into valve
folder.
..\valve\
..\valve\vgui_support.dll
..\menu.dll
..\SDL2.dll
..\vgui.dll
..\xash.dll
..\xash.exe
Now you good to go, just run xash.exe
.
This is legacy configuration, but msvc6 seems to generate more stable and more effective code
Setup your msvc6 enviroment, unpack SDL2-2.0.4 to xash3d folder and do:
cd (xash3d)\engine
..\msvc6\build.bat
cd (xash3d)\game_launch
..\msvc6\build_launch.bat
The most effective configuration, but maybe unstable. Setup your MinGW environment and run:
cd (xash3d)\engine\
mingw32-make -f Makefile.mingw
engine will be built to single exe binary
All mods that ported to android may be build to linux using Android.mk with microndk:
[https://github.com/SDLash3D/microndk]
Clone microndk repo somewhere, change xash3d_config to preffered configuration (change arch to x86 for example)
Go to dlls folder if you are building server or cl_dlls if you are building client and do:
make -f /path/to/microndk/microndk.mk -j4
Do:
make -f /path/to/microndk/microndk.mk -j4 clean
every time when you build client after building server
On windows common way is using Visual Studio as many mods does not correctly work with mingw.
Just open project and build it.
Other is using mingw and microndk, but it was not tested yet.
hlsdk-xash3d seems to work fine with mingw.
You may use microndk to build it. Build process is very similar to linux one.
Copy valve folder from Half-Life:
cp -r $HOME/.steam/steam/SteamApps/common/Half-Life/valve $HOME/Games/Xash3D
NOTE: If you build with CMake, you can now use make install
. It will install binaries where
they must be located. So just run xash3d
from command line in directory where is gamedata is located.
For additional info look to the CMakeLists.txt in repo root and xash3d.sh script.
After a successful build, copy the next files to some other directory where you want to run Xash3D:
cp engine/libxash.so game_launch/xash3d mainui/libxashmenu.so $HOME/Games/Xash3D
If you built it with XASH_VGUI, also copy vgui.so:
cp ../hlsdk/linux/vgui.so vgui_support/vgui_support.so $HOME/Games/Xash3D
Copy script:
cp ../xash3d.sh $HOME/Games/Xash3D
Run:
cd $HOME/Games/Xash3D
./xash3d.sh
Put xash3d binaries and vgui(optionally) to you game data directory and run:
LD_LIBRARY_PATH=. ./xash -dev 5
LD_LIBRARY_PATH=. gdb --args ./xash -dev 5
Put vgui_support.dll from windows build to your game data folder and run:
LD_LIBRARY_PATH=. ./xash -dev 5 -vguilib vgui.dll -clientlib valve/cl_dlls/client.dll -dll dlls/hl.dll
Put exe file to your game data directory
cd (game)\
xash_bin -dev 5
gdb --args ./xash_bin.exe -dev 5