]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: pass compile options by fio interface library 40336/head
authorKefu Chai <kchai@redhat.com>
Tue, 23 Mar 2021 07:16:04 +0000 (15:16 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 23 Mar 2021 08:25:47 +0000 (16:25 +0800)
for better readability and maintainability

Signed-off-by: Kefu Chai <kchai@redhat.com>
cmake/modules/BuildFIO.cmake
src/test/fio/CMakeLists.txt

index d3288cc330919a82f42802cb608a811925257d9c..6a86300fae14383aeee65162a6e3837bb714ef30 100644 (file)
@@ -9,14 +9,15 @@ function(build_fio)
   include(FindMake)
   find_make("MAKE_EXECUTABLE" "make_cmd")
 
+  set(source_dir ${CMAKE_BINARY_DIR}/src/fio)
+  file(MAKE_DIRECTORY ${source_dir})
   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_CONFIG advice.detachedHead=false
     GIT_SHALLOW 1
     GIT_TAG "fio-3.15"
-    SOURCE_DIR ${CMAKE_BINARY_DIR}/src/fio
+    SOURCE_DIR ${source_dir}
     BUILD_IN_SOURCE 1
     CONFIGURE_COMMAND <SOURCE_DIR>/configure
     BUILD_COMMAND ${make_cmd} fio EXTFLAGS=-Wno-format-truncation ${FIO_EXTLIBS}
@@ -25,5 +26,6 @@ function(build_fio)
   add_library(fio INTERFACE IMPORTED)
   add_dependencies(fio fio_ext)
   set_target_properties(fio PROPERTIES
-    INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/src/fio)
+    INTERFACE_INCLUDE_DIRECTORIES ${source_dir}
+    INTERFACE_COMPILE_OPTIONS "-include;${source_dir}/config-host.h;$<$<COMPILE_LANGUAGE:C>:-std=gnu99>$<$<COMPILE_LANGUAGE:CXX>:-std=gnu++17>")
 endfunction()
index 5f2a51491ea642a2f78a18b43a0c2c741c8cd293..60731a0c5ed1246bc66bb85aa8b75a58699dd487 100644 (file)
@@ -10,30 +10,6 @@ target_link_libraries(fio_ceph_messenger fio)
 add_library(fio_librgw SHARED fio_librgw.cc)
 target_link_libraries(fio_librgw rgw fio)
 
-# prevent fio from adding 'typedef int bool' and gettid()
-if(HAVE_GETTID)
-  set(FIO_CFLAGS "-DCONFIG_HAVE_BOOL -DCONFIG_HAVE_GETTID")
-else()
-  set(FIO_CFLAGS "-DCONFIG_HAVE_BOOL")
-endif()
-
-# fio headers use typeof(), which requires c++11 extensions
-set_target_properties(fio_ceph_objectstore PROPERTIES
-  CXX_EXTENSIONS ON
-  COMPILE_FLAGS "${FIO_CFLAGS}")
-set_target_properties(fio_ceph_messenger PROPERTIES
-  CXX_EXTENSIONS ON
-  COMPILE_FLAGS "${FIO_CFLAGS}")
-set_target_properties(fio_librgw PROPERTIES
-  CXX_EXTENSIONS ON
-  COMPILE_FLAGS "${FIO_CFLAGS}")
-
-if(WITH_FIO)
-  add_dependencies(fio_ceph_objectstore fio_ext)
-  add_dependencies(fio_ceph_messenger fio_ext)
-  add_dependencies(fio_librgw fio_ext)
-endif()
-
 target_link_libraries(fio_ceph_objectstore os global)
 install(TARGETS fio_ceph_objectstore DESTINATION lib)