aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPer Larsson <[email protected]>2021-09-09 13:57:53 +0200
committerPer Larsson <[email protected]>2021-09-09 13:57:53 +0200
commitf4e4b6905726e3945d1bafa4d72277576f3d8017 (patch)
treee59e24917510a36eef29f51d10567548e0b92977
parentParse Accept mime type. (diff)
parentUpdate README.md (diff)
downloadzen-f4e4b6905726e3945d1bafa4d72277576f3d8017.tar.xz
zen-f4e4b6905726e3945d1bafa4d72277576f3d8017.zip
Merge branch 'main' of https://github.com/EpicGames/zen
-rw-r--r--README.md41
-rw-r--r--zenfs_common.props3
2 files changed, 37 insertions, 7 deletions
diff --git a/README.md b/README.md
index 62cdf919d..7d51d3686 100644
--- a/README.md
+++ b/README.md
@@ -3,16 +3,15 @@
This is the implementation of the local storage service for UE5. It is intended to be deployed on
user machines either as a daemon or launched ad hoc as required during of editor/cooker/game startup
-This repo also contains a VFS prototype (zenfs) which is currently not functional, it's a prototype
-which has decayed, hopefully it can be revisited at some point.
+We currently only support building and running the server on Windows. Linux and Mac support is in progress
-## Setup
+## Building on Windows
-We currently only support building and running the server on Windows. Linux and Mac will be supported before UE5 release
+### Windows Setup
To build the code you will need Visual Studio 2019 (we use c++20 features), git and vcpkg.
-* Install Visual Studio 2019 Version 16.9.4 or later (16.10 is recommended as it contains improvements to debug codegen which have a pretty significant impact when iterating in debug mode)
+* Install Visual Studio 2019 Version 16.10 or later
* Install [git](https://git-scm.com/download/win)
We use vcpkg to manage some libraries. Right now it's not set up on a project local
@@ -26,6 +25,11 @@ basis and requires manual bootstrap so you will need to do the following at leas
Now you are ready to start building!
+### Building with Visual Studio
+
+We currently require Visual Studio 2019 Version 16.10 or later. Visual Studio 2022 can also be used, but
+currently building with the VS2022 toolchain has not been tested (please leave the sln/vcxproj un-upgraded).
+
* clone the `zen` repository if you haven't already
* run `git clone https://github.com/EpicGames/zen.git`, or use Visual Studio integrated git to clone
and open the repo
@@ -33,7 +37,30 @@ Now you are ready to start building!
http.sys requires elevation)
* you can now build and run `zenserver` as usual from Visual Studio
* 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
+ 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.
+
+### Building with xmake
+
+* Install xmake from https://github.com/xmake-io/xmake/releases/tag/v2.5.7 ( later versions should also be ok)
+ * Once installed you may want to update to latest using `xmake update dev` to get some bugfixes for
+ scheduling compiles on very high core count workstations (this note applies to 2.5.7)
+
+You can then build from the command line:
+
+`d:\zen> xmake -y` (the `-y` is only really useful the first build when xmake prompts for vcpkg package installation confirmation)
+
+It's also possible to generate project files for Visual Studio via
+
+`d:\zen> xmake project -k vsxmake`
+
+## Building on Linux
+
+... coming soon
+
+## Building on Mac
+
+... coming soon
# Implementation Notes
@@ -55,7 +82,7 @@ To run the pre-commit scripts you'll need a few things:
* We rely on clang-format for consistent code formatting. You can install version 12 or later from https://llvm.org/builds/
* The helper scripts also depend on Python 3.x, which you may install from https://www.python.org/downloads/windows/ (I am presently using 3.9.5 which works). NOTE: *do* check the option to add Python to your PATH!
-Once you have those dependencies, you can simply run `prepare_commit.bat` to ensure the code is properly formatted and has the Epic copyright header comment
+Once you have those dependencies, you can simply run `prepare_commit.bat` to ensure the code is properly formatted and has the Epic copyright header comment. I'm sure there's a better way to integrate this into the git submit flow but my git-fu is not strong enough yet to know how to do that best.
# Debugging
diff --git a/zenfs_common.props b/zenfs_common.props
index 4ab89e80f..f550ff929 100644
--- a/zenfs_common.props
+++ b/zenfs_common.props
@@ -13,6 +13,9 @@
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_UNICODE;UNICODE;_WIN32_WINNT=0x0A00 ;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
+ <Link>
+ <IgnoreSpecificDefaultLibraries>msvcrt</IgnoreSpecificDefaultLibraries>
+ </Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project> \ No newline at end of file