You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
278 lines
11 KiB
278 lines
11 KiB
#################################################
|
|
#
|
|
# (C) 2010-2011 Serghei Amelian
|
|
# serghei (DOT) amelian (AT) gmail.com
|
|
#
|
|
# Improvements and feedback are welcome
|
|
#
|
|
# This file is released under GPL >= 2
|
|
#
|
|
#################################################
|
|
|
|
cmake_minimum_required( VERSION 3.5 )
|
|
|
|
|
|
##### 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 )
|
|
|
|
|
|
##### set version number ########################
|
|
|
|
tde_set_project_version( )
|
|
|
|
|
|
##### setup install paths #######################
|
|
|
|
include( TDESetupPaths )
|
|
tde_setup_paths( )
|
|
|
|
|
|
##### add apidox targets ############
|
|
|
|
if( "${CMAKE_VERSION}" VERSION_LESS "3.1" )
|
|
set( CMAKE_ENV "env" )
|
|
else()
|
|
set( CMAKE_ENV "${CMAKE_COMMAND};-E;env" )
|
|
endif()
|
|
|
|
add_custom_target( apidox
|
|
COMMAND ${CMAKE_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 )
|