Merge pull request #55565 from BBoozmen/oozmen_avoid_path_normalization
[ceph-ci.git] / README.windows.rst
1 About
2 -----
3
4 Ceph Windows support is currently a work in progress. For now, the main focus
5 is the client side, allowing Windows hosts to consume rados, rbd and cephfs
6 resources.
7
8 Building
9 --------
10
11 At the moment, mingw gcc is the only supported compiler for building ceph
12 components for Windows. Support for msvc and clang will be added soon.
13
14 `win32_build.sh`_ can be used for cross compiling Ceph and its dependencies.
15 It may be called from a Linux environment, including Windows Subsystem for
16 Linux. MSYS2 and CygWin may also work but those weren't tested.
17
18 .. _win32_build.sh: win32_build.sh
19
20 The script accepts the following flags:
21
22 ============  ===============================  ===============================
23 Flag          Description                      Default value
24 ============  ===============================  ===============================
25 CEPH_DIR      The Ceph source code directory.  The same as the script.
26 BUILD_DIR     The directory where the          $CEPH_DIR/build
27               generated artifacts will be
28               placed.
29 DEPS_DIR      The directory where the Ceph     $CEPH_DIR/build.deps
30               dependencies will be built.
31 NUM_WORKERS   The number of workers to use     The number of vcpus
32               when building Ceph.              available
33 NINJA_BUILD   Use Ninja instead of make.
34 CLEAN_BUILD   Clean the build directory.
35 SKIP_BUILD    Run cmake without actually
36               performing the build.
37 ============  ===============================  ===============================
38
39 Current status
40 --------------
41
42 The rados and rbd binaries and libs compile successfully and can be used on
43 Windows, successfully connecting to the cluster and consuming pools.
44
45 The libraries have to be built statically at the moment. The reason is that
46 there are a few circular library dependencies or unspecified dependencies,
47 which isn't supported when building DLLs. This mostly affects ``cls`` libraries.
48
49 A significant number of tests from the ``tests`` directory have been port,
50 providing adequate coverage.