]> git.ipfire.org Git - thirdparty/sarg.git/blobdiff - CMakeLists.txt
Automated replacement of the translated strings by a gettext macro
[thirdparty/sarg.git] / CMakeLists.txt
index 7ab14557280f82a2e378ef6abacf26bd6a1cfed6..bcd378ead78da5f2a08d3d8c583c14a6273ded3b 100755 (executable)
@@ -1,9 +1,9 @@
 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)
@@ -17,7 +17,7 @@ DEFINE_PROPERTY(GLOBAL PROPERTY enable-htmldir BRIEF_DOCS "--enable-htmldir=html
                         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)
@@ -41,6 +41,7 @@ SET(MANDIR "share/man" CACHE PATH "The directory to copy the man page relative t
 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
@@ -49,9 +50,10 @@ SET(SRC util.c log.c report.c topuser.c email.c sort.c html.c
        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)
@@ -61,9 +63,16 @@ ADD_EXECUTABLE(sarg ${SRC})
 
 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)
@@ -99,9 +108,15 @@ CHECK_INCLUDE_FILE(sys/wait.h HAVE_SYS_WAIT_H)
 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)
@@ -125,11 +140,12 @@ OPTION(ENABLE_ICONV "Enable the usage of iconv" ON)
 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} "
@@ -153,6 +169,17 @@ size_t iconv();
    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)
@@ -216,8 +243,8 @@ IF(HAVE_RLIM_T)
    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
@@ -242,6 +269,21 @@ IF(NOT HAVE_MKSTEMP)
    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)
@@ -253,10 +295,10 @@ OPTION(ENABLE_EXTRA_PROTECT "Enable compile and runtime extra protections" OFF)
 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)
 
@@ -271,6 +313,7 @@ INSTALL(FILES sarg.1 DESTINATION "${MANDIR}")
 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")