X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=CMakeLists.txt;h=68bcb360ea8a3a82e6af346f96b2b01c8a318afa;hp=229f8320440731de277ab807a726caa90913a82a;hb=68fabfdd78a08d3896ef25fe99e76c32beb56761;hpb=0ec2f0f11f8b044e4f85dbc3e19cab67fd2400a8 diff --git a/CMakeLists.txt b/CMakeLists.txt index 229f832..68bcb36 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,14 +5,13 @@ SET(PACKAGE madmutt) # Using Phobos OR Tango (can be specified from cmake command line) if (NOT CMAKE_D_USE_PHOBOS AND NOT CMAKE_D_USE_TANGO) - # default to phobos - message(STATUS "This application can be built with either Phobos or Tango!") - message(STATUS "You did not specify a standard library -- defaulting to Phobos.") - message(STATUS "If you wish to use Tango add -DCMAKE_D_USE_TANGO=True to cmake command line.") - set(CMAKE_D_USE_PHOBOS True) + # default to phobos + message(STATUS "This application can be built with either Phobos or Tango!") + message(STATUS "You did not specify a standard library -- defaulting to Phobos.") + message(STATUS "If you wish to use Tango add -DCMAKE_D_USE_TANGO=True to cmake command line.") + 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 +25,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 "") ADD_DEFINITIONS("-DBINDIR=\\\"${BINDIR}\\\"") ADD_DEFINITIONS("-DPKGDATADIR=\\\"${PKGDATADIR}\\\"") @@ -37,11 +36,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 +71,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 +117,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 +167,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 +194,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 @@ -260,6 +242,36 @@ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes") # warn about functions without format attribute that should have one SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-format-attribute") # }}} +# D flags {{{ +# big debug flags +SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -ggdb3") +# Use pipes and not temp files. +SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -pipe") +# optimize even more +SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -O2") +# let the type char be unsigned by default +SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -funsigned-char") +SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -fstrict-aliasing") +# turn on all common warnings +SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -Wall") +# turn on extra warnings +SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -W") +# treat warnings as errors +#SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -Werror") +# warn about local variable shadowing another local variable +SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -Wshadow") +# warn about casting of pointers to increased alignment requirements +SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -Wcast-align") +# warn about comparisons between signed and unsigned values +SET(CMAKE_D_FLAGS "${CMAKE_D_FLAGS} -Wsign-compare") +# warn about unused declared stuff +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) @@ -282,7 +294,6 @@ MADMUTT_SOURCES(madmuttsrc madmuttgen account.c attach.c - browser.c commands.c compose.c copy.c @@ -311,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 {{{