diff options
| author | Stefan Boberg <[email protected]> | 2023-04-12 13:23:38 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-04-12 13:23:38 +0200 |
| commit | ff4ba2841e5a32067eb6d755916f9f6e83b65788 (patch) | |
| tree | cf15840bf267e2f30678867a9dcc003935397af7 | |
| parent | merge (diff) | |
| download | zen-ff4ba2841e5a32067eb6d755916f9f6e83b65788.tar.xz zen-ff4ba2841e5a32067eb6d755916f9f6e83b65788.zip | |
Update installation instructions
Now includes information on how to use `winget` to streamline installation
| -rw-r--r-- | README.md | 27 |
1 files changed, 18 insertions, 9 deletions
@@ -28,7 +28,10 @@ To build the code you will need Visual Studio 2022 (we use c++20 features), git * Install Visual Studio 2022 * Install [git](https://git-scm.com/download/win) + * You can also use `winget install git` if you have winget installed + * You may want to install the github CLI to manage credentials etc - `winget install github.cli` * Install [xmake](https://xmake.io/#/getting_started) + * You can also use `winget install xmake` if you have winget installed * Install vcpkg (see below) #### Installing vcpkg @@ -50,31 +53,37 @@ This is necessary to run pre-commit locally, which is useful in particular to ru commit. * Make sure python3 is installed. Version 3.11 or later should work + * You can install using `winget install python3` * Run `pip install pre-commit` ### Building with Visual Studio -We currently require Visual Studio 2022 or later. The following steps need to be run from a Command Prompt window or a Terminal instance +We currently require a C++ compiler from Visual Studio 2022 or later. The following steps need to be run +from a Command Prompt window or a Terminal instance -* clone the `zen` repository if you haven't already. This requires a valid github login and you need to be part of the EpicGames organization - * run `git clone https://github.com/EpicGames/zen.git` +* clone the `zen` repository if you haven't already. This requires a valid github login and you need to + be part of the EpicGames organization + * run `git clone https://github.com/EpicGames/zen.git` or `gh repo clone EpicGames/zen` (you may want + to use `gh` to log in to github as well) * run `xmake sln` or `xmake project -k vsxmake2022 -a x64 -y` to generate a Visual Studio solution file * open the `vsxmake2022\zen.sln` VS solution (`start vsxmake2022\zen.sln`) * Note: if you want full connectivity with the http.sys server implementation you currently need to run Visual Studio in ADMIN mode since http.sys requires elevation to be able to listen on a non-local network socket. You can start Visual Studio in admin mode by holding CTRL-SHIFT when launching Visual Studio. Alternatively you can add an URL reservation (see below) - * you can now build and run `zenserver` as usual from Visual Studio + * you can now build and run `zenserver` as usual from Visual Studio. Note that the test suite is compiled into + the Debug configuration only at this time, to keep Release lean * third-party dependencies will be built the first time via the `vcpkg` integration. This is not as fast as it could be (it does not go wide) but should only happen on the first build and will leverage - a local build cache. + a local build cache ### Building with xmake -* configure xmake `xmake config -m debug|release -a x64` -* build zenserver `xmake build zenserver` +* configure xmake: `xmake config -m debug|release -a x64` +* build zenserver: `xmake build zenserver` + * build all targets at once: `xmake` -Binaries are located in the `build` directory +Compiled binaries are located in the `build` directory ## Building on Linux @@ -168,7 +177,7 @@ Note that the command above to set the build variant to debug is optional. Tests are only built in debug.The `xmake` flags `-vD` can be useful to diagnose `xmake` issues. -### Distribution compatibility +### Linux distribution compatibility Builds for Linux have a dependency on a modern version of the C++ library that supports Zen's use of C++20 and the GCC-11 toolchain used (assuming the above |