cmake_minimum_required (VERSION 2.8)

set (PACKAGE_NAME      "AVReg")
set (PACKAGE           "avreg")
set (PACKAGE_MAJOR_VER  6 )
set (PACKAGE_VERSION   "6.3")
set (PACKAGE_BUGREPORT "support@avreg.net")

project ("${PACKAGE}-mon" C)
set (PROGRAM_PATH_VERSION "p7")

set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include (cmake/avreg-macros.cmake)

GET_CUR_DATE(CUR_DATE)
string (REGEX REPLACE "(....)-..-.." "\\1" CUR_YEAR "${CUR_DATE}")
set (PACKAGE_BUILD_DATE ${CUR_DATE})
set (PACKAGE_BUILD_YEAR ${CUR_YEAR})
# message(STATUS "Compilation date = ${PACKAGE_BUILD_DATE} ${PACKAGE_BUILD_YEAR}")

set (PACKAGE_COPYRIGHT  "Copyright (C) 2007-${PACKAGE_BUILD_YEAR} \"Network information systems\", LLC")
set (PACKAGE_LICENSE    "License: http://avreg.net/license.html")

# Debian dirs layout
set (BIN_DIR        "/usr/bin")
set (SBIN_DIR       "/usr/sbin")
set (LIBEXECDIR     "/usr/libexec")
set (DATAROOTDIR    "/usr/share")
set (DATADIR        "${DATAROOTDIR}")
set (SYSCONFDIR     "/etc")
set (LOCALSTATEDIR  "/var")
set (LIBDIR         "/usr/lib")
set (MANDIR         "${DATAROOTDIR}/man")

set (DOCDIR         "${DATAROOTDIR}/doc/${PROJECT_NAME}")
set (TTFFONTDIR     "${DATAROOTDIR}/fonts/truetype")
set (APPSDIR        "${DATAROOTDIR}/applications")

# FIXME use new-style "/usr/share/icons/hicolor/48x48/apps/"PROGRAM".png"
set (ICONSDIR       "${DATAROOTDIR}/pixmaps")
set (ICONS_NAME     "${PROJECT_NAME}.xpm")
set (ICONS_PATH     "${ICONSDIR}/${ICONS_NAME}")


set (PACKAGE_SYSCONFDIR    "${SYSCONFDIR}/${PACKAGE}")
set (PACKAGE_DATA_DIR      "${DATADIR}/${PROJECT_NAME}")
set (PACKAGE_PIDS_DIR      "${LOCALSTATEDIR}/run/${PACKAGE}")
set (PACKAGE_LOCKS_DIR     "${LOCALSTATEDIR}/lock/${PACKAGE}")
set (PACKAGE_LOG_DIR       "${LOCALSTATEDIR}/log/${PACKAGE}")
set (PACKAGE_LIB_DIR       "${LOCALSTATEDIR}/lib/${PACKAGE}")
set (PACKAGE_TMPDIR        "${LOCALSTATEDIR}/tmp")
set (PACKAGE_SPOOL_DIR     "${LOCALSTATEDIR}/spool/${PACKAGE}")

# capture driver ID char: G(streamer), F(fmpeg), N(native) (v4l-only)
set (CAPTURE_V4L_DRIVER "N")
set (CAPTURE_NETWORK_DRIVER "G")

option(ENABLE_LIBORC "enable liborc-0.4 optimization" OFF)

option(BUILD_DOCUMENTATION     "use Doxygen to create the HTML based API documentation" OFF)
include (cmake/avreg-def-options.cmake)

set (CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE; -D_XOPEN_SOURCE; -DHAVE_CONFIG_H )
add_definitions ( ${CMAKE_REQUIRED_DEFINITIONS} -D_USE_SDL  -DNOONE_OVERLAY -D_REMOTE_CTRL)

# Set a default build type for single-configuration
# CMake generators if no build type is set.
if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
   set (CMAKE_BUILD_TYPE RelWithDebInfo )
endif (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)

if (CMAKE_BUILD_TYPE STREQUAL "Debug" )
   set (DEBUG_BUILD ON CACHE BOOL "build debug release")
   add_definitions( -DDEBUG -D_GST_BUS_DEBUG )
   set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wdisabled-optimization")
else()
   add_definitions( -DNDEBUG )
endif( CMAKE_BUILD_TYPE STREQUAL "Debug")

set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -fgnu89-inline -fomit-frame-pointer -Wall -pedantic -Wundef -Wpointer-arith -Wbad-function-cast -Wno-cast-qual -Wcast-align -Wno-write-strings -Wno-conversion -Wsign-compare -Waggregate-return -Wno-strict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winvalid-pch -Wvariadic-macros -Wvolatile-register-var -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -fstack-protector -Wformat -Werror=format-security")
# TODO -Werror=incompatible-pointer-types, на gcc 4.7.2 не собирается с этим

#set (CMAKE_C_FLAGS         "-Wall ${CMAKE_C_FLAGS}")
set (CMAKE_C_FLAGS_DEBUG   "-g -ggdb -O0" )
#set (CMAKE_C_FLAGS_RELEASE        "-O2" )
#set (CMAKE_C_FLAGS_RELWITHDEBINFO "-g -O2")

add_subdirectory (conf)
add_subdirectory (src)
add_subdirectory (tools)
add_subdirectory (desktop)

if (BUILD_DOCUMENTATION)
   add_subdirectory ("doc")
   add_dependencies( "${PACKAGE}-mon" "doc")
endif( BUILD_DOCUMENTATION)
