summaryrefslogtreecommitdiff
path: root/archivers/libarchive/files/build/cmake/CheckStructMember.cmake
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2010-02-20 03:48:25 +0000
committerjoerg <joerg@pkgsrc.org>2010-02-20 03:48:25 +0000
commit813e1c65cfea70db0fa02bd006013a08731f470f (patch)
treef2e9909a57c8ba8f986b13e36ed04e225fc44b2a /archivers/libarchive/files/build/cmake/CheckStructMember.cmake
parenta3bb8bd3027e67eb07c16f479613f290fb214f4a (diff)
downloadpkgsrc-813e1c65cfea70db0fa02bd006013a08731f470f.tar.gz
Import libarchive 2.8.0:
- Infrastructure: - Allow command line tools as fallback for missing compression libraries. If compiled without gzip for example, gunzip will be used automatically. - Improved support for a number of platforms like high-resolution timestamps and Extended Attributes on various Unix systems - New convience interface for creating archives based on disk content, complement of the archive_write_disk interface. - Frontends: - bsdcpio ready for public consumption - hand-written date parser replaces the yacc code - Filter system: - Simplified read filter chains - Option support for filters - LZMA, XZ, uudecode handled - Format support: - Write support for mtree files based on file system or archive content - Basic read support for Joliet - Write support for zip files - Write support for shar archives, both text-only and binary-safe
Diffstat (limited to 'archivers/libarchive/files/build/cmake/CheckStructMember.cmake')
-rw-r--r--archivers/libarchive/files/build/cmake/CheckStructMember.cmake43
1 files changed, 43 insertions, 0 deletions
diff --git a/archivers/libarchive/files/build/cmake/CheckStructMember.cmake b/archivers/libarchive/files/build/cmake/CheckStructMember.cmake
new file mode 100644
index 00000000000..05ddb3a11f2
--- /dev/null
+++ b/archivers/libarchive/files/build/cmake/CheckStructMember.cmake
@@ -0,0 +1,43 @@
+# - Check if the given struct or class has the specified member variable
+# CHECK_STRUCT_MEMBER (STRUCT MEMBER HEADER VARIABLE)
+#
+# STRUCT - the name of the struct or class you are interested in
+# MEMBER - the member which existence you want to check
+# HEADER - the header(s) where the prototype should be declared
+# VARIABLE - variable to store the result
+#
+# The following variables may be set before calling this macro to
+# modify the way the check is run:
+#
+# CMAKE_REQUIRED_FLAGS = string of compile command line flags
+# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
+# CMAKE_REQUIRED_INCLUDES = list of include directories
+
+# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+
+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)
+