]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
cmake,win32*.sh: Windows DLL support 38984/head
authorLucian Petrut <lpetrut@cloudbasesolutions.com>
Thu, 7 Jan 2021 13:14:00 +0000 (13:14 +0000)
committerLucian Petrut <lpetrut@cloudbasesolutions.com>
Tue, 26 Jan 2021 08:41:51 +0000 (08:41 +0000)
commit5c008725db7c5b7ae22ae64e3b3e6309c501c6db
treefac301290fe36dd969cda8a3bdb2f4e8e530ba91
parent1f9cabf8a806bc034c0e6c8b6681a0121d46a06b
cmake,win32*.sh: Windows DLL support

At the moment, the Windows binaries can only be linked statically.
This is less than ideal since:

* the resulting binaries can be quite large, especially when
including debug symbols
* librados and librbd cannot be used directly by 3rd party apps
* the build duration is increased

In order to do a dynamic build, we'll:

* add an option to win32_build.sh
* fix link order
* dynamically link boost
* disable the "-pie" flag when using Mingw, which generates incorrect
  executable entry points
* by default, cmake generates import libs for executables. The issue
  is that for rados.exe, it generates librados.dll.a, thus overriding
  the librados.dll import library, which breaks the build process.
  We'll configure cmake to skip generating import libs for executables.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
CMakeLists.txt
README.windows.rst
src/librados/CMakeLists.txt
src/librbd/CMakeLists.txt
src/tools/rbd/CMakeLists.txt
win32_build.sh
win32_deps_build.sh