################################################# # # (C) 2010-2011 Serghei Amelian # serghei (DOT) amelian (AT) gmail.com # # Improvements and feedback are welcome # # This file is released under GPL >= 2 # ################################################# ##### set project version ######################## include( TDEVersion ) cmake_minimum_required( VERSION ${TDE_CMAKE_MINIMUM_VERSION} ) tde_set_project_version( ) ##### general package setup ##################### project( tdepim ) set( PACKAGE tdepim ) ##### include essential cmake modules ########### include( FindPkgConfig ) include( CheckIncludeFile ) include( CheckTypeSize ) include( CheckCSourceCompiles ) include( CheckCXXSourceCompiles ) include( CheckLibraryExists ) include( CheckSymbolExists ) enable_testing( ) ##### include our cmake modules ################# include( TDEMacros ) ##### setup install paths ####################### include( TDESetupPaths ) tde_setup_paths( ) ##### add apidox targets ############ add_custom_target( apidox COMMAND ${CMAKE_COMMAND} -E env "TQTDOCDIR=/usr/share/tqt3/doc/html" "DOXDATA=${HTML_INSTALL_DIR}/en/common" ${CMAKE_SOURCE_DIR}/admin/doxygen.sh --no-modulename ${CMAKE_SOURCE_DIR} COMMAND find ${CMAKE_BINARY_DIR}/apidocs -name '*.html' | xargs -r sed -i 's|${CMAKE_BINARY_DIR}/apidocs|${HTML_INSTALL_DIR}/en/${PROJECT_NAME}-apidocs|g' COMMAND find ${CMAKE_BINARY_DIR}/apidocs -name '*.tag' | xargs -r sed -i 's|${CMAKE_SOURCE_DIR}/|${PROJECT_NAME}/|g' WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) add_custom_target( install-apidox COMMAND ${CMAKE_COMMAND} -E echo Apidox installed in ${HTML_INSTALL_DIR}/en/${PROJECT_NAME}-apidocs ) install( CODE " if( EXISTS ${CMAKE_BINARY_DIR}/apidocs ) file( INSTALL ${CMAKE_BINARY_DIR}/apidocs/ DESTINATION ${HTML_INSTALL_DIR}/en/${PROJECT_NAME}-apidocs PATTERN doxygen_sqlite3.db EXCLUDE PATTERN installdox-slow EXCLUDE ) endif()" ) ##### optional stuff ############################ option( WITH_ALL_OPTIONS "Enable all optional support" OFF ) option( WITH_ARTS "Enable aRts support" ${WITH_ALL_OPTIONS} ) option( WITH_SASL "Enable cyrus-sasl support" ${WITH_ALL_OPTIONS} ) option( WITH_NEWDISTRLISTS "Enable the new distribution lists" ON ) option( WITH_GNOKII "Enable gnokii support" ${WITH_ALL_OPTIONS} ) option( WITH_EXCHANGE "Enable Microsoft Exchange 2000 support" ${WITH_ALL_OPTIONS} ) option( WITH_EGROUPWARE "Enable egroupware support" ${WITH_ALL_OPTIONS} ) option( WITH_KOLAB "Enable kolab support" ${WITH_ALL_OPTIONS} ) option( WITH_SLOX "Enable slox support" ${WITH_ALL_OPTIONS} ) option( WITH_GROUPWISE "Enable groupwise support" ${WITH_ALL_OPTIONS} ) option( WITH_FEATUREPLAN "Enable featureplan support" ${WITH_ALL_OPTIONS} ) option( WITH_GROUPDAV "Enable groupdav support" ${WITH_ALL_OPTIONS} ) option( WITH_BIRTHDAYS "Enable birthdays support" ${WITH_ALL_OPTIONS} ) option( WITH_NEWEXCHANGE "Enable newexchange support" ${WITH_ALL_OPTIONS} ) option( WITH_SCALIX "Enable scalix support" ${WITH_ALL_OPTIONS} ) option( WITH_CALDAV "Enable caldav support" ${WITH_ALL_OPTIONS} ) option( WITH_CARDDAV "Enable carddav support" ${WITH_ALL_OPTIONS} ) option( WITH_INDEXLIB "Enable indexlib support (in kmail)" ${WITH_ALL_OPTIONS} ) option( WITH_XSCREENSAVER "Enable xscreensaver support (idle detection in karm)" ${WITH_ALL_OPTIONS} ) if( NOT WITH_ARTS ) set( WITHOUT_ARTS 1 ) endif( ) if( WITH_NEWDISTRLISTS ) set( TDEPIM_NEW_DISTRLISTS 1 ) endif( ) ##### options comments ########################## # WITH_ARTS affects kalarm # WITH_ARTS description without arts kalarm won't play sounds # with messages. # WITH_SASL affects tdeioslave(sieve imap4) # WITH_SASL description sieve tdeioslave won't build without sasl and # imap4 tdeioslave will lose the ability of SASL # authentification # WITH_SASL requires libgsasl # WITH_NEWDISTRLISTS affects kabc kadressbook # WITH_NEWDISTRLISTS description if set use new version of the KAB # Distribution Mail List Plugin otherwise use # the old one. # # WITH_GNOKII affects kphonebook kmobile # WITH_GNOKII description in kphonebook gnoki adds some # phone-synchronization features # WITH_EXCHANGE affects tderesources korganizer # WITH_EGROUPWARE affects tderesources wizards # WITH_KOLAB affects tderesources wizards # WITH_SLOX affects tderesources wizards # WITH_GROUPWISE affects tderesources wizards # WITH_FEATUREPLAN affects tderesources # WITH_GROUPDAV affects tderesources # WITH_BIRTHDAYS affects tderesources # WITH_NEWEXCHANGE affects tderesources wizards # WITH_SCALIX affects tderesources wizards # WITH_CALDAV affects tderesources # WITH_CARDDAV affects tderesources # WITH_INDEXLIB affects kmail # NOTE: WITH_GNOKII support in kmobile is outdated and permanently disabled # for now # NOTE: WITH_{EGROUPWARE,KOLAB,SLOX,GROUPWISE,FEATUREPLAN,GROUPDAV,BIRTHDAYS, # NEWEXCHANGE,SCALIX,CALDAV,CARDDAV} in tderesources selects which # its modules would be built. ##### user requested modules #################### option( BUILD_ALL "Build all" OFF ) option( BUILD_INDEXLIB "Build indexlib" ${BUILD_ALL} ) option( BUILD_LIBKMIME "Build libkmime" ${BUILD_ALL} ) option( BUILD_KTNEF "Build ktnef" ${BUILD_ALL} ) option( BUILD_LIBKCAL "Build libkcal" ${BUILD_ALL} ) option( BUILD_LIBTDEPIM "Build libtdepim" ${BUILD_ALL} ) option( BUILD_LIBKPIMIDENTITIES "Build libkpimidentities" ${BUILD_ALL} ) option( BUILD_LIBTDENETWORK "Build libtdenetwork" ${BUILD_ALL} ) option( BUILD_CERTMANAGER "Build certmanager" ${BUILD_ALL} ) option( BUILD_LIBKPGP "Build libkpgp" ${BUILD_ALL} ) option( BUILD_MIMELIB "Build mimelib" ${BUILD_ALL} ) option( BUILD_LIBKSIEVE "Build libksieve" ${BUILD_ALL} ) option( BUILD_LIBKPIMEXCHANGE "Build libkpimexchange" ${BUILD_ALL} ) option( BUILD_TDEIOSLAVE "Build tdeioslave" ${BUILD_ALL} ) option( BUILD_KMAIL "Build kmail" ${BUILD_ALL} ) option( BUILD_AKREGATOR "Build akregator" ${BUILD_ALL} ) option( BUILD_KALARM "Build kalarm" ${BUILD_ALL} ) option( BUILD_KADDRESSBOOK "Build kaddressbook" ${BUILD_ALL} ) option( BUILD_KORN "Build korn" ${BUILD_ALL} ) option( BUILD_KGANTT "Build kgantt" ${BUILD_ALL} ) option( BUILD_LIBKHOLIDAYS "Build libkholidays" ${BUILD_ALL} ) option( BUILD_KORGANIZER "Build korganizer" ${BUILD_ALL} ) option( BUILD_PLUGINS "Build plugins" ${BUILD_ALL} ) option( BUILD_KNOTES "Build knotes" ${BUILD_ALL} ) option( BUILD_KODE "Build kode" ${BUILD_ALL} ) option( BUILD_TDERESOURCES "Build tderesources" ${BUILD_ALL} ) option( BUILD_WIZARDS "Build wizards" ${BUILD_ALL} ) option( BUILD_TDEABC "Build tdeabc" ${BUILD_ALL} ) option( BUILD_KONSOLEKALENDAR "Build konsolekalendar" ${BUILD_ALL} ) option( BUILD_KMAILCVT "Build kmailcvt" ${BUILD_ALL} ) option( BUILD_KARM "Build karm" ${BUILD_ALL} ) option( BUILD_TDEFILE_PLUGINS "Build tdefile-plugins" ${BUILD_ALL} ) option( BUILD_KANDY "Build kandy" ${BUILD_ALL} ) option( BUILD_KNODE "Build knode" ${BUILD_ALL} ) option( BUILD_KMOBILE "Build kmobile" ${BUILD_ALL} ) option( BUILD_DOC "Build doc" ${BUILD_ALL} ) option( BUILD_KONTACT "Build kontact" ${BUILD_ALL} ) # deprecated option( BUILD_KITCHENSYNC "Build kitchensync" OFF ) ##### configure checks ########################## include( ConfigureChecks.cmake ) ###### global compiler settings ################# add_definitions( -DHAVE_CONFIG_H ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" ) set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" ) set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" ) ##### activate dependencies ##################### if( BUILD_LIBKCAL OR BUILD_LIBTDEPIM OR BUILD_LIBKPIMIDENTITIES OR BUILD_TDEIOSLAVE OR BUILD_KMAIL OR BUILD_KNODE ) add_subdirectory( libemailfunctions ) endif() if( BUILD_KADDRESSBOOK OR (BUILD_TDERESOURCES AND (WITH_EGROUPWARE OR WITH_BIRTHDAYS)) ) add_subdirectory( kaddressbook/common ) endif() ##### tdepim directories ######################## tde_conditional_add_subdirectory( BUILD_INDEXLIB indexlib ) tde_conditional_add_subdirectory( BUILD_LIBKMIME libkmime ) tde_conditional_add_subdirectory( BUILD_KTNEF ktnef ) tde_conditional_add_subdirectory( BUILD_LIBKCAL libkcal ) tde_conditional_add_subdirectory( BUILD_LIBTDEPIM pixmaps ) tde_conditional_add_subdirectory( BUILD_LIBTDEPIM libtdepim ) tde_conditional_add_subdirectory( BUILD_LIBKPIMIDENTITIES libkpimidentities ) tde_conditional_add_subdirectory( BUILD_LIBTDENETWORK libtdenetwork ) tde_conditional_add_subdirectory( BUILD_CERTMANAGER certmanager ) tde_conditional_add_subdirectory( BUILD_LIBKPGP libkpgp ) tde_conditional_add_subdirectory( BUILD_MIMELIB mimelib ) tde_conditional_add_subdirectory( BUILD_LIBKSIEVE libksieve ) tde_conditional_add_subdirectory( BUILD_LIBKPIMEXCHANGE libkpimexchange ) tde_conditional_add_subdirectory( BUILD_TDEIOSLAVE tdeioslave ) tde_conditional_add_subdirectory( BUILD_KMAIL kmail ) tde_conditional_add_subdirectory( BUILD_AKREGATOR akregator ) tde_conditional_add_subdirectory( BUILD_KALARM kalarm ) tde_conditional_add_subdirectory( BUILD_KADDRESSBOOK kaddressbook ) tde_conditional_add_subdirectory( BUILD_KORN korn ) tde_conditional_add_subdirectory( BUILD_KGANTT kgantt ) tde_conditional_add_subdirectory( BUILD_LIBKHOLIDAYS libkholidays ) tde_conditional_add_subdirectory( BUILD_KORGANIZER kdgantt ) tde_conditional_add_subdirectory( BUILD_KORGANIZER korganizer ) tde_conditional_add_subdirectory( BUILD_PLUGINS plugins ) tde_conditional_add_subdirectory( BUILD_KNOTES knotes ) tde_conditional_add_subdirectory( BUILD_KODE kode ) tde_conditional_add_subdirectory( BUILD_TDERESOURCES tderesources ) tde_conditional_add_subdirectory( BUILD_WIZARDS wizards ) tde_conditional_add_subdirectory( BUILD_TDEABC tdeabc ) tde_conditional_add_subdirectory( BUILD_KONSOLEKALENDAR konsolekalendar ) tde_conditional_add_subdirectory( BUILD_KMAILCVT kmailcvt ) tde_conditional_add_subdirectory( BUILD_KARM karm ) tde_conditional_add_subdirectory( BUILD_TDEFILE_PLUGINS tdefile-plugins ) tde_conditional_add_subdirectory( BUILD_KANDY kandy ) tde_conditional_add_subdirectory( BUILD_KNODE knode ) tde_conditional_add_subdirectory( BUILD_KMOBILE kmobile ) tde_conditional_add_subdirectory( BUILD_DOC doc ) tde_conditional_add_subdirectory( BUILD_KONTACT kontact ) # deprecated tde_conditional_add_subdirectory( BUILD_KITCHENSYNC kitchensync ) ##### write configure files ##################### configure_file( config.h.cmake config.h @ONLY )