CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT(sarg C)
SET(sarg_VERSION 2)
-SET(sarg_REVISION 2)
-SET(sarg_BUILD "7rc1")
-SET(sarg_BUILDDATE "Dec-20-2009")
+SET(sarg_REVISION "3rc1")
+SET(sarg_BUILD "")
+SET(sarg_BUILDDATE "Mar-02-2010")
INCLUDE(AddFileDependencies)
INCLUDE(CheckIncludeFile)
FULL_DOCS "Select htmldir as the root of your WWW documents")
SET(PACKAGE_NAME "sarg")
-SET(PACKAGE_VERSION "${sarg_VERSION}.${sarg_REVISION}.${sarg_BUILD}")
+SET(PACKAGE_VERSION "${sarg_VERSION}.${sarg_REVISION}${sarg_BUILD}")
MACRO(SET_ABS_SOURCE VAR DOC)
IF(${VAR} AND NOT ${VAR}_SOURCE)
SET(LANGDIR "share/sarg/languages" CACHE PATH "The directory to copy the languages files relative to the install directory")
SET(FONTDIR "share/sarg/fonts" CACHE PATH "The directory to copy the fonts relative to the install directory")
SET(IMAGEDIR "share/sarg/images" CACHE PATH "The directory to copy the images files relative to the install directory")
+SET(SARGPHPDIR "share/sarg/sarg-php" CACHE PATH "The directory to copy sarg-php relative to the install directory")
# Sources to compile
INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}") #Make it find this config.h before the one in src/include
totger.c index.c getconf.c usage.c decomp.c ip2name.c
useragent.c exclude.c convlog.c totday.c repday.c datafile.c
indexonly.c splitlog.c lastlog.c topsites.c siteuser.c css.c
- smartfilter.c denied.c authfail.c language.c charset.c
+ smartfilter.c denied.c authfail.c charset.c
squidguard_log.c squidguard_report.c auth.c download.c grepday.c
- dansguardian_log.c dansguardian_report.c realtime.c)
+ dansguardian_log.c dansguardian_report.c realtime.c btree_cache.c
+ usertab.c userinfo.c)
FOREACH(f ${SRC})
ADD_FILE_DEPENDENCIES(${f} ${CMAKE_BINARY_DIR}/config.h ${CMAKE_SOURCE_DIR}/include/conf.h ${CMAKE_SOURCE_DIR}/include/info.h ${CMAKE_SOURCE_DIR}/include/defs.h)
SET_TARGET_PROPERTIES(sarg PROPERTIES VERSION "${sarg_VERSION}.${sarg_REVISION}.${sarg_BUILD}")
-SET_TARGET_PROPERTIES(sarg PROPERTIES COMPILE_FLAGS "$ENV{CFLAGS} -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter")
+SET_TARGET_PROPERTIES(sarg PROPERTIES COMPILE_FLAGS "$ENV{CFLAGS} -Wall -Wno-sign-compare")
SET_TARGET_PROPERTIES(sarg PROPERTIES LINK_FLAGS "$ENV{LDFLAGS}")
+CHECK_C_COMPILER_FLAG("-Wextra" HAVE_WEXTRA)
+IF(HAVE_WEXTRA)
+ # Not supported by gcc 3.3
+ GET_TARGET_PROPERTY(TMPCFLAGS sarg COMPILE_FLAGS)
+ SET_TARGET_PROPERTIES(sarg PROPERTIES COMPILE_FLAGS "${TMPCFLAGS} -Wextra -Wno-unused-parameter")
+ENDIF(HAVE_WEXTRA)
+
CHECK_C_COMPILER_FLAG("-Werror=implicit-function-declaration" HAVE_WERROR_IMPLICIT_FUNCTION)
IF(HAVE_WERROR_IMPLICIT_FUNCTION)
GET_TARGET_PROPERTY(TMPCFLAGS sarg COMPILE_FLAGS)
CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H)
CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H)
CHECK_INCLUDE_FILE(limits.h HAVE_LIMITS_H)
+CHECK_INCLUDE_FILE(math.h HAVE_MATH_H)
CHECK_INCLUDE_FILE(locale.h HAVE_LOCALE_H)
+CHECK_INCLUDE_FILE(execinfo.h HAVE_EXECINFO_H)
+CHECK_INCLUDE_FILE(libintl.h HAVE_LIBINTL_H)
CHECK_FUNCTION_EXISTS(bzero HAVE_BZERO)
+CHECK_FUNCTION_EXISTS(backtrace HAVE_BACKTRACE)
+CHECK_FUNCTION_EXISTS(symlink HAVE_SYMLINK)
+CHECK_FUNCTION_EXISTS(lstat HAVE_LSTAT)
# Find gd
CHECK_INCLUDE_FILE(gd.h HAVE_GD_H)
IF(ENABLE_ICONV)
CHECK_INCLUDE_FILE(iconv.h HAVE_ICONV_H)
IF(HAVE_ICONV_H)
+ FIND_PATH(ICONV_INCLUDE_PATH NAMES iconv.h)
+ FIND_LIBRARY(ICONV_LIBRARY NAMES iconv DOC "The ICONV library")
+ IF(ICONV_LIBRARY)
+ TARGET_LINK_LIBRARIES(sarg ${ICONV_LIBRARY})
+ ENDIF(ICONV_LIBRARY)
CHECK_FUNCTION_EXISTS(iconv_open HAVE_ICONV)
- IF(!HAVE_ICONV)
- FIND_PATH(ICONV_INCLUDE_PATH NAMES iconv.h)
- FIND_LIBRARY(ICONV_LIBRARY NAMES iconv DOC "The ICONV library")
- ENDIF(!HAVE_ICONV)
SET(ICONV_CONST_FILE ${CMAKE_BINARY_DIR}/consticonv.c)
FILE(WRITE ${ICONV_CONST_FILE} "
ENDIF(HAVE_ICONV_H)
ENDIF(ENABLE_ICONV)
+# Find ldap
+CHECK_INCLUDE_FILE(ldap.h HAVE_LDAP_H)
+IF(HAVE_LDAP_H)
+ FIND_LIBRARY(LDAP_LIBRARY NAMES ldap DOC "The ldap library")
+ IF(LDAP_LIBRARY)
+ TARGET_LINK_LIBRARIES(sarg ${LDAP_LIBRARY})
+ SET(HAVE_LDAP LDAP_LIBRARY CACHE PATH DOC "True if LDAP was found")
+ SET(HAVE_LDAP CACHE BOOL DOC "True if must use LDAP")
+ ENDIF(LDAP_LIBRARY)
+ENDIF(HAVE_LDAP_H)
+
# Support for large files
OPTION(ENABLE_LARGEFILE "Enable the usage of large files" ON)
IF(ENABLE_LARGEFILE)
ELSE(RLIM_T STREQUAL 4)
MESSAGE("Unknown rlim_t size")
ENDIF(RLIM_T STREQUAL 4)
-ELSE(HAVE_RLIM_T)
- MESSAGE("Cannot detect the size of your system's rlim_t type")
+#ELSE(HAVE_RLIM_T)
+# MESSAGE("Cannot detect the size of your system's rlim_t type")
ENDIF(HAVE_RLIM_T)
# Windows need lib wsock32
ENDIF(IBERTY_LIB)
ENDIF(NOT HAVE_MKSTEMP)
+# Gettext and friends
+IF(NOT HAVE_LC_MESSAGES)
+ SET(FILES)
+ IF(HAVE_LOCALE_H)
+ LIST(APPEND FILES "locale.h")
+ ENDIF(HAVE_LOCALE_H)
+ IF(HAVE_LIBINTL_H)
+ LIST(APPEND FILES "libintl.h")
+ ENDIF(HAVE_LIBINTL_H)
+ LIST(LENGTH FILES NFILES)
+ IF(NFILES GREATER 0)
+ CHECK_SYMBOL_EXISTS(LC_MESSAGES "${FILES}" HAVE_LC_MESSAGES)
+ ENDIF(NFILES GREATER 0)
+ENDIF(NOT HAVE_LC_MESSAGES)
+
# System particularities
IF(CMAKE_SYSTEM_NAME STREQUAL "solaris")
TARGET_LINK_LIBRARIES(sarg socket nsl)
IF(ENABLE_EXTRA_PROTECT)
GET_TARGET_PROPERTY(TMPCFLAGS sarg COMPILE_FLAGS)
SET_TARGET_PROPERTIES(sarg PROPERTIES COMPILE_FLAGS "${TMPCFLAGS} -fstack-protector -D_FORTIFY_SOURCE=2 -Werror")
- CHECK_C_COMPILER_FLAG("-Werror=format-security" HAVE_WERROR_FORMAT_SECURITY)
+ CHECK_C_COMPILER_FLAG("-Wformat -Werror=format-security" HAVE_WERROR_FORMAT_SECURITY)
IF(HAVE_WERROR_FORMAT_SECURITY)
GET_TARGET_PROPERTY(TMPCFLAGS sarg COMPILE_FLAGS)
- SET_TARGET_PROPERTIES(sarg PROPERTIES COMPILE_FLAGS "${TMPCFLAGS} -Werror=format-security")
+ SET_TARGET_PROPERTIES(sarg PROPERTIES COMPILE_FLAGS "${TMPCFLAGS} -Wformat -Werror=format-security")
ENDIF(HAVE_WERROR_FORMAT_SECURITY)
ENDIF(ENABLE_EXTRA_PROTECT)
INSTALL(DIRECTORY languages/ DESTINATION "${LANGDIR}" PATTERN ".svn" EXCLUDE)
INSTALL(DIRECTORY images/ DESTINATION "${IMAGEDIR}" PATTERN ".svn" EXCLUDE)
INSTALL(DIRECTORY fonts/ DESTINATION "${FONTDIR}" FILES_MATCHING PATTERN "*.ttf" PATTERN ".svn" EXCLUDE)
+INSTALL(DIRECTORY sarg-php/ DESTINATION "${SARGPHPDIR}" PATTERN ".svn" EXCLUDE)
# Package creation
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Squid Analysis Report Generator")