From ea10f1e389f06d65adf4a605d02dc3b311e67a5f Mon Sep 17 00:00:00 2001 From: Andrew Barbarello Date: Tue, 19 May 2015 15:31:59 -0400 Subject: [PATCH 1/2] fix MIB_IPADDRROW.wType detection in MinGW w64 build Include winsock2.h in check_struct_member test program. --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eff9972c2..38ede4b62 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -82,7 +82,7 @@ IF(WIN32) ADD_DEFINITIONS(-DSIGAR_SHARED) SET(SIGAR_SRC os/win32/peb.c os/win32/win32_sigar.c) INCLUDE_DIRECTORIES(os/win32) - CHECK_STRUCT_MEMBER(MIB_IPADDRROW wType "windows.h;iphlpapi.h" wType_in_MIB_IPADDRROW) + CHECK_STRUCT_MEMBER(MIB_IPADDRROW wType "winsock2.h;windows.h;iphlpapi.h" wType_in_MIB_IPADDRROW) add_definitions(-DHAVE_MIB_IPADDRROW_WTYPE=${wType_in_MIB_IPADDRROW}) ENDIF(WIN32) From c02c55aa8a6c70c8494f4519a683e4d4c651fe20 Mon Sep 17 00:00:00 2001 From: Andrew Barbarello Date: Tue, 19 May 2015 15:38:28 -0400 Subject: [PATCH 2/2] CMakeLists.txt: use CMake's check_struct_has_member CheckStructHasMember module has been around since CMake 2.6 according to http://www.cmake.org/Wiki/CMake_Version_Compatibility_Matrix/StandardCMakeModulesA Current `cmake_minimum_required` is version 2.6 in top-level CMakeLists --- src/CMakeLists.txt | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 38ede4b62..6c7bfa0d3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,28 +4,7 @@ MESSAGE(STATUS "CMAKE_SYSTEM_NAME is ${CMAKE_SYSTEM_NAME}") INCLUDE_DIRECTORIES(../include/) -INCLUDE(CheckCSourceCompiles) - -MACRO (CHECK_STRUCT_MEMBER _STRUCT _MEMBER _HEADER _RESULT) - SET(_INCLUDE_FILES) - FOREACH (it ${_HEADER}) - SET(_INCLUDE_FILES "${_INCLUDE_FILES}#include <${it}>\n") - ENDFOREACH (it) - - SET(_CHECK_STRUCT_MEMBER_SOURCE_CODE " -${_INCLUDE_FILES} -int main() -{ - static ${_STRUCT} tmp; - if (sizeof(tmp.${_MEMBER})) - return 0; - return 0; -} -") - CHECK_C_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT}) - -ENDMACRO (CHECK_STRUCT_MEMBER) - +INCLUDE(CheckStructHasMember) ## linux IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") @@ -82,7 +61,7 @@ IF(WIN32) ADD_DEFINITIONS(-DSIGAR_SHARED) SET(SIGAR_SRC os/win32/peb.c os/win32/win32_sigar.c) INCLUDE_DIRECTORIES(os/win32) - CHECK_STRUCT_MEMBER(MIB_IPADDRROW wType "winsock2.h;windows.h;iphlpapi.h" wType_in_MIB_IPADDRROW) + CHECK_STRUCT_HAS_MEMBER(MIB_IPADDRROW wType "winsock2.h;windows.h;iphlpapi.h" wType_in_MIB_IPADDRROW) add_definitions(-DHAVE_MIB_IPADDRROW_WTYPE=${wType_in_MIB_IPADDRROW}) ENDIF(WIN32)