From: Kefu Chai Date: Wed, 13 Jul 2016 09:13:12 +0000 (+0800) Subject: cmake: use CHECK_STRUCT_HAS_MEMBER for checking member variables in struct X-Git-Tag: ses5-milestone5~416^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1a8618426079f181bc3d48c90e1bd023c30b205d;p=ceph.git cmake: use CHECK_STRUCT_HAS_MEMBER for checking member variables in struct we were using CHECK_CXX_SOURCE_COMPILES() for this purpose, which was a little bit clumsy. Signed-off-by: Kefu Chai --- diff --git a/CMakeLists.txt b/CMakeLists.txt index f9598c40c858..4b3bacc44c5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -135,18 +135,12 @@ CHECK_CXX_SOURCE_COMPILES(" #include int main() { char x = *strerror_r(0, &x, sizeof(x)); return 0; } " STRERROR_R_CHAR_P) -CHECK_CXX_SOURCE_COMPILES(" - #include - #include - int main() { struct stat foo = {}; foo.st_mtim.tv_nsec = 0; - return 0; } - " HAVE_STAT_ST_MTIM_TV_NSEC) -CHECK_CXX_SOURCE_COMPILES(" - #include - #include - int main() { struct stat foo = {}; foo.st_mtimespec.tv_nsec = 0; - return 0; } - " HAVE_STAT_ST_MTIMESPEC_TV_NSEC) + +include(CheckStructHasMember) +CHECK_STRUCT_HAS_MEMBER("struct stat" st_mtim.tv_nsec sys/stat.h + HAVE_STAT_ST_MTIM_TV_NSEC LANGUAGE C) +CHECK_STRUCT_HAS_MEMBER("struct stat" st_mtimespec.tv_nsec sys/stat.h + HAVE_STAT_ST_MTIMESPEC_TV_NSEC LANGUAGE C) CHECK_CXX_SOURCE_COMPILES(" int main() { float f = 12.3; int n = static_cast(f); return 0; } " HAVE_STATIC_CAST)