From 333877023e2a53e8a015387ce7b9bfb3be36eaae Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 9 Aug 2016 15:17:18 +0800 Subject: [PATCH] doc,pybind: bypass sanity check if building doc the empty .so file does not compile at all, so we need to bypass the sanity check, if we are building docs. and what sphinx needs is just the docstrings. Fixes: http://tracker.ceph.com/issues/16940 Signed-off-by: Kefu Chai --- admin/build-doc | 10 +++++++--- cmake/modules/Distutils.cmake | 2 +- src/pybind/cephfs/setup.py | 6 +++++- src/pybind/rados/setup.py | 6 +++++- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/admin/build-doc b/admin/build-doc index 45b8974a91901..cedf05c1f4e66 100755 --- a/admin/build-doc +++ b/admin/build-doc @@ -67,13 +67,15 @@ install -d -m0755 \ # To avoid having to build librbd to build the Python bindings to build the docs, # create a dummy librbd.so that allows the module to be imported by sphinx. +# the module are imported by the "automodule::" directive. mkdir -p $vdir/lib export LD_LIBRARY_PATH="$vdir/lib" export PYTHONPATH=$TOPDIR/src/pybind ln -sf librados.so.2 $vdir/lib/librados.so gcc -shared -o $vdir/lib/librados.so.2 -xc /dev/null -CFLAGS="-iquote $TOPDIR/src/include" \ +BUILD_DOC=1 \ + CFLAGS="-iquote $TOPDIR/src/include" \ CPPFLAGS="-iquote $TOPDIR/src/include" \ LDFLAGS="-L$vdir/lib -Wl,--no-as-needed" \ $vdir/bin/pip install $TOPDIR/src/pybind/rados @@ -90,7 +92,8 @@ cp -f $TOPDIR/src/pybind/rados/rados.pxd $TOPDIR/src/pybind/cephfs/ ln -sf librbd.so.1 $vdir/lib/librbd.so gcc -shared -o $vdir/lib/librbd.so.1 -xc /dev/null -CFLAGS="-iquote $TOPDIR/src/include" \ +BUILD_DOC=1 \ + CFLAGS="-iquote $TOPDIR/src/include" \ CPPFLAGS="-iquote $TOPDIR/src/include" \ LDFLAGS="-L$vdir/lib -Wl,--no-as-needed" \ $vdir/bin/pip install $TOPDIR/src/pybind/rbd @@ -101,7 +104,8 @@ nm $vdir/lib/python*/*-packages/rbd.so | grep 'U rbd_' | \ ln -sf libcephfs.so.1 $vdir/lib/libcephfs.so gcc -shared -o $vdir/lib/libcephfs.so.1 -xc /dev/null -CFLAGS="-iquote $TOPDIR/src/include" \ +BUILD_DOC=1 \ + CFLAGS="-iquote $TOPDIR/src/include" \ CPPFLAGS="-iquote $TOPDIR/src/include" \ LDFLAGS="-L$vdir/lib -Wl,--no-as-needed" \ $vdir/bin/pip install $TOPDIR/src/pybind/cephfs diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake index f2e4b34a3fe63..60f011c46df64 100644 --- a/cmake/modules/Distutils.cmake +++ b/cmake/modules/Distutils.cmake @@ -45,7 +45,7 @@ function(distutils_add_cython_module name src) LDFLAGS=-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY} CYTHON_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR} CEPH_LIBDIR=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} - CFLAGS=\"-iquote ${CMAKE_SOURCE_DIR}/src/include\" + CFLAGS=\"-iquote${CMAKE_SOURCE_DIR}/src/include\" ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/setup.py build --build-base ${CYTHON_MODULE_DIR} --verbose WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${src}) diff --git a/src/pybind/cephfs/setup.py b/src/pybind/cephfs/setup.py index 4c952997883b7..37b0c18a5aa14 100755 --- a/src/pybind/cephfs/setup.py +++ b/src/pybind/cephfs/setup.py @@ -122,7 +122,11 @@ def check_sanity(): shutil.rmtree(tmp_dir) -if not check_sanity(): +if 'BUILD_DOC' in os.environ.keys(): + pass +elif check_sanity(): + pass +else: sys.exit(1) cmdclass = {} diff --git a/src/pybind/rados/setup.py b/src/pybind/rados/setup.py index 94e878387d6fe..c30318d15818f 100755 --- a/src/pybind/rados/setup.py +++ b/src/pybind/rados/setup.py @@ -131,7 +131,11 @@ def check_sanity(): shutil.rmtree(tmp_dir) -if not check_sanity(): +if 'BUILD_DOC' in os.environ.keys(): + pass +elif check_sanity(): + pass +else: sys.exit(1) cmdclass = {} -- 2.39.5