X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=CMakeLists.txt;h=1d393b2d2c36423e8160546d903201460a04d0c1;hp=25ded1b733e7ad174b2d07b60275237576f8fff3;hb=7dcd7ee09b8760133ac8ec00562e4d60b2f0aebd;hpb=d4b790a79307b4f53c49f4c25223977a8baa6aa1 diff --git a/CMakeLists.txt b/CMakeLists.txt index 25ded1b..1d393b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,10 @@ PROJECT(madmutt C) +SET(PACKAGE madmutt) SET(CMAKE_MODULE_PATH ${madmutt_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) # TODO {{{ # USE_SETGID # DOTLOCK_{GROUP,PERMISSION} -# HAVE_DIRENT_D_INO # }}} INCLUDE(CMakeDetermineCCompiler) @@ -13,9 +13,10 @@ include(XConfig) ADD_DEFINITIONS(-DHAVE_CONFIG_H) ADD_DEFINITIONS(-D_GNU_SOURCE) -INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${madmutt_SOURCE_DIR}) +INCLUDE_DIRECTORIES(${madmutt_BINARY_DIR} ${madmutt_SOURCE_DIR}) SET(BINDIR "${CMAKE_INSTALL_PREFIX}/bin") +SET(DATADIR "${CMAKE_INSTALL_PREFIX}/share") SET(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/madmutt") SET(PKGDOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/madmutt") SET(SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc") @@ -27,33 +28,35 @@ ADD_DEFINITIONS("-DPKGDATADIR=\\\"${PKGDATADIR}\\\"") ADD_DEFINITIONS("-DPKGDOCDIR=\\\"${PKGDOCDIR}\\\"") ADD_DEFINITIONS("-DSYSCONFDIR=\\\"${SYSCONFDIR}\\\"") ADD_DEFINITIONS("-DVERSION=\\\"${VERSION}\\\"") +ADD_DEFINITIONS("-DMUTTLOCALEDIR=\\\"${DATADIR}/locale\\\"") -OPTION(WITH_MAILPATH "Where new mail is spooled") +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(WITH_LIBESMTP "Use libESMTP [default: off]") -OPTION(WITH_SLANG "Use S-Lang instead of ncurses [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(GPERF gperf) -FIND_FILE(SENDMAIL sendmail PATHS /usr/sbin /sbin /usr/lib) -FIND_FILE(MIXMASTER mixmaster) - -IF(WITH_MAILPATH) - SET(MAILPATH ${WITH_MAILPATH}) -ELSEIF(EXISTS /var/mail) - SET(MAILPATH "/var/mail") -ELSEIF(EXISTS /var/spool/mail) - SET(MAILPATH "/var/spool/mail") -ELSEIF(EXISTS /usr/spool/mail) - SET(MAILPATH "/usr/spool/mail") -ELSEIF(EXISTS /usr/mail) - SET(MAILPATH "/usr/mail") -ENDIF(WITH_MAILPATH) +FIND_FILE(SENDMAIL sendmail + PATHS /usr/sbin /sbin /usr/lib + DOC "path to sendmail executable" +) + +IF(NOT MAILPATH) + IF(EXISTS /var/mail) + SET(MAILPATH "/var/mail") + ELSEIF(EXISTS /var/spool/mail) + SET(MAILPATH "/var/spool/mail") + ELSEIF(EXISTS /usr/spool/mail) + SET(MAILPATH "/usr/spool/mail") + ELSEIF(EXISTS /usr/mail) + SET(MAILPATH "/usr/mail") + ELSE(EXISTS /var/mail) + MESSAGE(FATAL_ERROR "Unable to determine MAILPATH") + ENDIF(EXISTS /var/mail) +ENDIF(NOT MAILPATH) # headers {{{ INCLUDE(CheckIncludeFile) @@ -94,28 +97,21 @@ IF(NOT HAVE_ICONV_H) MESSAGE(FATAL_ERROR "inconv.h not found") ENDIF(NOT HAVE_ICONV_H) +# }}} +# types {{{ + +INCLUDE(CheckStructMember) + +CHECK_STRUCT_MEMBER("struct dirent" "d_ino" "dirent.h" HAVE_DIRENT_D_INO) + # }}} # functions {{{ INCLUDE (CheckFunctionExists) CHECK_FUNCTION_EXISTS(strlimit HAVE_SETRLIMIT) CHECK_FUNCTION_EXISTS(getsid HAVE_GETSID) -CHECK_FUNCTION_EXISTS(isctype HAVE_ISCTYPE) +CHECK_FUNCTION_EXISTS(setegid HAVE_SETEGID) CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT) -CHECK_FUNCTION_EXISTS(regcomp HAVE_REGCOMP) -CHECK_FUNCTION_EXISTS(iswalnum HAVE_ISWALNUM) -CHECK_FUNCTION_EXISTS(iswalpha HAVE_ISWALPHA) -CHECK_FUNCTION_EXISTS(iswcntrl HAVE_ISWCNTRL) -CHECK_FUNCTION_EXISTS(iswdigit HAVE_ISWDIGIT) -CHECK_FUNCTION_EXISTS(iswgraph HAVE_ISWGRAPH) -CHECK_FUNCTION_EXISTS(iswlower HAVE_ISWLOWER) -CHECK_FUNCTION_EXISTS(iswprint HAVE_ISWPRINT) -CHECK_FUNCTION_EXISTS(iswpunct HAVE_ISWPUNCT) -CHECK_FUNCTION_EXISTS(iswspace HAVE_ISWSPACE) -CHECK_FUNCTION_EXISTS(iswupper HAVE_ISWUPPER) -CHECK_FUNCTION_EXISTS(iswxdigit HAVE_ISWXDIGIT) -CHECK_FUNCTION_EXISTS(towupper HAVE_TOWUPPER) -CHECK_FUNCTION_EXISTS(towlower HAVE_TOWLOWER) CHECK_FUNCTION_EXISTS(nl_langinfo HAVE_LANGINFO_CODESET) # }}} @@ -123,40 +119,22 @@ CHECK_FUNCTION_EXISTS(nl_langinfo HAVE_LANGINFO_CODESET) INCLUDE(CheckLibraryExists) INCLUDE(UsePkgConfig) -IF(WITH_SLANG) - IF(EXISTS ${CMAKE_INSTALL_PREFIX}/include/slang) - INCLUDE_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/include/slang) - ELSEIF(EXISTS /usr/include/slang) - INCLUDE_DIRECTORIES(/usr/include/slang) - ENDIF(EXISTS ${CMAKE_INSTALL_PREFIX}/include/slang) - CHECK_LIBRARY_EXISTS(slang SLtt_get_terminfo "" USE_SLANG_CURSES) - IF(NOT USE_SLANG_CURSES) - MESSAGE(FATAL_ERROR "s-lang not found") - ENDIF(NOT USE_SLANG_CURSES) -ELSE(WITH_SLANG) - IF(HAVE_NCURSESW_NCURSES_H) - SET(CMAKE_REQUIRED_INCLUDES "ncursesw/ncurses.h") - SET(MUTTLIBS "${MUTTLIBS} -lncursesw") - ELSEIF(HAVE_NCURSES_H) - SET(CMAKE_REQUIRED_INCLUDES "ncurses.h") - SET(MUTTLIBS "${MUTTLIBS} -lncurses") - ELSEIF(HAVE_NCURSES_H OR HAVE_NCURSES_NCURSES_H) - SET(CMAKE_REQUIRED_INCLUDES "ncurses/ncurses.h") - SET(MUTTLIBS "${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(start_color HAVE_START_COLOR) - CHECK_FUNCTION_EXISTS(typeahead HAVE_TYPEAHEAD) - CHECK_FUNCTION_EXISTS(bkgdset HAVE_BKGDSET) - CHECK_FUNCTION_EXISTS(curs_set HAVE_CURS_SET) - CHECK_FUNCTION_EXISTS(meta HAVE_META) - CHECK_FUNCTION_EXISTS(use_default_colors HAVE_USE_DEFAULT_COLORS) - CHECK_FUNCTION_EXISTS(resizeterm HAVE_RESIZETERM) - SET(CMAKE_REQUIRED_LIBRARIES) - SET(CMAKE_REQUIRED_INCLUDES) -ENDIF(WITH_SLANG) +IF(HAVE_NCURSESW_NCURSES_H) + SET(CMAKE_REQUIRED_INCLUDES "ncursesw/ncurses.h") + SET(MUTTLIBS "${MUTTLIBS} -lncursesw") +ELSEIF(HAVE_NCURSES_H) + SET(CMAKE_REQUIRED_INCLUDES "ncurses.h") + SET(MUTTLIBS "${MUTTLIBS} -lncurses") +ELSEIF(HAVE_NCURSES_H OR HAVE_NCURSES_NCURSES_H) + SET(CMAKE_REQUIRED_INCLUDES "ncurses/ncurses.h") + SET(MUTTLIBS "${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) PKGCONFIG(lua5.1 lua_INCDIR lua_LINKDIR lua_LDFLAGS lua_CFLAGS) MESSAGE(STATUS "found lua5.1 at: INCDIR ${lua_INCDIR}") @@ -169,11 +147,13 @@ IF(WITH_GPGME) INCLUDE_DIRECTORIES(${gpgme_INCDIR}) ADD_DEFINITIONS(${gpgme_CFLAGS}) SET(MUTTLIBS "${MUTTLIBS} ${gpgme_LDFLAGS}") + SET(HAVE_GPGME 1) ENDIF(WITH_GPGME) XCONFIG(libgnutls-config gnutls_INCDIR gnutls_LINKDIR gnutls_LDFLAGS gnutls_CFLAGS) INCLUDE_DIRECTORIES(${gnutls_INCDIR}) ADD_DEFINITIONS(${gnutls_CFLAGS}) +CHECK_INCLUDE_FILE(gnutls/openssl.h HAVE_GNUTLS_OPENSSL_H) SET(MUTTLIBS "${MUTTLIBS} ${gnutls_LDFLAGS}") CHECK_LIBRARY_EXISTS(sasl2 sasl_client_init "" WITH_SASL) @@ -222,15 +202,10 @@ IF(USE_HCACHE) ENDIF(NOT USE_HCACHE) ENDIF(USE_HCACHE) -IF(WITH_LIBESMTP) - SET(USE_LIBESMTP 1) - SET(MUTTLIBS "${MUTTLIBS} -lesmtp") -ENDIF(WITH_LIBESMTP) - -IF(WITH_NNTP) +IF(WITH_NNTP AND NOT USE_NNTP) SET(USE_NNTP 1) MESSAGE(STATUS "building NNTP support") -ENDIF(WITH_NNTP) +ENDIF(WITH_NNTP AND NOT USE_NNTP) # }}} # C flags {{{ @@ -289,21 +264,19 @@ ADD_SUBDIRECTORY(lib-mime) ADD_SUBDIRECTORY(lib-sys) ADD_SUBDIRECTORY(lib-ui) ADD_SUBDIRECTORY(imap) -IF(WITH_NNTP) - ADD_SUBDIRECTORY(nntp) -ENDIF(WITH_NNTP) ADD_SUBDIRECTORY(lib-mx) ADD_SUBDIRECTORY(lib-lua) +ADD_SUBDIRECTORY(po) MADMUTT_SOURCES(madmuttsrc madmuttgen alias.cpkg buffy.cpkg charset.cpkg crypt.cpkg + score.cpkg account.c attach.c - base64.c browser.c commands.c compose.c @@ -326,24 +299,22 @@ MADMUTT_SOURCES(madmuttsrc madmuttgen postpone.c recvattach.c recvcmd.c - remailer.c - score.c send.c sendlib.c - send_smtp.c sort.c state.c thread.c main.c ) - -ADD_EXECUTABLE(madmutt ${madmuttsrc}) IF(WITH_NNTP) - TARGET_LINK_LIBRARIES(madmutt mime sys mx lua imap nntp ui lib) -ELSE(WITH_NNTP) - TARGET_LINK_LIBRARIES(madmutt mime sys mx lua imap ui lib) + MADMUTT_SOURCES(madmuttsrc madmuttgen + nntp.c + ) ENDIF(WITH_NNTP) + +ADD_EXECUTABLE(madmutt ${madmuttsrc}) +TARGET_LINK_LIBRARIES(madmutt mime sys mx lua imap ui lib) SET_TARGET_PROPERTIES(madmutt PROPERTIES LINK_FLAGS ${MUTTLIBS}) ADD_EXECUTABLE(madmutt_dotlock dotlock.c) @@ -353,8 +324,8 @@ TARGET_LINK_LIBRARIES(madmutt_dotlock lib) ADD_CUSTOM_COMMAND( OUTPUT ${madmutt_SOURCE_DIR}/keymap_defs.h - DEPENDS ${madmutt_SOURCE_DIR}/OPS - COMMAND ${madmutt_SOURCE_DIR}/gen_defs ${madmutt_SOURCE_DIR}/OPS > ${madmutt_SOURCE_DIR}/keymap_defs.h + DEPENDS ${madmutt_SOURCE_DIR}/OPS ${madmutt_SOURCE_DIR}/tools/gen_defs + COMMAND ${madmutt_SOURCE_DIR}/tools/gen_defs ${madmutt_SOURCE_DIR}/OPS > ${madmutt_SOURCE_DIR}/keymap_defs.h COMMENT "Generating ${madmutt_SOURCE_DIR}/keymap_defs.h from ${madmutt_SOURCE_DIR}/OPS" ) ADD_CUSTOM_COMMAND( @@ -363,37 +334,12 @@ ADD_CUSTOM_COMMAND( COMMAND sh ${madmutt_SOURCE_DIR}/charset.def > ${madmutt_SOURCE_DIR}/charset.gperf COMMENT "Generating ${madmutt_SOURCE_DIR}/charset.gperf from ${madmutt_SOURCE_DIR}/charset.def" ) -SET(__mt ${CMAKE_CURRENT_SOURCE_DIR}/lib-mime/mime-token) -ADD_CUSTOM_COMMAND( - OUTPUT ${__mt}.h - MAIN_DEPENDENCY ${__mt}.sh ${__mt}.def - COMMAND sh ${__mt}.sh ${__mt}.h < ${__mt}.def - COMMENT "Generating ${__mt}.h from ${__mt}.def" -) -SET(__lt ${CMAKE_CURRENT_SOURCE_DIR}/lib-lua/lua-token) -ADD_CUSTOM_COMMAND( - OUTPUT ${__lt}.h - MAIN_DEPENDENCY ${__lt}.gperf - COMMAND sh ${__lt}.gperf ${__lt}.h || \(${RM} ${__lt}.h; exit 1\) - COMMENT "Generating ${__lt}.h from ${__lt}.gperf" -) -SET(__lm ${CMAKE_CURRENT_SOURCE_DIR}/lib-lua/madmutt) -ADD_CUSTOM_COMMAND( - OUTPUT ${__lm}.li - MAIN_DEPENDENCY ${__lm}.cpkg - COMMAND ${madmutt_SOURCE_DIR}/tools/cpkg2c -h ${__lm}.cpkg > ${__lm}.li || \(${RM} ${__lm}.li; exit 1\) - COMMENT "Generating ${__lm}.li from ${__lm}.cpkg" -) -ADD_CUSTOM_TARGET( - generate_files - DEPENDS - ${madmuttgen} - ${madmutt_SOURCE_DIR}/keymap_defs.h - ${madmutt_SOURCE_DIR}/charset.gperf - ${madmutt_SOURCE_DIR}/lib-mime/mime-token.h - ${madmutt_SOURCE_DIR}/lib-lua/lua-token.h - ${madmutt_SOURCE_DIR}/lib-lua/madmutt.li +ADD_CUSTOM_TARGET(generate_file + DEPENDS ${madmuttgen} + ${madmutt_SOURCE_DIR}/keymap_defs.h + ${madmutt_SOURCE_DIR}/charset.gperf ) -ADD_DEPENDENCIES(madmutt generate_files) +ADD_DEPENDENCIES(generate_file generate_files) +ADD_DEPENDENCIES(madmutt generate_file) # }}}