Install and run Visual Studio Installer. The installer allows you to choose specific components. Select Desktop development with C++
. You can untick everything you don't need in Installation details, but you must keep MSVC
ticked. You may also keep C++ CMake tools for Windows
ticked as you'll need cmake. Alternatively you can install cmake from the cmake.org and during installation tick Add to the PATH....
If cmake was installed with Visual Studio Installer, you'll need to run Developer command prompt for VS
via Windows Start
menu. If cmake was installed with cmake installer, you can run the regular Windows cmd
.
Inside the prompt navigate to the hlsdk directory, using cd
command, e.g.
cd C:\Users\username\projects\Client-Mod
Note: if Client-Mod is unpacked on another disk, nagivate there first:
D:
cd projects\Client-Mod
Сonfigure the project:
cmake -A Win32 -B build
Note that you must repeat the configuration step if you modify CMakeLists.txt
files or want to reconfigure the project with different parameters.
The next step is to compile the libraries:
cmake --build build --config Release
hl.dll
and client.dll
will appear in the build/dlls/Release
and build/cl_dll/Release
directories.
If you have a mod and want to automatically install libraries to the mod directory, set GAMEDIR variable to the directory name and CMAKE_INSTALL_PREFIX to your Half-Life or Xash3D installation path:
cmake -A Win32 -B build -DGAMEDIR=mod -DCMAKE_INSTALL_PREFIX="C:\Program Files (x86)\Steam\steamapps\common\Half-Life"
Then call cmake
with --target install
parameter:
cmake --build build --config Release --target install
You can explicitly choose a Visual Studio version on the configuration step by specifying cmake generator:
cmake -G "Visual Studio 16 2019" -A Win32 -B build
After the configuration step, CLIENT-MOD.sln
should appear in the build
directory. You can open this solution in Visual Studio and continue developing there.
Install C++ compilers, cmake and x86 development libraries for C, C++ and SDL2. On Ubuntu/Debian:
sudo apt install cmake build-essential gcc-multilib g++-multilib libsdl2-dev:i386
cmake -B build -S .
cmake --build build
Note that the libraries built this way might be not compatible with Steam Half-Life. If you have such issue you can configure it to build statically with c++ and gcc libraries:
cmake .. -DCMAKE_C_FLAGS="-static-libstdc++ -static-libgcc"
Use the most suitable way for you to create an old distro 32-bit chroot. E.g. on Ubuntu/Debian you can use debootstrap.
sudo apt install debootstrap schroot
sudo mkdir -p /var/choots
sudo debootstrap --arch=i386 jessie /var/chroots/jessie-i386 # On Ubuntu type trusty instead of jessie
sudo chroot /var/chroots/jessie-i386
# inside chroot
apt install cmake build-essential gcc-multilib g++-multilib libsdl2-dev
exit
Create and adapt the following config in /etc/schroot/chroot.d/jessie.conf (you can choose a different name):
[jessie]
type=directory
description=Debian jessie i386
directory=/var/chroots/jessie-i386/
users=yourusername
groups=adm
root-groups=root
preserve-environment=true
personality=linux32
Insert your actual user name in place of yourusername
.
Prepend any make or cmake call with schroot -c jessie --
:
schroot --chroot jessie -- cmake -B build-in-chroot -S .
schroot --chroot jessie -- cmake --build build-in-chroot
TODO
- Set up
dkp-pacman
. - Install dependency packages:
sudo dkp-pacman -S switch-dev dkp-toolchain-vars switch-mesa switch-libdrm_nouveau switch-sdl2
- Make sure the
DEVKITPRO
environment variable is set to the devkitPro SDK root:
export DEVKITPRO=/opt/devkitpro
- Install libsolder:
source $DEVKITPRO/switchvars.sh
git clone https://github.com/fgsfdsfgs/libsolder.git
make -C libsolder install
mkdir build && cd build
aarch64-none-elf-cmake -G"Unix Makefiles" -DCMAKE_PROJECT_CLIENT-MOD_INCLUDE="$DEVKITPRO/portlibs/switch/share/SolderShim.cmake" ..
make -j
- Set up VitaSDK.
- Install vita-rtld:
git clone https://github.com/fgsfdsfgs/vita-rtld.git && cd vita-rtld mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j2 install
mkdir build && cd build
cmake -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="$VITASDK/share/vita.toolchain.cmake" -DCMAKE_PROJECT_CLIENT-MOD_INCLUDE="$VITASDK/share/vrtld_shim.cmake" ..
make -j
Building on other architectures (e.g x86_64 or arm) and POSIX-compliant OSes (e.g. FreeBSD) is supported.
Install C and C++ compilers (like gcc or clang), cmake and make.
cmake -B build -S .
cmake --build build
Some useful build options that can be set during the cmake step.
- GOLDSOURCE_SUPPORT - allows to turn off/on the support for GoldSource input. Set to ON by default on Windows and Linux, OFF on other platforms.
- USE_VGUI - whether to use VGUI library. OFF by default. You need to init
vgui_support
submodule in order to build with VGUI.
This list is incomplete. Look at CMakeLists.txt
to see all available options.
Prepend option names with -D
when passing to cmake. Boolean options can take values OFF and ON. Example:
cmake .. -DUSE_VGUI=ON -DGOLDSOURCE_SUPPORT=ON -DCROWBAR_IDLE_ANIM=ON -DCROWBAR_FIX_RAPID_CROWBAR=ON