Replace deprecated luaL_openlib() by luaL_register()
[apps/madmutt.git] / CMakeLists.txt
index 6cd5e20..77d6686 100644 (file)
@@ -2,6 +2,7 @@ SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
 
 PROJECT(madmutt C D)
 SET(PACKAGE madmutt)
+SET(CMAKE_SKIP_RPATH ON)
 
 # Using Phobos OR Tango (can be specified from cmake command line)
 if (NOT CMAKE_D_USE_PHOBOS AND NOT CMAKE_D_USE_TANGO)
@@ -12,7 +13,6 @@ if (NOT CMAKE_D_USE_PHOBOS AND NOT CMAKE_D_USE_TANGO)
     set(CMAKE_D_USE_PHOBOS True)
 endif (NOT CMAKE_D_USE_PHOBOS AND NOT CMAKE_D_USE_TANGO)
 
-INCLUDE(CMakeDetermineCCompiler)
 include(Cpkg2c)
 include(XConfig)
 
@@ -26,7 +26,7 @@ SET(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/madmutt")
 SET(PKGDOCDIR  "${CMAKE_INSTALL_PREFIX}/share/doc/madmutt")
 SET(SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc")
 SET(VERSION    "devel")
-SET(MUTTLIBS)
+SET(MUTTLIBS   "-lpthread")
 
 ADD_DEFINITIONS("-DBINDIR=\\\"${BINDIR}\\\"")
 ADD_DEFINITIONS("-DPKGDATADIR=\\\"${PKGDATADIR}\\\"")
@@ -37,11 +37,7 @@ ADD_DEFINITIONS("-DMUTTLOCALEDIR=\\\"${DATADIR}/locale\\\"")
 
 SET(MAILPATH         CACHE STRING "Where new mail is spooled")
 OPTION(WITH_GPGME    "Use GPGME [default: on]" ON)
-OPTION(WITH_NNTP     "Build NNTP support [default: off]")
 OPTION(WITH_IDN      "Use GNU libidn for domain names [default: off]")
-
-OPTION(USE_FLOCK     "Use flock to lock files [default: off]")
-OPTION(USE_FCNTL     "Use fcntl to lock files [default: on]" ON)
 OPTION(USE_HCACHE    "Enable headers caching  [default: off]")
 
 FIND_FILE(SENDMAIL sendmail
@@ -76,8 +72,6 @@ CHECK_INCLUDE_FILE(langinfo.h             HAVE_LANGINFO_H)
 CHECK_INCLUDE_FILE(limits.h               HAVE_LIMITS_H)
 CHECK_INCLUDE_FILE(locale.h               HAVE_LOCALE_H)
 CHECK_INCLUDE_FILE(memory.h               HAVE_MEMORY_H)
-CHECK_INCLUDE_FILE(ncurses.h              HAVE_NCURSES_H)
-CHECK_INCLUDE_FILE(ncurses/ncurses.h      HAVE_NCURSES_NCURSES_H)
 CHECK_INCLUDE_FILE(ncursesw/ncurses.h     HAVE_NCURSESW_NCURSES_H)
 CHECK_INCLUDE_FILE(regex.h                HAVE_REGEX_H)
 CHECK_INCLUDE_FILE(stdarg.h               HAVE_STDARG_H)
@@ -124,22 +118,18 @@ CHECK_FUNCTION_EXISTS(nl_langinfo HAVE_LANGINFO_CODESET)
 INCLUDE(CheckLibraryExists)
 INCLUDE(FindPkgConfig)
 
-IF(HAVE_NCURSESW_NCURSES_H)
-    SET(CMAKE_REQUIRED_INCLUDES "ncursesw/ncurses.h")
-    LIST(APPEND MUTTLIBS -lncursesw)
-ELSEIF(HAVE_NCURSES_H)
-    SET(CMAKE_REQUIRED_INCLUDES "ncurses.h")
-    LIST(APPEND MUTTLIBS  -lncurses)
-ELSEIF(HAVE_NCURSES_H OR HAVE_NCURSES_NCURSES_H)
-    SET(CMAKE_REQUIRED_INCLUDES "ncurses/ncurses.h")
-    LIST(APPEND MUTTLIBS  -lncurses)
-ELSE(HAVE_NCURSESW_NCURSES_H)
-    MESSAGE(FATAL_ERROR "could not find ncurses.h")
-ENDIF(HAVE_NCURSESW_NCURSES_H)
-SET(CMAKE_REQUIRED_LIBRARIES ${MUTTLIBS})
-CHECK_FUNCTION_EXISTS(resizeterm         HAVE_RESIZETERM)
-SET(CMAKE_REQUIRED_LIBRARIES)
-SET(CMAKE_REQUIRED_INCLUDES)
+FIND_LIBRARY(LIBUTIL NAMES util)
+IF(NOT LIBUTIL)
+    MESSAGE(FATAL_ERROR "could not find libutil")
+ENDIF(NOT LIBUTIL)
+LIST(APPEND MUTTLIBS -lutil)
+
+FIND_LIBRARY(NCURSESW NAMES ncursesw)
+IF(NOT NCURSESW OR NOT HAVE_NCURSESW_NCURSES_H)
+    MESSAGE(FATAL_ERROR "could not libncursesw")
+ENDIF(NOT NCURSESW OR NOT HAVE_NCURSESW_NCURSES_H)
+SET(CMAKE_REQUIRED_INCLUDES "ncursesw/ncurses.h")
+LIST(APPEND MUTTLIBS -lncursesw)
 
 pkg_search_module(LUA REQUIRED lua5.1)
 ADD_DEFINITIONS(${LUA_CFLAGS})
@@ -178,19 +168,17 @@ ENDIF(NOT WITH_LOCKFILE)
 LIST(APPEND MUTTLIBS -llockfile)
 
 IF(USE_HCACHE)
-    OPTION(WITH_QDBM "Use qdbm for header caching [default: on]" ON)
+    OPTION(WITH_TC   "Use tokyocabinet for header caching [default: on]" ON)
     OPTION(WITH_GDBM "Use gdbm for header caching [default: off]")
     SET(USE_HCACHE)
 
-    IF(WITH_QDBM)
-        pkg_search_module(QDBM REQUIRED qdbm)
-        ADD_DEFINITIONS(${QDBM_CFLAGS})
-        SET(QDBM_LDFLAGS "${QDBM_LDFLAGS}")
-        # LIST(APPEND MUTTLIBS ${QDBM_LDFLAGS})
-        LIST(APPEND MUTTLIBS -lqdbm)
+    if(WITH_TC)
+        pkg_search_module(TC REQUIRED tokyocabinet)
+        ADD_DEFINITIONS(${TC_CFLAGS})
+        LIST(APPEND MUTTLIBS ${TC_LDFLAGS})
         SET(USE_HCACHE 1)
-        SET(HAVE_QDBM 1)
-    ENDIF(WITH_QDBM)
+        SET(HAVE_TOKYOCABINET 1)
+    ENDIF(WITH_TC)
 
     IF(NOT USE_HCACHE AND WITH_GDBM)
         CHECK_LIBRARY_EXISTS(gdbm gdbm_open "" GDBM)
@@ -207,11 +195,6 @@ IF(USE_HCACHE)
     ENDIF(NOT USE_HCACHE)
 ENDIF(USE_HCACHE)
 
-IF(WITH_NNTP AND NOT USE_NNTP)
-    SET(USE_NNTP 1)
-    MESSAGE(STATUS "building NNTP support")
-ENDIF(WITH_NNTP AND NOT USE_NNTP)
-
 # }}}
 # C flags {{{
 # big debug flags
@@ -287,6 +270,8 @@ SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -Wunused")
 SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -Wno-unused-parameter")
 # warn about variable use before initialization
 SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -Wuninitialized")
+# let's read GPGME's Reference Manual
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_FILE_OFFSET_BITS=64")
 # }}}
 
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
@@ -310,7 +295,6 @@ MADMUTT_SOURCES(madmuttsrc madmuttgen
 
     account.c
     attach.c
-    browser.c
     commands.c
     compose.c
     copy.c
@@ -327,7 +311,6 @@ MADMUTT_SOURCES(madmuttsrc madmuttgen
     mutt_sasl.c
     pager.c
     pattern.c
-    pop.c
     postpone.c
     recvattach.c
     recvcmd.c
@@ -339,16 +322,14 @@ MADMUTT_SOURCES(madmuttsrc madmuttgen
 
     main.c
 )
-IF(WITH_NNTP)
-    MADMUTT_SOURCES(madmuttsrc madmuttgen
-        nntp.c
-    )
-ENDIF(WITH_NNTP)
 
 STRING(REGEX REPLACE ";" " " MUTTLIBS "${MUTTLIBS}")
 ADD_EXECUTABLE(madmutt ${madmuttsrc})
-TARGET_LINK_LIBRARIES(madmutt mime sys mx lua imap ui lib)
-SET_TARGET_PROPERTIES(madmutt PROPERTIES LINK_FLAGS "${MUTTLIBS}")
+TARGET_LINK_LIBRARIES(madmutt mime sys mx lua ui imap lib)
+SET_TARGET_PROPERTIES(madmutt PROPERTIES
+    LINK_FLAGS "${MUTTLIBS}"
+    #    LINKER_LANGUAGE D
+)
 
 # generate_files hack {{{