ceph/cmake/modules/BuildFIO.cmake
Jianpeng Ma 56ce1b793c cmake: update fio version from 3.5 to 540e235dcd276e63c57.
Fio commit(d04f1d5b342e7733) make external ioengine work.
This need when build libfio_ceph_objectstore.so.

Meanwhile fix a comiler error:
/home/ceph/src/test/fio/fio_ceph_objectstore.cc: In constructor ‘{anonymous}::ceph_ioengine::ceph_ioengine()’:
/home/ceph/src/test/fio/fio_ceph_objectstore.cc:733:19: error: invalid conversion from ‘int (*)(thread_data*, io_u*)’ to ‘fio_q_status (*)(thread_data*, io_u*)’ [-fpermissive]
     queue       = fio_ceph_os_queue;
                   ^~~~~~~~~~~~~~~~~
src/test/fio/CMakeFiles/fio_ceph_objectstore.dir/build.make:62: recipe for target 'src/test/fio/CMakeFiles/fio_ceph_objectstore.dir/fio_ceph_objectstore.cc.o' failed

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
2018-05-16 17:56:20 +08:00

16 lines
676 B
CMake

function(build_fio)
# we use an external project and copy the sources to bin directory to ensure
# that object files are built outside of the source tree.
include(ExternalProject)
ExternalProject_Add(fio_ext
DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/src/
UPDATE_COMMAND "" # this disables rebuild on each run
GIT_REPOSITORY "https://github.com/axboe/fio.git"
GIT_TAG "540e235dcd276e63c57ca4bd35f70a0651e2d00e"
SOURCE_DIR ${CMAKE_BINARY_DIR}/src/fio
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND <SOURCE_DIR>/configure
BUILD_COMMAND $(MAKE) fio EXTFLAGS=-Wno-format-truncation
INSTALL_COMMAND cp <BINARY_DIR>/fio ${CMAKE_BINARY_DIR}/bin)
endfunction()