Add cmake support

This commit is contained in:
Emmanuel Papin 2015-05-31 02:37:58 +02:00
parent 905237d7a6
commit 3f20a08d16
18 changed files with 117 additions and 40 deletions

View File

@ -56,7 +56,12 @@ mark_as_advanced(
ZM_PERL_MM_PARMS ZM_PERL_MM_PARMS
ZM_PERL_SEARCH_PATH ZM_PERL_SEARCH_PATH
ZM_TARGET_DISTRO ZM_TARGET_DISTRO
ZM_CONFIG_DIR) ZM_CONFIG_DIR
ZM_PLUGIN_SUPPORT
ZM_PLUGINSLIBDIR
ZM_PLUGINSPKGLIBDIR
ZM_PLUGINSCONFDIR
ZM_PLUGINSWEBDIR)
set(ZM_RUNDIR "/var/run/zm" CACHE PATH set(ZM_RUNDIR "/var/run/zm" CACHE PATH
"Location of transient process files, default: /var/run/zm") "Location of transient process files, default: /var/run/zm")
@ -119,6 +124,25 @@ set(ZM_PERL_SEARCH_PATH "" CACHE PATH
installed outside Perl's default search path.") installed outside Perl's default search path.")
set(ZM_TARGET_DISTRO "" CACHE STRING set(ZM_TARGET_DISTRO "" CACHE STRING
"Build ZoneMinder for a specific distribution. Currently, valid names are: f21, f20, el6, OS13") "Build ZoneMinder for a specific distribution. Currently, valid names are: f21, f20, el6, OS13")
set(ZM_PLUGIN_SUPPORT "OFF" CACHE BOOL
"Set to ON to enable plugins support. This is EXPERIMENTAL. default: OFF")
if(ZM_PLUGIN_SUPPORT)
set(ZM_PREFIX ${CMAKE_INSTALL_PREFIX})
set(ZM_PLUGINSLIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}" CACHE PATH
"Location of the plugin files, default: ${CMAKE_INSTALL_LIBDIR}")
set(ZM_PLUGINSPKGLIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/zoneminder/plugins" CACHE PATH
"Location of the plugin files, default: <prefix>/${CMAKE_INSTALL_LIBEXECDIR}/zoneminder/plugins")
set(ZM_PLUGINSCONFDIR "/${CMAKE_INSTALL_SYSCONFDIR}/plugins.d" CACHE PATH
"Location of the plugin files, default: /${CMAKE_INSTALL_SYSCONFDIR}/plugins.d")
set(ZM_PLUGINSWEBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/zoneminder/plugins" CACHE PATH
"Location of the plugin files, default: <prefix>/${CMAKE_INSTALL_DATADIR}/zoneminder/plugins")
set(ZM_PROJECTNAME ${CMAKE_PROJECT_NAME})
set(ZM_VERSION ${zoneminder_VERSION})
set(ZM_PLUGINSEXT ".so" CACHE STRING
"Plugin extension, default: .so")
add_definitions(-DDEFAULT_PLUGIN_EXT=\"${ZM_PLUGIN_EXT}\")
add_definitions(-DZM_PLUGINS_ON=1)
endif(ZM_PLUGIN_SUPPORT)
# Reassign some variables if a target distro has been specified # Reassign some variables if a target distro has been specified
if((ZM_TARGET_DISTRO STREQUAL "f21") OR (ZM_TARGET_DISTRO STREQUAL "f20")) if((ZM_TARGET_DISTRO STREQUAL "f21") OR (ZM_TARGET_DISTRO STREQUAL "f20"))
@ -207,6 +231,7 @@ find_package(ZLIB)
if(ZLIB_FOUND) if(ZLIB_FOUND)
set(HAVE_LIBZLIB 1) set(HAVE_LIBZLIB 1)
list(APPEND ZM_BIN_LIBS "${ZLIB_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${ZLIB_LIBRARIES}")
set(LIBS "${LIBS} -lz")
include_directories("${ZLIB_INCLUDE_DIR}") include_directories("${ZLIB_INCLUDE_DIR}")
set(CMAKE_REQUIRED_INCLUDES "${ZLIB_INCLUDE_DIR}") set(CMAKE_REQUIRED_INCLUDES "${ZLIB_INCLUDE_DIR}")
check_include_file("zlib.h" HAVE_ZLIB_H) check_include_file("zlib.h" HAVE_ZLIB_H)
@ -222,6 +247,7 @@ if(NOT ZM_NO_CURL)
if(CURL_FOUND) if(CURL_FOUND)
set(HAVE_LIBCURL 1) set(HAVE_LIBCURL 1)
list(APPEND ZM_BIN_LIBS ${CURL_LIBRARIES}) list(APPEND ZM_BIN_LIBS ${CURL_LIBRARIES})
set(LIBS "${LIBS} -lcurl")
include_directories(${CURL_INCLUDE_DIRS}) include_directories(${CURL_INCLUDE_DIRS})
set(CMAKE_REQUIRED_INCLUDES ${CURL_INCLUDE_DIRS}) set(CMAKE_REQUIRED_INCLUDES ${CURL_INCLUDE_DIRS})
check_include_file("curl/curl.h" HAVE_CURL_CURL_H) check_include_file("curl/curl.h" HAVE_CURL_CURL_H)
@ -236,6 +262,7 @@ find_package(JPEG)
if(JPEG_FOUND) if(JPEG_FOUND)
set(HAVE_LIBJPEG 1) set(HAVE_LIBJPEG 1)
list(APPEND ZM_BIN_LIBS "${JPEG_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${JPEG_LIBRARIES}")
set(LIBS "${LIBS} -ljpeg")
#link_directories(${JPEG_LIBRARY}) #link_directories(${JPEG_LIBRARY})
include_directories("${JPEG_INCLUDE_DIR}") include_directories("${JPEG_INCLUDE_DIR}")
set(CMAKE_REQUIRED_INCLUDES "${JPEG_INCLUDE_DIR}") set(CMAKE_REQUIRED_INCLUDES "${JPEG_INCLUDE_DIR}")
@ -255,6 +282,7 @@ if(OPENSSL_FOUND)
set(HAVE_LIBOPENSSL 1) set(HAVE_LIBOPENSSL 1)
set(HAVE_LIBCRYPTO 1) set(HAVE_LIBCRYPTO 1)
list(APPEND ZM_BIN_LIBS "${OPENSSL_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${OPENSSL_LIBRARIES}")
set(LIBS "${LIBS} -lssl -lcrypto")
include_directories("${OPENSSL_INCLUDE_DIR}") include_directories("${OPENSSL_INCLUDE_DIR}")
set(CMAKE_REQUIRED_INCLUDES "${OPENSSL_INCLUDE_DIR}") set(CMAKE_REQUIRED_INCLUDES "${OPENSSL_INCLUDE_DIR}")
check_include_file("openssl/md5.h" HAVE_OPENSSL_MD5_H) check_include_file("openssl/md5.h" HAVE_OPENSSL_MD5_H)
@ -268,6 +296,7 @@ find_library(PTHREAD_LIBRARIES pthread)
if(PTHREAD_LIBRARIES) if(PTHREAD_LIBRARIES)
set(HAVE_LIBPTHREAD 1) set(HAVE_LIBPTHREAD 1)
list(APPEND ZM_BIN_LIBS "${PTHREAD_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${PTHREAD_LIBRARIES}")
set(LIBS "${LIBS} -lpthread")
find_path(PTHREAD_INCLUDE_DIR pthread.h) find_path(PTHREAD_INCLUDE_DIR pthread.h)
if(PTHREAD_INCLUDE_DIR) if(PTHREAD_INCLUDE_DIR)
include_directories("${PTHREAD_INCLUDE_DIR}") include_directories("${PTHREAD_INCLUDE_DIR}")
@ -289,6 +318,7 @@ find_library(PCRE_LIBRARIES pcre)
if(PCRE_LIBRARIES) if(PCRE_LIBRARIES)
set(HAVE_LIBPCRE 1) set(HAVE_LIBPCRE 1)
list(APPEND ZM_BIN_LIBS "${PCRE_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${PCRE_LIBRARIES}")
set(LIBS "${LIBS} -lpcre")
find_path(PCRE_INCLUDE_DIR pcre.h) find_path(PCRE_INCLUDE_DIR pcre.h)
if(PCRE_INCLUDE_DIR) if(PCRE_INCLUDE_DIR)
include_directories("${PCRE_INCLUDE_DIR}") include_directories("${PCRE_INCLUDE_DIR}")
@ -306,6 +336,7 @@ find_library(GCRYPT_LIBRARIES gcrypt)
if(GCRYPT_LIBRARIES) if(GCRYPT_LIBRARIES)
set(HAVE_LIBGCRYPT 1) set(HAVE_LIBGCRYPT 1)
list(APPEND ZM_BIN_LIBS "${GCRYPT_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${GCRYPT_LIBRARIES}")
set(LIBS "${LIBS} -lgcrypt")
find_path(GCRYPT_INCLUDE_DIR gcrypt.h) find_path(GCRYPT_INCLUDE_DIR gcrypt.h)
if(GCRYPT_INCLUDE_DIR) if(GCRYPT_INCLUDE_DIR)
include_directories("${GCRYPT_INCLUDE_DIR}") include_directories("${GCRYPT_INCLUDE_DIR}")
@ -327,6 +358,7 @@ endif(NOT GNUTLS_LIBRARIES)
if(GNUTLS_LIBRARIES) if(GNUTLS_LIBRARIES)
set(HAVE_LIBGNUTLS 1) set(HAVE_LIBGNUTLS 1)
list(APPEND ZM_BIN_LIBS "${GNUTLS_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${GNUTLS_LIBRARIES}")
set(LIBS "${LIBS} -lgnutls-openssl")
find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h) find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h)
if(GNUTLS_INCLUDE_DIR) if(GNUTLS_INCLUDE_DIR)
include_directories("${GNUTLS_INCLUDE_DIR}") include_directories("${GNUTLS_INCLUDE_DIR}")
@ -345,6 +377,7 @@ find_library(MYSQLCLIENT_LIBRARIES mysqlclient PATH_SUFFIXES mysql)
if(MYSQLCLIENT_LIBRARIES) if(MYSQLCLIENT_LIBRARIES)
set(HAVE_LIBMYSQLCLIENT 1) set(HAVE_LIBMYSQLCLIENT 1)
list(APPEND ZM_BIN_LIBS "${MYSQLCLIENT_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${MYSQLCLIENT_LIBRARIES}")
set(LIBS "${LIBS} -lmysqlclient")
find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql.h) find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql.h)
if(MYSQLCLIENT_INCLUDE_DIR) if(MYSQLCLIENT_INCLUDE_DIR)
include_directories("${MYSQLCLIENT_INCLUDE_DIR}") include_directories("${MYSQLCLIENT_INCLUDE_DIR}")
@ -370,6 +403,7 @@ if(NOT ZM_NO_FFMPEG)
if(AVFORMAT_LIBRARIES) if(AVFORMAT_LIBRARIES)
set(HAVE_LIBAVFORMAT 1) set(HAVE_LIBAVFORMAT 1)
list(APPEND ZM_BIN_LIBS "${AVFORMAT_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${AVFORMAT_LIBRARIES}")
set(LIBS "${LIBS} -lavformat")
find_path(AVFORMAT_INCLUDE_DIR "libavformat/avformat.h") find_path(AVFORMAT_INCLUDE_DIR "libavformat/avformat.h")
if(AVFORMAT_INCLUDE_DIR) if(AVFORMAT_INCLUDE_DIR)
include_directories("${AVFORMAT_INCLUDE_DIR}") include_directories("${AVFORMAT_INCLUDE_DIR}")
@ -387,6 +421,7 @@ if(NOT ZM_NO_FFMPEG)
if(AVCODEC_LIBRARIES) if(AVCODEC_LIBRARIES)
set(HAVE_LIBAVCODEC 1) set(HAVE_LIBAVCODEC 1)
list(APPEND ZM_BIN_LIBS "${AVCODEC_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${AVCODEC_LIBRARIES}")
set(LIBS "${LIBS} -lavcodec")
find_path(AVCODEC_INCLUDE_DIR "libavcodec/avcodec.h") find_path(AVCODEC_INCLUDE_DIR "libavcodec/avcodec.h")
if(AVCODEC_INCLUDE_DIR) if(AVCODEC_INCLUDE_DIR)
include_directories("${AVCODEC_INCLUDE_DIR}") include_directories("${AVCODEC_INCLUDE_DIR}")
@ -404,6 +439,7 @@ if(NOT ZM_NO_FFMPEG)
if(AVDEVICE_LIBRARIES) if(AVDEVICE_LIBRARIES)
set(HAVE_LIBAVDEVICE 1) set(HAVE_LIBAVDEVICE 1)
list(APPEND ZM_BIN_LIBS "${AVDEVICE_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${AVDEVICE_LIBRARIES}")
set(LIBS "${LIBS} -lavdevice")
find_path(AVDEVICE_INCLUDE_DIR "libavdevice/avdevice.h") find_path(AVDEVICE_INCLUDE_DIR "libavdevice/avdevice.h")
if(AVDEVICE_INCLUDE_DIR) if(AVDEVICE_INCLUDE_DIR)
include_directories("${AVDEVICE_INCLUDE_DIR}") include_directories("${AVDEVICE_INCLUDE_DIR}")
@ -421,6 +457,7 @@ if(NOT ZM_NO_FFMPEG)
if(AVUTIL_LIBRARIES) if(AVUTIL_LIBRARIES)
set(HAVE_LIBAVUTIL 1) set(HAVE_LIBAVUTIL 1)
list(APPEND ZM_BIN_LIBS "${AVUTIL_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${AVUTIL_LIBRARIES}")
set(LIBS "${LIBS} -lavutil")
find_path(AVUTIL_INCLUDE_DIR "libavutil/avutil.h") find_path(AVUTIL_INCLUDE_DIR "libavutil/avutil.h")
if(AVUTIL_INCLUDE_DIR) if(AVUTIL_INCLUDE_DIR)
include_directories("${AVUTIL_INCLUDE_DIR}") include_directories("${AVUTIL_INCLUDE_DIR}")
@ -439,6 +476,7 @@ if(NOT ZM_NO_FFMPEG)
if(SWSCALE_LIBRARIES) if(SWSCALE_LIBRARIES)
set(HAVE_LIBSWSCALE 1) set(HAVE_LIBSWSCALE 1)
list(APPEND ZM_BIN_LIBS "${SWSCALE_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${SWSCALE_LIBRARIES}")
set(LIBS "${LIBS} -lswscale")
find_path(SWSCALE_INCLUDE_DIR "libswscale/swscale.h") find_path(SWSCALE_INCLUDE_DIR "libswscale/swscale.h")
if(SWSCALE_INCLUDE_DIR) if(SWSCALE_INCLUDE_DIR)
include_directories("${SWSCALE_INCLUDE_DIR}") include_directories("${SWSCALE_INCLUDE_DIR}")
@ -468,6 +506,7 @@ if(NOT ZM_NO_LIBVLC)
if(LIBVLC_LIBRARIES) if(LIBVLC_LIBRARIES)
set(HAVE_LIBVLC 1) set(HAVE_LIBVLC 1)
list(APPEND ZM_BIN_LIBS "${LIBVLC_LIBRARIES}") list(APPEND ZM_BIN_LIBS "${LIBVLC_LIBRARIES}")
set(LIBS "${LIBS} -lvlc")
find_path(LIBVLC_INCLUDE_DIR "vlc/vlc.h") find_path(LIBVLC_INCLUDE_DIR "vlc/vlc.h")
if(LIBVLC_INCLUDE_DIR) if(LIBVLC_INCLUDE_DIR)
include_directories("${LIBVLC_INCLUDE_DIR}") include_directories("${LIBVLC_INCLUDE_DIR}")

View File

@ -229,33 +229,41 @@ if test "$ENABLE_PLUGIN_SUPPORT" == "yes"; then
If you really want plugin support you must not call configure with If you really want plugin support you must not call configure with
--enable-shared=no or --disabled-shared]) --enable-shared=no or --disabled-shared])
fi fi
ZM_PREFIX="${prefix}"
AC_SUBST(ZM_PREFIX)
ZM_PLUGINSLIBDIR="${libdir}"
AC_SUBST(ZM_PLUGINSLIBDIR)
AC_ARG_WITH(pluginsdir, AC_ARG_WITH(pluginsdir,
[ --with-pluginsdir=<path> plugins directory (requires --enable-plugin-support=yes)], [ --with-pluginsdir=<path> plugins directory (requires --enable-plugin-support=yes)],
[PLUGINSLIBDIR=$with_pluginsdir], [ZM_PLUGINSPKGLIBDIR=$with_pluginsdir],
AC_MSG_ERROR([Plugin support is enabled. AC_MSG_ERROR([Plugin support is enabled.
You must call configure with the --with-pluginsdir options. You must call configure with the --with-pluginsdir options.
This tells configure where to install plugin library files. This tells configure where to install plugin library files.
e.g. --with-pluginsdir=/usr/lib/zoneminder/plugins]) e.g. --with-pluginsdir=/usr/lib/zoneminder/plugins])
) )
AC_SUBST(PLUGINSLIBDIR) AC_SUBST(ZM_PLUGINSPKGLIBDIR)
PLUGINSCONFDIR="${sysconfdir}/plugins.d" ZM_PLUGINSCONFDIR="${sysconfdir}/plugins.d"
AC_ARG_WITH(pluginsconfdir, AC_ARG_WITH(pluginsconfdir,
[ --with-pluginsconfdir=<path> directory of plugin configuration files (requires --enable-plugin-support=yes)], [ --with-pluginsconfdir=<path> directory of plugin configuration files (requires --enable-plugin-support=yes)],
[PLUGINSCONFDIR=$with_pluginsconfdir], [ZM_PLUGINSCONFDIR=$with_pluginsconfdir],
AC_MSG_WARN([You can call configure with the --with-pluginsconfdir options. AC_MSG_WARN([You can call configure with the --with-pluginsconfdir options.
This tells configure where to install the plugin configuration files. This tells configure where to install the plugin configuration files.
The default is "${PLUGINSCONFDIR}". The default is "${PLUGINSCONFDIR}".
e.g. --with-pluginsconfdir=/etc/zm/plugins.d]) e.g. --with-pluginsconfdir=/etc/zm/plugins.d])
) )
AC_SUBST(PLUGINSCONFDIR) AC_SUBST(ZM_PLUGINSCONFDIR)
PLUGINSWEBDIR="$WEB_PREFIX/plugins" ZM_PLUGINSWEBDIR="$WEB_PREFIX/plugins"
AC_SUBST(PLUGINSWEBDIR) AC_SUBST(ZM_PLUGINSWEBDIR)
ZM_PROJECTNAME="${PACKAGE}"
AC_SUBST(ZM_PROJECTNAME)
ZM_VERSION="${PACKAGE_VERSION}"
AC_SUBST(ZM_VERSION)
ZM_PLUGINSEXT=".so"
AC_SUBST(ZM_PLUGINSEXT)
AC_DEFINE_UNQUOTED(DEFAULT_PLUGIN_EXT,"${ZM_PLUGINSEXT}",[File extension to detect plugins])
AC_DEFINE(ZM_PLUGINS_ON,1,"Whether plugin support is switched on and compiled") AC_DEFINE(ZM_PLUGINS_ON,1,"Whether plugin support is switched on and compiled")
PLUGINSEXT=".so"
AC_SUBST(PLUGINSEXT)
AC_DEFINE_UNQUOTED(DEFAULT_PLUGIN_EXT,"${PLUGINSEXT}",[File extension to detect plugins])
fi fi
AM_CONDITIONAL([ZM_HAS_PLUGIN_SUPPORT], [test "x$ENABLE_PLUGIN_SUPPORT" = xyes]) AM_CONDITIONAL([ZM_PLUGIN_SUPPORT], [test "x$ENABLE_PLUGIN_SUPPORT" = xyes])
WEB_USER=apache WEB_USER=apache
AC_ARG_WITH(webuser, AC_ARG_WITH(webuser,

View File

@ -2,12 +2,12 @@ Source: zoneminder
Section: net Section: net
Priority: optional Priority: optional
Maintainer: Isaac Connor <iconnor@connortechnology.com> Maintainer: Isaac Connor <iconnor@connortechnology.com>
Build-Depends: debhelper (>= 9), cmake, libphp-serialization-perl, libgnutls-dev, libmysqlclient-dev | libmariadbclient-dev, libdbd-mysql-perl, libdate-manip-perl, libwww-perl, libjpeg8-dev, libpcre3-dev, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libv4l-dev (>= 0.8.3), libbz2-dev, libsys-mmap-perl, libav-tools, libnetpbm10-dev, libavdevice-dev, libdevice-serialport-perl, libarchive-zip-perl, libmime-lite-perl, libvlccore-dev, libvlc-dev, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libgcrypt11-dev, libpolkit-gobject-1-dev Build-Depends: debhelper (>= 9), cmake, libphp-serialization-perl, libgnutls-dev | libgnutls28-dev, libmysqlclient-dev | libmariadbclient-dev, libdbd-mysql-perl, libdate-manip-perl, libwww-perl, libjpeg8-dev | libjpeg9-dev | libjpeg62-turbo-dev, libpcre3-dev, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libv4l-dev (>= 0.8.3), libbz2-dev, libsys-mmap-perl, libav-tools, libnetpbm10-dev, libavdevice-dev, libdevice-serialport-perl, libarchive-zip-perl, libmime-lite-perl, libvlccore-dev, libvlc-dev, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libgcrypt11-dev | libgcrypt20-dev, libpolkit-gobject-1-dev
Standards-Version: 3.9.4 Standards-Version: 3.9.4
Package: zoneminder Package: zoneminder
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2 | httpd, libapache2-mod-php5 | libapache2-mod-fcgid | php5-fpm, php5-mysqlnd | php5-mysql, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl, mariadb-client | mysql-client, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, libav-tools, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, netpbm, libavdevice53, libjpeg8, zip, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl, libvlccore5 | libvlccore7, libvlc5, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libpolkit-gobject-1-0 Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2 | httpd, libapache2-mod-php5 | libapache2-mod-fcgid | php5-fpm, php5-mysqlnd | php5-mysql, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl, mariadb-client | mysql-client, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, libav-tools, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, netpbm, libavdevice53, libjpeg8 | libjpeg9 | libjpeg62-turbo, zip, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl, libvlccore5 | libvlccore7, libvlc5, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libpolkit-gobject-1-0
Recommends: mysql-server | mariadb-server Recommends: mysql-server | mariadb-server
Description: Video camera security and surveillance solution Description: Video camera security and surveillance solution
ZoneMinder is intended for use in single or multi-camera video security ZoneMinder is intended for use in single or multi-camera video security
@ -38,3 +38,11 @@ Description: debugging syumbols for zoneminder.
video security system and for commercial or professional video security video security system and for commercial or professional video security
and surveillance. It can also be integrated into a home automation system and surveillance. It can also be integrated into a home automation system
via X.10 or other protocols. via X.10 or other protocols.
Package: libzoneminder-dev
Section: libdevel
Architecture: any
Depends: ${misc:Depends}
Description: Development files for ZoneMinder plugins
This package add the necessary files to develop video analysis plugins for
the ZoneMinder camera security and surveillance solution.

View File

@ -0,0 +1,3 @@
usr/include/zoneminder/*
usr/lib/*/libzoneminder.a
usr/lib/*/pkgconfig/libzoneminder.pc

View File

@ -22,7 +22,9 @@ override_dh_auto_configure:
-DZM_CGIDIR=/usr/lib/cgi-bin \ -DZM_CGIDIR=/usr/lib/cgi-bin \
-DZM_WEB_USER=www-data \ -DZM_WEB_USER=www-data \
-DZM_WEB_GROUP=www-data \ -DZM_WEB_GROUP=www-data \
-DCMAKE_INSTALL_SYSCONFDIR=etc/zm -DCMAKE_INSTALL_SYSCONFDIR=etc/zm \
-DZM_PLUGIN_SUPPORT=ON \
-DZM_PLUGINSPKGLIBDIR=/usr/lib/zoneminder/plugins
override_dh_auto_install: override_dh_auto_install:
dh_auto_install --buildsystem=cmake dh_auto_install --buildsystem=cmake

View File

@ -16,3 +16,12 @@ configure_file(zoneminder-tmpfiles.conf.in "${CMAKE_CURRENT_BINARY_DIR}/zonemind
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.policy" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/actions") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.policy" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/actions")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.rules" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/rules.d") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.rules" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/rules.d")
if(ZM_PLUGIN_SUPPORT)
configure_file(plugins.conf.in "${CMAKE_CURRENT_BINARY_DIR}/plugins.conf" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/plugins.conf" DESTINATION "${ZM_CONFIG_DIR}")
include(FindPkgConfig QUIET)
if(PKG_CONFIG_FOUND)
configure_file(libzoneminder.pc.in "${CMAKE_CURRENT_BINARY_DIR}/libzoneminder.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libzoneminder.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
endif()
endif(ZM_PLUGIN_SUPPORT)

View File

@ -9,12 +9,12 @@ EXTRA_DIST = \
com.zoneminder.systemctl.policy.in \ com.zoneminder.systemctl.policy.in \
com.zoneminder.systemctl.rules.in com.zoneminder.systemctl.rules.in
if ZM_HAS_PLUGIN_SUPPORT if ZM_PLUGIN_SUPPORT
EXTRA_DIST += plugins.conf.in EXTRA_DIST += plugins.conf.in
# Install a pkg-config file for a proper handling of the libzm # Install a pkg-config file for a proper handling of the libzoneminder
# convenience library # convenience library
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = ${libdir}/pkgconfig
pkgconfig_DATA = libzoneminder.pc pkgconfig_DATA = libzoneminder.pc
sysconf_DATA = plugins.conf sysconf_DATA = plugins.conf

View File

@ -1,17 +1,17 @@
prefix=@prefix@ prefix = @ZM_PREFIX@
exec_prefix=${prefix} exec_prefix = ${prefix}
libdir=@libdir@ libdir = @ZM_PLUGINSLIBDIR@
pkglibdir = @PLUGINSLIBDIR@ pkglibdir = @ZM_PLUGINSPKGLIBDIR@
includedir=@includedir@ includedir = ${prefix}/include
sysconfdir = @PLUGINSCONFDIR@ sysconfdir = @ZM_PLUGINSCONFDIR@
webdir = @PLUGINSWEBDIR@ webdir = @ZM_PLUGINSWEBDIR@
Name: : ZoneMinder convenience library for plugin development. Name: @ZM_PROJECTNAME@
Description: ZoneMinder convenience library for plugin development. Description: ZoneMinder convenience library for plugin development.
Version: @PACKAGE_VERSION@ Version: @ZM_VERSION@
Requires: Requires:
Requires.private: Requires.private:
Conflicts: Conflicts:
Libs: -L${libdir} -lzoneminder @LIBS@ Libs: -L${libdir} -lzoneminder @LIBS@
Libs.private : Libs.private:
Cflags: -I${includedir}/@PACKAGE@ Cflags: -I${includedir}/zoneminder

View File

@ -3993,7 +3993,7 @@ body = "ZM alarm detected - %EL% secs, %EF%/%EFA% frames, t%EST%/m%ESM%/a%ESA% s
}, },
{ {
name => "ZM_PATH_PLUGINS", name => "ZM_PATH_PLUGINS",
default => "@PLUGINSLIBDIR@", default => "@ZM_PLUGINSPKGLIBDIR@",
description => "Path to the plugin folder", description => "Path to the plugin folder",
help => "3d-party plugins have to be placed here.", help => "3d-party plugins have to be placed here.",
type => $types{abs_path}, type => $types{abs_path},
@ -4001,7 +4001,7 @@ body = "ZM alarm detected - %EL% secs, %EF%/%EFA% frames, t%EST%/m%ESM%/a%ESA% s
}, },
{ {
name => "ZM_PLUGIN_EXTENSION", name => "ZM_PLUGIN_EXTENSION",
default => "@PLUGINSEXT@", default => "@ZM_PLUGINSEXT@",
description => "Default extension of plugins to found.", description => "Default extension of plugins to found.",
help => "Default extension of plugins to found.", help => "Default extension of plugins to found.",
type => $types{rel_path}, type => $types{rel_path},
@ -4017,7 +4017,7 @@ body = "ZM alarm detected - %EL% secs, %EF%/%EFA% frames, t%EST%/m%ESM%/a%ESA% s
}, },
{ {
name => "ZM_PLUGINS_CONFIG_DIR", name => "ZM_PLUGINS_CONFIG_DIR",
default => "@PLUGINSCONFDIR@", default => "@ZM_PLUGINSCONFDIR@",
description => "Path to the config folder for plugins.", description => "Path to the config folder for plugins.",
help => "Path to the config folder for plugins.", help => "Path to the config folder for plugins.",
type => $types{abs_path}, type => $types{abs_path},

View File

@ -6,8 +6,12 @@ configure_file(zm_config.h.in "${CMAKE_CURRENT_BINARY_DIR}/zm_config.h" @ONLY)
# Group together all the source files that are used by all the binaries (zmc, zma, zmu, zms etc) # Group together all the source files that are used by all the binaries (zmc, zma, zmu, zms etc)
set(ZM_BIN_SRC_FILES zm_box.cpp zm_buffer.cpp zm_camera.cpp zm_comms.cpp zm_config.cpp zm_coord.cpp zm_curl_camera.cpp zm.cpp zm_db.cpp zm_logger.cpp zm_event.cpp zm_exception.cpp zm_file_camera.cpp zm_ffmpeg_camera.cpp zm_image.cpp zm_jpeg.cpp zm_libvlc_camera.cpp zm_local_camera.cpp zm_monitor.cpp zm_ffmpeg.cpp zm_mpeg.cpp zm_poly.cpp zm_regexp.cpp zm_remote_camera.cpp zm_remote_camera_http.cpp zm_remote_camera_rtsp.cpp zm_rtp.cpp zm_rtp_ctrl.cpp zm_rtp_data.cpp zm_rtp_source.cpp zm_rtsp.cpp zm_rtsp_auth.cpp zm_sdp.cpp zm_signal.cpp zm_stream.cpp zm_thread.cpp zm_time.cpp zm_timer.cpp zm_user.cpp zm_utils.cpp zm_zone.cpp) set(ZM_BIN_SRC_FILES zm_box.cpp zm_buffer.cpp zm_camera.cpp zm_comms.cpp zm_config.cpp zm_coord.cpp zm_curl_camera.cpp zm.cpp zm_db.cpp zm_logger.cpp zm_event.cpp zm_exception.cpp zm_file_camera.cpp zm_ffmpeg_camera.cpp zm_image.cpp zm_jpeg.cpp zm_libvlc_camera.cpp zm_local_camera.cpp zm_monitor.cpp zm_ffmpeg.cpp zm_mpeg.cpp zm_poly.cpp zm_regexp.cpp zm_remote_camera.cpp zm_remote_camera_http.cpp zm_remote_camera_rtsp.cpp zm_rtp.cpp zm_rtp_ctrl.cpp zm_rtp_data.cpp zm_rtp_source.cpp zm_rtsp.cpp zm_rtsp_auth.cpp zm_sdp.cpp zm_signal.cpp zm_stream.cpp zm_thread.cpp zm_time.cpp zm_timer.cpp zm_user.cpp zm_utils.cpp zm_zone.cpp)
if(ZM_PLUGIN_SUPPORT)
set(ZM_BIN_SRC_FILES ${ZM_BIN_SRC_FILES} zm_detector.cpp zm_image_analyser.cpp zm_plugin.cpp zm_plugin_manager.cpp)
endif(ZM_PLUGIN_SUPPORT)
# A fix for cmake recompiling the source files for every target. # A fix for cmake recompiling the source files for every target.
add_library(zm STATIC ${ZM_BIN_SRC_FILES}) add_library(zoneminder STATIC ${ZM_BIN_SRC_FILES})
add_executable(zmc zmc.cpp) add_executable(zmc zmc.cpp)
add_executable(zma zma.cpp) add_executable(zma zma.cpp)
@ -16,14 +20,18 @@ add_executable(zmf zmf.cpp)
add_executable(zms zms.cpp) add_executable(zms zms.cpp)
add_executable(zmstreamer zmstreamer.cpp) add_executable(zmstreamer zmstreamer.cpp)
target_link_libraries(zmc zm ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS}) target_link_libraries(zmc -ldl zoneminder ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS})
target_link_libraries(zma zm ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS}) target_link_libraries(zma -ldl zoneminder ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS})
target_link_libraries(zmu zm ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS}) target_link_libraries(zmu -ldl zoneminder ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS})
target_link_libraries(zmf zm ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS}) target_link_libraries(zmf -ldl zoneminder ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS})
target_link_libraries(zms zm ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS}) target_link_libraries(zms -ldl zoneminder ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS})
target_link_libraries(zmstreamer zm ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS}) target_link_libraries(zmstreamer -ldl zoneminder ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS})
install(TARGETS zmc zma zmu zmf zmstreamer RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) install(TARGETS zmc zma zmu zmf zmstreamer RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(TARGETS zms RUNTIME DESTINATION "${ZM_CGIDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) install(TARGETS zms RUNTIME DESTINATION "${ZM_CGIDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(CODE "execute_process(COMMAND ln -sf zms nph-zms WORKING_DIRECTORY \"\$ENV{DESTDIR}${ZM_CGIDIR}\")") install(CODE "execute_process(COMMAND ln -sf zms nph-zms WORKING_DIRECTORY \"\$ENV{DESTDIR}${ZM_CGIDIR}\")")
if(ZM_PLUGIN_SUPPORT)
install(FILES jinclude.h zm_db.h zm_detector.h zm_logger.h zm_poly.h zm_mem_utils.h zm_box.h zm_ffmpeg.h zm_plugin_manager.h zm_plugin.h zm_config.h zm_config_defines.h zm_jpeg.h zm_mpeg.h zm_image_analyser.h zm_zone.h zm_rgb.h zm_utils.h zm.h zm_event.h zm_stream.h zm_coord.h zm_image.h DESTINATION include/zoneminder)
install(TARGETS zoneminder ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
endif(ZM_PLUGIN_SUPPORT)

View File

@ -144,7 +144,7 @@ noinst_HEADERS = \
zm_timer.h \ zm_timer.h \
zm_user.h zm_user.h
if ZM_HAS_PLUGIN_SUPPORT if ZM_PLUGIN_SUPPORT
# Add objects to zm binaries for plugins management # Add objects to zm binaries for plugins management
zm_SOURCES += \ zm_SOURCES += \
zm_detector.cpp \ zm_detector.cpp \