- libtool (only needed when building from git)
- pkg-config >= 0.22
- libglib >= 2.32.0
- - libzip >= 0.11
+ - libzip >= 0.10
- libserialport >= 0.1.1 (optional, used by some drivers)
- librevisa >= 0.0.20130412 (optional, used by some drivers)
- libusb-1.0 >= 1.0.16 (optional, used by some drivers)
##############################
# Add mandatory dependencies to module list.
-SR_APPEND([SR_PKGLIBS], ['libzip >= 0.11'])
+SR_APPEND([SR_PKGLIBS], ['libzip >= 0.10'])
AC_SUBST([SR_PKGLIBS])
# Retrieve the compile and link flags for all modules combined.
# Check for specific libusb features, now that we know the CFLAGS.
AC_LANG([C])
sr_save_cflags=$CFLAGS
+sr_save_libs=$LIBS
CFLAGS="$LIBSIGROK_CFLAGS $CFLAGS"
+LIBS="$LIBSIGROK_LIBS $LIBS"
AC_CHECK_TYPES([libusb_os_handle],
[sr_have_libusb_os_handle=yes], [sr_have_libusb_os_handle=no],
[[#include <libusb.h>]])
+AC_CHECK_FUNCS([zip_discard])
+LIBS=$sr_save_libs
CFLAGS=$sr_save_cflags
+
AM_COND_IF([NEED_USB], [AS_CASE([$sr_have_libusb_os_handle:$host_os], [no:mingw*],
[AC_MSG_ERROR([Windows builds require the event-abstraction branch of libusb])])])
Detected libraries (required):
- glib-2.0 >= 2.32.0.............. $sr_glib_version
- - libzip >= 0.11.................. $sr_libzip_version
+ - libzip >= 0.10.................. $sr_libzip_version
Detected libraries (optional):
$sr_pkglibs_summary
/*--- session_file.c --------------------------------------------------------*/
+#if !HAVE_ZIP_DISCARD
+/* Replace zip_discard() if not available. */
+#define zip_discard(zip) sr_zip_discard(zip)
+SR_PRIV void sr_zip_discard(struct zip *archive);
+#endif
+
SR_PRIV GKeyFile *sr_sessionfile_read_metadata(struct zip *archive,
const struct zip_stat *entry);
extern SR_PRIV struct sr_dev_driver session_driver;
static int session_driver_initialized = 0;
+#if !HAVE_ZIP_DISCARD
+/* Replacement for zip_discard() if it isn't available.
+ */
+SR_PRIV void sr_zip_discard(struct zip *archive)
+{
+ if (zip_unchange_all(archive) < 0 || zip_close(archive) < 0)
+ sr_err("Failed to discard ZIP archive: %s", zip_strerror(archive));
+}
+#endif
+
/** Read metadata entries from a session archive.
* @param[in] archive An open ZIP archive.
* @param[in] entry Stat buffer filled in for the metadata archive member.