if(CCACHE_FOUND)
message(STATUS "Building with ccache: ${CCACHE_FOUND}, CCACHE_DIR=$ENV{CCACHE_DIR}")
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+ # ccache does not accelerate link (ld), but let it handle it. by passing it
+ # along with cc to python's distutils, we are able to workaround
+ # https://bugs.python.org/issue8027.
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
else(CCACHE_FOUND)
message(FATAL_ERROR "Can't find ccache. Is it installed?")
set(CYTHON_MODULE_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cython_modules)
+get_property(compiler_launcher GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
+get_property(link_launcher GLOBAL PROPERTY RULE_LAUNCH_LINK)
+set(PY_CC \"${compiler_launcher} ${CMAKE_C_COMPILER}\")
+set(PY_CXX \"${compiler_launcher} ${CMAKE_CXX_COMPILER}\")
+set(PY_LDSHARED \"${link_launcher} ${CMAKE_C_COMPILER} -shared\")
add_subdirectory(rados)
add_subdirectory(rbd)
add_custom_target(cython_cephfs
COMMAND
+ env
+ CC=${PY_CC}
+ CXX=${PY_CXX}
+ LDSHARED=${PY_LDSHARED}
LDFLAGS=-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
CYTHON_BUILD_DIR=${CMAKE_BINARY_DIR}/src/pybind/cephfs
CFLAGS=\"-I${CMAKE_SOURCE_DIR}/src -I${CMAKE_BINARY_DIR}/include -I${CMAKE_SOURCE_DIR}/src/include -std=c++11\"
add_custom_target(cython_rados
COMMAND
+ env
+ CC=${PY_CC}
+ CXX=${PY_CXX}
+ LDSHARED=${PY_LDSHARED}
LDFLAGS=-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
CYTHON_BUILD_DIR=${CMAKE_BINARY_DIR}/src/pybind/rados
CFLAGS=\"-I${CMAKE_SOURCE_DIR}/src/include -std=c++11\"
add_custom_target(cython_rbd
COMMAND
+ env
+ CC=${PY_CC}
+ CXX=${PY_CXX}
+ LDSHARED=${PY_LDSHARED}
LDFLAGS=-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
CYTHON_BUILD_DIR=${CMAKE_BINARY_DIR}/src/pybind/rbd
CFLAGS=\"-I${CMAKE_SOURCE_DIR}/src/include -std=c++11\"