Blame CMakeLists.txt

Packit Service de44cd
# Evolution build script
Packit Service de44cd
Packit Service de44cd
cmake_minimum_required(VERSION 3.1)
Packit Service de44cd
cmake_policy(VERSION 3.1)
Packit Service de44cd
Packit Service de44cd
project(evolution
Packit Service de44cd
	VERSION 3.28.5
Packit Service de44cd
	LANGUAGES C)
Packit Service de44cd
set(PROJECT_BUGREPORT "https://gitlab.gnome.org/GNOME/evolution/issues/")
Packit Service de44cd
set(PROJECT_URL "http://wiki.gnome.org/Apps/Evolution/")
Packit Service de44cd
Packit Service de44cd
# Base Version: This is for API/version tracking for things like
Packit Service de44cd
# D-Bus server files. This should always be the major/minor of
Packit Service de44cd
# the stable version or stable version to be.
Packit Service de44cd
set(BASE_VERSION 3.28)
Packit Service de44cd
Packit Service de44cd
# Used for pkg-config files
Packit Service de44cd
set(INTERFACE_VERSION 3.0)
Packit Service de44cd
Packit Service de44cd
math(EXPR _is_devel_version "${PROJECT_VERSION_MINOR}%2")
Packit Service de44cd
if(_is_devel_version EQUAL 1)
Packit Service de44cd
	math(EXPR _minor "${PROJECT_VERSION_MINOR}-1")
Packit Service de44cd
	if(_minor EQUAL -1)
Packit Service de44cd
		set(_minor 98)
Packit Service de44cd
		math(EXPR _major "${PROJECT_VERSION_MAJOR}-1")
Packit Service de44cd
	else(_minor EQUAL -1)
Packit Service de44cd
		set(_major ${PROJECT_VERSION_MAJOR})
Packit Service de44cd
	endif(_minor EQUAL -1)
Packit Service de44cd
Packit Service de44cd
	set(STABLE_VERSION "${_major}.${_minor}")
Packit Service de44cd
else(_is_devel_version EQUAL 1)
Packit Service de44cd
	unset(STABLE_VERSION)
Packit Service de44cd
endif(_is_devel_version EQUAL 1)
Packit Service de44cd
Packit Service de44cd
# Required for FindIntltool module
Packit Service de44cd
set(GETTEXT_PACKAGE ${PROJECT_NAME})
Packit Service de44cd
set(GETTEXT_PO_DIR ${CMAKE_SOURCE_DIR}/po)
Packit Service de44cd
Packit Service de44cd
# Required for 'disttest' and 'ditcheck' of DistTarget module
Packit Service de44cd
set(PROJECT_DISTCONFIGURE_PARAMS
Packit Service de44cd
	-DENABLE_GTK_DOC=ON
Packit Service de44cd
	-DENABLE_CONTACT_MAPS=ON
Packit Service de44cd
	-DENABLE_INSTALLED_TESTS=ON
Packit Service de44cd
	-DWITH_HELP=ON
Packit Service de44cd
	-DWITH_GLADE_CATALOG=ON
Packit Service de44cd
)
Packit Service de44cd
Packit Service de44cd
# Keep these two definitions in agreement.
Packit Service de44cd
set(glib_minimum_version 2.46)
Packit Service de44cd
set(glib_encoded_version GLIB_VERSION_2_46)
Packit Service de44cd
Packit Service de44cd
# Keep these two definitions in agreement.
Packit Service de44cd
set(gdk_minimum_version 3.22)
Packit Service de44cd
set(gdk_encoded_version GDK_VERSION_3_22)
Packit Service de44cd
Packit Service de44cd
# Keep these two definitions in agreement.
Packit Service de44cd
set(soup_minimum_version 2.42)
Packit Service de44cd
set(soup_encoded_version SOUP_VERSION_2_42)
Packit Service de44cd
Packit Service de44cd
# Warn about API usage that violates our minimum requirements.
Packit Service de44cd
add_definitions(-DGLIB_VERSION_MAX_ALLOWED=${glib_encoded_version})
Packit Service de44cd
add_definitions(-DGDK_VERSION_MAX_ALLOWED=${gdk_encoded_version})
Packit Service de44cd
add_definitions(-DSOUP_VERSION_MAX_ALLOWED=${soup_encoded_version})
Packit Service de44cd
Packit Service de44cd
# These will suppress warnings about newly-deprecated symbols. Ideally
Packit Service de44cd
# these settings should match our minimum requirements and we will clean
Packit Service de44cd
# up any new deprecation warnings after bumping our minimum requirements.
Packit Service de44cd
# But if the warnings get to be overwhelming, use fixed versions instead.
Packit Service de44cd
add_definitions(-DGLIB_VERSION_MIN_REQUIRED=${glib_encoded_version})
Packit Service de44cd
add_definitions(-DGDK_VERSION_MIN_REQUIRED=${gdk_encoded_version})
Packit Service de44cd
add_definitions(-DSOUP_VERSION_MIN_REQUIRED=${soup_encoded_version})
Packit Service de44cd
Packit Service de44cd
set(eds_minimum_version ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
Packit Service de44cd
set(enchant1_minimum_version 1.6.0)
Packit Service de44cd
set(enchant2_minimum_version 2.2.0)
Packit Service de44cd
set(gcr_minimum_version 3.4)
Packit Service de44cd
set(gdk_pixbuf_minimum_version 2.24.0)
Packit Service de44cd
set(gnome_desktop_minimum_version 2.91.3)
Packit Service de44cd
set(gsettings_desktop_schemas_minimum_version 2.91.92)
Packit Service de44cd
set(libpst_minimum_version 0.6.54)
Packit Service de44cd
set(libxml_minimum_version 2.7.3)
Packit Service de44cd
set(shared_mime_info_minimum_version 0.22)
Packit Service de44cd
set(webkit2gtk_minimum_version 2.16.0)
Packit Service de44cd
Packit Service de44cd
# Optional Packages
Packit Service de44cd
set(champlain_minimum_version 0.12)
Packit Service de44cd
set(clutter_gtk_minimum_version 0.90)
Packit Service de44cd
set(geocode_glib_minimum_version 3.10)
Packit Service de44cd
set(gladeui_minimum_version 3.10.0)
Packit Service de44cd
set(gnome_autoar_minimum_version 0.1.1)
Packit Service de44cd
set(gweather_minimum_version 3.10)
Packit Service de44cd
set(libcanberra_gtk_minimum_version 0.25)
Packit Service de44cd
set(libnotify_minimum_version 0.7)
Packit Service de44cd
Packit Service de44cd
# Load modules from the source tree
Packit Service de44cd
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
Packit Service de44cd
Packit Service de44cd
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
Packit Service de44cd
# Packagers might want to need different settings for the RPATH related things
Packit Service de44cd
# From experience, especially CMAKE_BUILD_WITH_INSTALL_RPATH might need to be
Packit Service de44cd
# switched to ON, if CMake fails to set the right values during make install
Packit Service de44cd
set(CMAKE_SKIP_RPATH OFF CACHE BOOL INTERNAL)
Packit Service de44cd
set(CMAKE_SKIP_BUILD_RPATH OFF CACHE BOOL INTERNAL)
Packit Service de44cd
set(CMAKE_BUILD_WITH_INSTALL_RPATH OFF CACHE BOOL INTERNAL)
Packit Service de44cd
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON CACHE BOOL INTERNAL)
Packit Service de44cd
# CMAKE_INSTALL_RPATH is set below
Packit Service de44cd
Packit Service de44cd
# CMake modules
Packit Service de44cd
include(CheckCCompilerFlag)
Packit Service de44cd
include(CheckCSourceCompiles)
Packit Service de44cd
include(CheckCSourceRuns)
Packit Service de44cd
include(CheckFunctionExists)
Packit Service de44cd
include(CheckIncludeFile)
Packit Service de44cd
include(CheckLibraryExists)
Packit Service de44cd
Packit Service de44cd
# Project custom modules
Packit Service de44cd
include(PrintableOptions)
Packit Service de44cd
Packit Service de44cd
add_printable_variable(LIB_SUFFIX "Library directory suffix, usually defined to '64' for x86_64 systems" "")
Packit Service de44cd
add_printable_variable_bare(CMAKE_INSTALL_PREFIX)
Packit Service de44cd
add_printable_variable_path(BIN_INSTALL_DIR "Install directory for binary files, defaults to CMAKE_INSTALL_PREFIX/bin" "")
Packit Service de44cd
add_printable_variable_path(INCLUDE_INSTALL_DIR "Install directory for header files, defaults to CMAKE_INSTALL_PREFIX/include" "")
Packit Service de44cd
add_printable_variable_path(LIB_INSTALL_DIR "Install directory for library files, defaults to CMAKE_INSTALL_PREFIX/lib{LIB_SUFFIX}" "")
Packit Service de44cd
add_printable_variable_path(LIBEXEC_INSTALL_DIR "Install directory for library executable files, defaults to CMAKE_INSTALL_PREFIX/libexec" "")
Packit Service de44cd
add_printable_variable_path(SHARE_INSTALL_PREFIX "Install directory for shared files, defaults to CMAKE_INSTALL_PREFIX/share" "")
Packit Service de44cd
add_printable_variable_path(LOCALE_INSTALL_DIR "Install directory for locale files, defaults to SHARE_INSTALL_PREFIX/locale" "")
Packit Service de44cd
add_printable_variable_path(SYSCONF_INSTALL_DIR "Install directory for system configuration files, defaults to CMAKE_INSTALL_PREFIX/etc" "")
Packit Service de44cd
Packit Service de44cd
macro(ensure_default_value _var _defvalue)
Packit Service de44cd
	if(${_var} STREQUAL "")
Packit Service de44cd
		set(${_var} ${_defvalue})
Packit Service de44cd
	endif(${_var} STREQUAL "")
Packit Service de44cd
endmacro(ensure_default_value)
Packit Service de44cd
Packit Service de44cd
ensure_default_value(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
Packit Service de44cd
ensure_default_value(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include")
Packit Service de44cd
ensure_default_value(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}")
Packit Service de44cd
ensure_default_value(LIBEXEC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/libexec")
Packit Service de44cd
ensure_default_value(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share")
Packit Service de44cd
ensure_default_value(LOCALE_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/locale")
Packit Service de44cd
ensure_default_value(SYSCONF_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/etc")
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Special directories
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
# If you add something here, consider whether or not you also
Packit Service de44cd
# need to add it to one or more .pc.in files (for Connector, etc)
Packit Service de44cd
Packit Service de44cd
set(privdatadir "${SHARE_INSTALL_PREFIX}/${PROJECT_NAME}")
Packit Service de44cd
set(privincludedir "${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}")
Packit Service de44cd
set(privlibdir "${LIB_INSTALL_DIR}/${PROJECT_NAME}")
Packit Service de44cd
set(privlibexecdir "${LIBEXEC_INSTALL_DIR}/${PROJECT_NAME}")
Packit Service de44cd
Packit Service de44cd
SET(CMAKE_INSTALL_RPATH "${privlibdir}")
Packit Service de44cd
Packit Service de44cd
if(WIN32)
Packit Service de44cd
	# On Win32 there is no "rpath" mechanism. We install the private
Packit Service de44cd
	# shared libraries in $libdir, meaning the DLLs will actually be in
Packit Service de44cd
	# $bindir. This means just having $bindir in PATH will be enough.
Packit Service de44cd
	set(privsolibdir "${LIB_INSTALL_DIR}")
Packit Service de44cd
else(WIN32)
Packit Service de44cd
	set(privsolibdir "${privlibdir}")
Packit Service de44cd
endif(WIN32)
Packit Service de44cd
Packit Service de44cd
set(errordir "${privdatadir}/errors")
Packit Service de44cd
set(etspecdir "${privdatadir}/etspec")
Packit Service de44cd
set(evolutionhelpdir "${privdatadir}/help")
Packit Service de44cd
set(icondir "${privdatadir}/icons")
Packit Service de44cd
set(imagesdir "${privdatadir}/images")
Packit Service de44cd
set(moduledir "${privlibdir}/modules")
Packit Service de44cd
set(plugindir "${privlibdir}/plugins")
Packit Service de44cd
set(soundsdir "${privdatadir}/sounds")
Packit Service de44cd
set(uidir "${privdatadir}/ui")
Packit Service de44cd
set(viewsdir "${privdatadir}/views")
Packit Service de44cd
set(webextensionsdir "${privlibdir}/web-extensions")
Packit Service de44cd
set(webextensionswebkiteditordir "${webextensionsdir}/webkit-editor")
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Dependencies
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
include(CodeCoverageGCOV)
Packit Service de44cd
include(CheckTarget)
Packit Service de44cd
include(DistTargets)
Packit Service de44cd
include(EvolutionMacros)
Packit Service de44cd
include(GLibTools)
Packit Service de44cd
include(GtkDoc)
Packit Service de44cd
include(IconCache)
Packit Service de44cd
include(InstalledTests)
Packit Service de44cd
include(PkgConfigEx)
Packit Service de44cd
include(SetupBuildFlags)
Packit Service de44cd
include(UninstallTarget)
Packit Service de44cd
Packit Service de44cd
include(FindIntltool)
Packit Service de44cd
include(FindLDAP)
Packit Service de44cd
include(FindSMIME)
Packit Service de44cd
Packit Service de44cd
add_printable_option(ENABLE_MAINTAINER_MODE "Enable maintainer mode" OFF)
Packit Service de44cd
add_printable_variable(VERSION_SUBSTRING "Version substring, for packagers" "")
Packit Service de44cd
add_printable_variable(VERSION_COMMENT "Define if you want a comment appended to the version number" "")
Packit Service de44cd
Packit Service de44cd
if(ENABLE_MAINTAINER_MODE)
Packit Service de44cd
	set(BUILD_TESTING ON)
Packit Service de44cd
endif(ENABLE_MAINTAINER_MODE)
Packit Service de44cd
Packit Service de44cd
# Setup compiler/linker flags
Packit Service de44cd
setup_build_flags(${ENABLE_MAINTAINER_MODE})
Packit Service de44cd
Packit Service de44cd
set(MATH_LDFLAGS -lm)
Packit Service de44cd
Packit Service de44cd
CHECK_INCLUDE_FILE(sys/wait.h HAVE_SYS_WAIT_H)
Packit Service de44cd
CHECK_INCLUDE_FILE(X11/XF86keysym.h HAVE_XFREE)
Packit Service de44cd
CHECK_FUNCTION_EXISTS(mkdtemp HAVE_MKDTEMP)
Packit Service de44cd
CHECK_FUNCTION_EXISTS(nl_langinfo HAVE_NL_LANGINFO)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# executables
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
find_program(KILL_PROCESS_COMMAND killall)
Packit Service de44cd
if(NOT KILL_PROCESS_COMMAND)
Packit Service de44cd
	find_program(KILL_PROCESS_COMMAND pkill)
Packit Service de44cd
	set(KILL_PROCESS_COMMAND_ARGS "-f")
Packit Service de44cd
	set(KILL_PROCESS_COMMAND_ARG_EXACT "-x")
Packit Service de44cd
else(NOT KILL_PROCESS_COMMAND)
Packit Service de44cd
	set(KILL_PROCESS_COMMAND_ARGS "")
Packit Service de44cd
	set(KILL_PROCESS_COMMAND_ARG_EXACT "-e")
Packit Service de44cd
endif(NOT KILL_PROCESS_COMMAND)
Packit Service de44cd
Packit Service de44cd
if(NOT KILL_PROCESS_COMMAND)
Packit Service de44cd
	message(WARNING "Could not find a command to kill a process by name")
Packit Service de44cd
endif(NOT KILL_PROCESS_COMMAND)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Check for nl_langinfo features
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
CHECK_C_SOURCE_COMPILES("#include <langinfo.h>
Packit Service de44cd
			int main(void) { char *detail = nl_langinfo (_NL_MEASUREMENT_MEASUREMENT); return 0; }" HAVE__NL_MEASUREMENT_MEASUREMENT)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Dependencies
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
if(WIN32)
Packit Service de44cd
	set(GIO_UNIX_REQUIREMENT "gio-windows-2.0")
Packit Service de44cd
else(WIN32)
Packit Service de44cd
	set(GIO_UNIX_REQUIREMENT "gio-unix-2.0")
Packit Service de44cd
endif(WIN32)
Packit Service de44cd
Packit Service de44cd
add_printable_option(ENABLE_GNOME_DESKTOP "Enable GNOME desktop dependency for thumbnails" ON)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_GNOME_DESKTOP)
Packit Service de44cd
	set(GNOME_DESKTOP_DEPENDENCY "gnome-desktop-3.0")
Packit Service de44cd
	set(HAVE_GNOME_DESKTOP ON)
Packit Service de44cd
Packit Service de44cd
	# It's checked for it twice, this one gives a hint to disable the dependency if not found
Packit Service de44cd
	pkg_check_modules_for_option(ENABLE_GNOME_DESKTOP "GNOME desktop dependency for thumbnails" GNOME_DESKTOP ${GNOME_DESKTOP_DEPENDENCY}>=${gnome_desktop_minimum_version})
Packit Service de44cd
else(ENABLE_GNOME_DESKTOP)
Packit Service de44cd
	set(GNOME_DESKTOP_DEPENDENCY "")
Packit Service de44cd
	set(HAVE_GNOME_DESKTOP OFF)
Packit Service de44cd
endif(ENABLE_GNOME_DESKTOP)
Packit Service de44cd
Packit Service de44cd
pkg_check_modules(GNOME_PLATFORM REQUIRED
Packit Service de44cd
	cairo-gobject
Packit Service de44cd
	gail-3.0>=${gdk_minimum_version}
Packit Service de44cd
	gcr-3>=${gcr_minimum_version}
Packit Service de44cd
	gdk-pixbuf-2.0>=${gdk_pixbuf_minimum_version}
Packit Service de44cd
	gio-2.0>=${glib_minimum_version}
Packit Service de44cd
	${GIO_UNIX_REQUIREMENT}
Packit Service de44cd
	gmodule-2.0>=${glib_minimum_version}
Packit Service de44cd
	${GNOME_DESKTOP_DEPENDENCY}
Packit Service de44cd
	gsettings-desktop-schemas>=${gsettings_desktop_schemas_minimum_version}
Packit Service de44cd
	gtk+-3.0>=${gdk_minimum_version}
Packit Service de44cd
	libxml-2.0>=${libxml_minimum_version}
Packit Service de44cd
	shared-mime-info>=${shared_mime_info_minimum_version}
Packit Service de44cd
	webkit2gtk-4.0>=${webkit2gtk_minimum_version}
Packit Service de44cd
)
Packit Service de44cd
Packit Service de44cd
pkg_check_modules(EVOLUTION_DATA_SERVER REQUIRED
Packit Service de44cd
	camel-1.2>=${eds_minimum_version}
Packit Service de44cd
	libebook-1.2>=${eds_minimum_version}
Packit Service de44cd
	libecal-1.2>=${eds_minimum_version}
Packit Service de44cd
	libedataserver-1.2>=${eds_minimum_version}
Packit Service de44cd
	libedataserverui-1.2>=${eds_minimum_version}
Packit Service de44cd
	libebackend-1.2>=${eds_minimum_version}
Packit Service de44cd
)
Packit Service de44cd
Packit Service de44cd
pkg_check_modules(A11Y REQUIRED atk)
Packit Service de44cd
pkg_check_modules(LIBSOUP REQUIRED libsoup-2.4>=${soup_minimum_version})
Packit Service de44cd
pkg_check_modules(WEB_EXTENSION REQUIRED webkit2gtk-4.0>=${webkit2gtk_minimum_version})
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Enchant - support both, but better to use the same as the dependencies (gtkspell3, webkitgtk+,...)
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
add_printable_option(WITH_ENCHANT_VERSION "Set Enchant version to use, values are: 'auto' (default), 1 or 2" "auto")
Packit Service de44cd
Packit Service de44cd
if(WITH_ENCHANT_VERSION STREQUAL "1")
Packit Service de44cd
	pkg_check_modules(ENCHANT REQUIRED enchant>=${enchant1_minimum_version})
Packit Service de44cd
else(WITH_ENCHANT_VERSION STREQUAL "1")
Packit Service de44cd
	if(WITH_ENCHANT_VERSION STREQUAL "2")
Packit Service de44cd
		pkg_check_modules(ENCHANT REQUIRED enchant-2>=${enchant2_minimum_version})
Packit Service de44cd
	else(WITH_ENCHANT_VERSION STREQUAL "2")
Packit Service de44cd
		pkg_check_modules(ENCHANT enchant>=${enchant1_minimum_version})
Packit Service de44cd
		if(ENCHANT_FOUND)
Packit Service de44cd
			set(WITH_ENCHANT_VERSION "auto (enchant-1)")
Packit Service de44cd
		else(ENCHANT_FOUND)
Packit Service de44cd
			unset(ENCHANT_FOUND)
Packit Service de44cd
			pkg_check_modules(ENCHANT enchant-2>=${enchant2_minimum_version})
Packit Service de44cd
			if(ENCHANT_FOUND)
Packit Service de44cd
				set(WITH_ENCHANT_VERSION "auto (enchant-2)")
Packit Service de44cd
			else(ENCHANT_FOUND)
Packit Service de44cd
				message(FATAL_ERROR "Cannot find enchant 1 neither enchant 2, or new-enough version. Install either of them "
Packit Service de44cd
						    "or specify which to use with -DWITH_ENCHANT_VERSION=auto|1|2, where 'auto' is the default")
Packit Service de44cd
			endif(ENCHANT_FOUND)
Packit Service de44cd
		endif(ENCHANT_FOUND)
Packit Service de44cd
	endif(WITH_ENCHANT_VERSION STREQUAL "2")
Packit Service de44cd
endif(WITH_ENCHANT_VERSION STREQUAL "1")
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Canberra / Canberra-GTK Sound
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
add_printable_option(ENABLE_CANBERRA "Enable Canberra and Canberra-GTK sound" ON)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_CANBERRA)
Packit Service de44cd
	pkg_check_modules_for_option(ENABLE_CANBERRA "Canberra and Canberra-GTK sound" CANBERRA libcanberra-gtk3>=${libcanberra_gtk_minimum_version})
Packit Service de44cd
	set(HAVE_CANBERRA ON)
Packit Service de44cd
endif(ENABLE_CANBERRA)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Archives Integration / gnome-autoar
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
add_printable_option(ENABLE_AUTOAR "Enable archives support in attachments" ON)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_AUTOAR)
Packit Service de44cd
	pkg_check_modules_for_option(ENABLE_AUTOAR "archives support in attachments" AUTOAR
Packit Service de44cd
		gnome-autoar-0>=${gnome_autoar_minimum_version}
Packit Service de44cd
		gnome-autoar-gtk-0>=${gnome_autoar_minimum_version}
Packit Service de44cd
	)
Packit Service de44cd
	set(HAVE_AUTOAR ON)
Packit Service de44cd
endif(ENABLE_AUTOAR)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# User Documentation
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
add_printable_option(WITH_HELP "Build user documentation" ON)
Packit Service de44cd
Packit Service de44cd
if(WITH_HELP)
Packit Service de44cd
	find_program(ITSTOOL itstool)
Packit Service de44cd
	if(NOT ITSTOOL)
Packit Service de44cd
		message(FATAL_ERROR "Cannot find itstool, either install it or disable help build by adding -DWITH_HELP=OFF argument to cmake command")
Packit Service de44cd
	endif(NOT ITSTOOL)
Packit Service de44cd
endif(WITH_HELP)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# iconv checking
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
set(CMAKE_REQUIRED_LIBRARIES "-liconv")
Packit Service de44cd
CHECK_C_SOURCE_COMPILES("#include <iconv.h>
Packit Service de44cd
			#include <stdlib.h>
Packit Service de44cd
			int main(void) { iconv_t cd; cd = iconv_open (\"UTF-8\", \"ISO-8859-1\"); return 0; }" HAVE_LIBICONV)
Packit Service de44cd
unset(CMAKE_REQUIRED_LIBRARIES)
Packit Service de44cd
Packit Service de44cd
if(HAVE_LIBICONV)
Packit Service de44cd
	set(ICONV_LIBS "-liconv")
Packit Service de44cd
	set(HAVE_ICONV ON)
Packit Service de44cd
else(HAVE_LIBICONV)
Packit Service de44cd
	set(ICONV_LIBS "")
Packit Service de44cd
	CHECK_FUNCTION_EXISTS(iconv HAVE_ICONV)
Packit Service de44cd
endif(HAVE_LIBICONV)
Packit Service de44cd
Packit Service de44cd
if(NOT HAVE_ICONV)
Packit Service de44cd
	message(FATAL_ERROR "You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv")
Packit Service de44cd
endif(NOT HAVE_ICONV)
Packit Service de44cd
Packit Service de44cd
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBS})
Packit Service de44cd
file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/" _binary_dir_with_separator)
Packit Service de44cd
CHECK_C_SOURCE_RUNS("#define ICONV_DETECT_BUILD_DIR \"${_binary_dir_with_separator}\"
Packit Service de44cd
		     #include \"${CMAKE_SOURCE_DIR}/iconv-detect.c\"" _correct_iconv)
Packit Service de44cd
unset(_binary_dir_with_separator)
Packit Service de44cd
unset(CMAKE_REQUIRED_LIBRARIES)
Packit Service de44cd
Packit Service de44cd
if(NOT _correct_iconv)
Packit Service de44cd
	message(FATAL_ERROR "You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv")
Packit Service de44cd
endif(NOT _correct_iconv)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Timezone checks
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
CHECK_C_SOURCE_COMPILES("#include <time.h>
Packit Service de44cd
			int main(void) { struct tm tm; tm.tm_gmtoff = 1; return 0; }" HAVE_TM_GMTOFF)
Packit Service de44cd
Packit Service de44cd
CHECK_C_SOURCE_COMPILES("#include <time.h>
Packit Service de44cd
			int main(void) { timezone = 1; return 0; }" HAVE_TIMEZONE)
Packit Service de44cd
Packit Service de44cd
CHECK_C_SOURCE_COMPILES("#include <time.h>
Packit Service de44cd
			int main(void) { altzone = 1; return 0; }" HAVE_ALTZONE)
Packit Service de44cd
Packit Service de44cd
if((NOT HAVE_TM_GMTOFF) AND (NOT HAVE_TIMEZONE))
Packit Service de44cd
	message(FATAL_ERROR "Unable to find a way to determine timezone")
Packit Service de44cd
endif((NOT HAVE_TM_GMTOFF) AND (NOT HAVE_TIMEZONE))
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# iso-codes
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
pkg_check_exists(HAVE_ISO_CODES iso-codes)
Packit Service de44cd
if(HAVE_ISO_CODES)
Packit Service de44cd
	pkg_check_at_least_version(HAVE_ISO_CODES iso-codes 0.49)
Packit Service de44cd
	if(HAVE_ISO_CODES)
Packit Service de44cd
		pkg_check_variable(_iso_codes_domains iso-codes domains)
Packit Service de44cd
		if(NOT ((_iso_codes_domains MATCHES "639") AND (_iso_codes_domains MATCHES "3166")))
Packit Service de44cd
			message(WARNING "iso-codes detected, but either iso-639 or iso-3166 domains not found in '${_iso_codes_domains}'")
Packit Service de44cd
			set(HAVE_ISO_CODES OFF)
Packit Service de44cd
		else()
Packit Service de44cd
			pkg_check_variable(ISO_CODES_PREFIX iso-codes prefix)
Packit Service de44cd
		endif()
Packit Service de44cd
	else(HAVE_ISO_CODES)
Packit Service de44cd
		set(HAVE_ISO_CODES OFF)
Packit Service de44cd
		message(WARNING "iso-codes detected, but version 0.49 or later is required due to licensing")
Packit Service de44cd
	endif(HAVE_ISO_CODES)
Packit Service de44cd
endif(HAVE_ISO_CODES)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# TNEF implementation
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
add_printable_option(ENABLE_YTNEF "Enable yTNEF library usage" ON)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_YTNEF)
Packit Service de44cd
	set(TNEF_LDFLAGS -lytnef)
Packit Service de44cd
Packit Service de44cd
	set(CMAKE_REQUIRED_LIBRARIES ${TNEF_LDFLAGS})
Packit Service de44cd
	CHECK_C_SOURCE_COMPILES("#include <stdio.h>
Packit Service de44cd
				#include <ytnef.h>
Packit Service de44cd
				int main(void) { TNEFStruct *tnef; return 0; }" HAVE_YTNEF_H)
Packit Service de44cd
Packit Service de44cd
	if(NOT HAVE_YTNEF_H)
Packit Service de44cd
		CHECK_C_SOURCE_COMPILES("#include <stdio.h>
Packit Service de44cd
					#include <libytnef/ytnef.h>
Packit Service de44cd
					int main(void) { TNEFStruct *tnef; return 0; }" HAVE_LIBYTNEF_YTNEF_H)
Packit Service de44cd
	endif(NOT HAVE_YTNEF_H)
Packit Service de44cd
	unset(CMAKE_REQUIRED_LIBRARIES)
Packit Service de44cd
Packit Service de44cd
	if((NOT HAVE_YTNEF_H) AND (NOT HAVE_LIBYTNEF_YTNEF_H))
Packit Service de44cd
		message(FATAL_ERROR "Cannot find ytnef library, either install it or disable use of it by adding -DENABLE_YTNEF=OFF argument to cmake command")
Packit Service de44cd
	endif((NOT HAVE_YTNEF_H) AND (NOT HAVE_LIBYTNEF_YTNEF_H))
Packit Service de44cd
endif(ENABLE_YTNEF)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Bogofilter (spam filter)
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
add_printable_variable_path(WITH_BOGOFILTER "Enable spam filtering using Bogofilter (defaults to /usr/bin/bogofilter)" ON)
Packit Service de44cd
Packit Service de44cd
string(LENGTH "${CMAKE_BINARY_DIR}" bindirlen)
Packit Service de44cd
string(LENGTH "${WITH_BOGOFILTER}" maxlen)
Packit Service de44cd
if(maxlen LESS bindirlen)
Packit Service de44cd
	set(substr "***")
Packit Service de44cd
else(maxlen LESS bindirlen)
Packit Service de44cd
	string(SUBSTRING "${WITH_BOGOFILTER}" 0 ${bindirlen} substr)
Packit Service de44cd
endif(maxlen LESS bindirlen)
Packit Service de44cd
string(TOUPPER "${WITH_BOGOFILTER}" optupper)
Packit Service de44cd
Packit Service de44cd
set(BOGOFILTER_COMMAND "")
Packit Service de44cd
if(("${optupper}" STREQUAL "ON") OR ("${substr}" STREQUAL "${CMAKE_BINARY_DIR}"))
Packit Service de44cd
	set(WITH_BOGOFILTER ON)
Packit Service de44cd
elseif(("${optupper}" STREQUAL "OFF") OR ("${optupper}" STREQUAL "NO"))
Packit Service de44cd
	set(WITH_BOGOFILTER OFF)
Packit Service de44cd
else()
Packit Service de44cd
	set(BOGOFILTER_COMMAND "${WITH_BOGOFILTER}")
Packit Service de44cd
	set(WITH_BOGOFILTER ON)
Packit Service de44cd
endif()
Packit Service de44cd
Packit Service de44cd
if(WITH_BOGOFILTER)
Packit Service de44cd
	if(BOGOFILTER_COMMAND STREQUAL "")
Packit Service de44cd
		set(BOGOFILTER_COMMAND "$ENV{BOGOFILTER}")
Packit Service de44cd
	endif(BOGOFILTER_COMMAND STREQUAL "")
Packit Service de44cd
	if(BOGOFILTER_COMMAND STREQUAL "")
Packit Service de44cd
		set(BOGOFILTER_COMMAND "/usr/bin/bogofilter")
Packit Service de44cd
	endif(BOGOFILTER_COMMAND STREQUAL "")
Packit Service de44cd
endif(WITH_BOGOFILTER)
Packit Service de44cd
Packit Service de44cd
unset(bindirlen)
Packit Service de44cd
unset(maxlen)
Packit Service de44cd
unset(substr)
Packit Service de44cd
unset(optupper)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# SpamAssassin (spam filter)
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
add_printable_variable_path(WITH_SPAMASSASSIN "Enable spam filtering using SpamAssassin (defaults to /usr/bin/spamassassin)" ON)
Packit Service de44cd
add_printable_variable_path(WITH_SA_LEARN "Full path command where sa-learn is located (defaults to /usr/bin/sa-learn)" ON)
Packit Service de44cd
Packit Service de44cd
string(LENGTH "${CMAKE_BINARY_DIR}" bindirlen)
Packit Service de44cd
string(LENGTH "${WITH_SPAMASSASSIN}" maxlen)
Packit Service de44cd
if(maxlen LESS bindirlen)
Packit Service de44cd
	set(substr "***")
Packit Service de44cd
else(maxlen LESS bindirlen)
Packit Service de44cd
	string(SUBSTRING "${WITH_SPAMASSASSIN}" 0 ${bindirlen} substr)
Packit Service de44cd
endif(maxlen LESS bindirlen)
Packit Service de44cd
string(TOUPPER "${WITH_SPAMASSASSIN}" optupper)
Packit Service de44cd
Packit Service de44cd
set(SPAMASSASSIN_COMMAND "")
Packit Service de44cd
if(("${optupper}" STREQUAL "ON") OR ("${substr}" STREQUAL "${CMAKE_BINARY_DIR}"))
Packit Service de44cd
	set(WITH_SPAMASSASSIN ON)
Packit Service de44cd
elseif(("${optupper}" STREQUAL "OFF") OR ("${optupper}" STREQUAL "NO"))
Packit Service de44cd
	set(WITH_SPAMASSASSIN OFF)
Packit Service de44cd
else()
Packit Service de44cd
	set(SPAMASSASSIN_COMMAND "${WITH_SPAMASSASSIN}")
Packit Service de44cd
	set(WITH_SPAMASSASSIN ON)
Packit Service de44cd
endif()
Packit Service de44cd
Packit Service de44cd
if(WITH_SPAMASSASSIN)
Packit Service de44cd
	if(SPAMASSASSIN_COMMAND STREQUAL "")
Packit Service de44cd
		set(SPAMASSASSIN_COMMAND "$ENV{SPAMASSASSIN}")
Packit Service de44cd
	endif(SPAMASSASSIN_COMMAND STREQUAL "")
Packit Service de44cd
	if(SPAMASSASSIN_COMMAND STREQUAL "")
Packit Service de44cd
		set(SPAMASSASSIN_COMMAND "/usr/bin/spamassassin")
Packit Service de44cd
	endif(SPAMASSASSIN_COMMAND STREQUAL "")
Packit Service de44cd
Packit Service de44cd
	string(LENGTH "${WITH_SA_LEARN}" maxlen)
Packit Service de44cd
	if(maxlen LESS bindirlen)
Packit Service de44cd
		set(substr "***")
Packit Service de44cd
	else(maxlen LESS bindirlen)
Packit Service de44cd
		string(SUBSTRING "${WITH_SA_LEARN}" 0 ${bindirlen} substr)
Packit Service de44cd
	endif(maxlen LESS bindirlen)
Packit Service de44cd
	string(TOUPPER "${WITH_SA_LEARN}" optupper)
Packit Service de44cd
Packit Service de44cd
	set(SA_LEARN_COMMAND "")
Packit Service de44cd
	if(("${optupper}" STREQUAL "ON") OR ("${substr}" STREQUAL "${CMAKE_BINARY_DIR}"))
Packit Service de44cd
		set(WITH_SA_LEARN ON)
Packit Service de44cd
	elseif(("${optupper}" STREQUAL "OFF") OR ("${optupper}" STREQUAL "NO"))
Packit Service de44cd
		set(WITH_SA_LEARN OFF)
Packit Service de44cd
	else()
Packit Service de44cd
		set(SA_LEARN_COMMAND "${WITH_SA_LEARN}")
Packit Service de44cd
		set(WITH_SA_LEARN ON)
Packit Service de44cd
	endif()
Packit Service de44cd
Packit Service de44cd
	if(SA_LEARN_COMMAND STREQUAL "")
Packit Service de44cd
		set(SA_LEARN_COMMAND "$ENV{SA_LEARN}")
Packit Service de44cd
	endif(SA_LEARN_COMMAND STREQUAL "")
Packit Service de44cd
	if(SA_LEARN_COMMAND STREQUAL "")
Packit Service de44cd
		set(SA_LEARN_COMMAND "/usr/bin/sa-learn")
Packit Service de44cd
	endif(SA_LEARN_COMMAND STREQUAL "")
Packit Service de44cd
endif(WITH_SPAMASSASSIN)
Packit Service de44cd
Packit Service de44cd
unset(bindirlen)
Packit Service de44cd
unset(maxlen)
Packit Service de44cd
unset(substr)
Packit Service de44cd
unset(optupper)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# CERT_UI Flags
Packit Service de44cd
# ******************************
Packit Service de44cd
#
Packit Service de44cd
# Here we want the Mozilla flags to go *before* the other ones,
Packit Service de44cd
# especially the mozilla-nss -I flags to go before the gnutls ones,
Packit Service de44cd
# as both gnutls and mozilla-nss have a header called "pkcs12.h" which is
Packit Service de44cd
# included in smime/lib/e-pkcs12.c. It wants the Mozilla NSS one.
Packit Service de44cd
Packit Service de44cd
set(CERT_UI_INCLUDES ${MANUAL_NSPR_INCLUDES})
Packit Service de44cd
set(CERT_UI_LIBS ${MANUAL_NSPR_LIBS})
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Libnotify
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
pkg_check_modules(LIBNOTIFY libnotify>=${libnotify_minimum_version})
Packit Service de44cd
set(HAVE_LIBNOTIFY ${LIBNOTIFY_FOUND})
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# libical tweaks
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
set(CMAKE_REQUIRED_DEFINITIONS ${EVOLUTION_DATA_SERVER_CFLAGS_OTHER})
Packit Service de44cd
set(CMAKE_REQUIRED_INCLUDES ${EVOLUTION_DATA_SERVER_INCLUDE_DIRS})
Packit Service de44cd
set(CMAKE_REQUIRED_LIBRARIES ${EVOLUTION_DATA_SERVER_LDFLAGS})
Packit Service de44cd
Packit Service de44cd
CHECK_C_SOURCE_COMPILES("#include <libical/ical.h>
Packit Service de44cd
			int main(void) {
Packit Service de44cd
				ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN);
Packit Service de44cd
				return 0;
Packit Service de44cd
			}" HAVE_ICAL_UNKNOWN_TOKEN_HANDLING)
Packit Service de44cd
Packit Service de44cd
CHECK_C_SOURCE_COMPILES("#include <libical/ical.h>
Packit Service de44cd
			int main(void) {
Packit Service de44cd
				icaltzutil_set_exact_vtimezones_support (0);
Packit Service de44cd
				return 0;
Packit Service de44cd
			}" HAVE_ICALTZUTIL_SET_EXACT_VTIMEZONES_SUPPORT)
Packit Service de44cd
Packit Service de44cd
CHECK_C_SOURCE_COMPILES("#include <libical/ical.h>
Packit Service de44cd
			int main(void) {
Packit Service de44cd
				icalparameter *param;
Packit Service de44cd
				param = icalproperty_get_first_parameter (NULL, ICAL_FILENAME_PARAMETER);
Packit Service de44cd
				icalparameter_get_filename (param);
Packit Service de44cd
				icalparameter_new_filename (NULL);
Packit Service de44cd
				return 0;
Packit Service de44cd
			}" HAVE_ICAL_FILENAME_PARAMETER)
Packit Service de44cd
Packit Service de44cd
unset(CMAKE_REQUIRED_DEFINITIONS)
Packit Service de44cd
unset(CMAKE_REQUIRED_INCLUDES)
Packit Service de44cd
unset(CMAKE_REQUIRED_LIBRARIES)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# gtkspell
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
add_printable_option(ENABLE_GTKSPELL "Enable gtkspell usage" ON)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_GTKSPELL)
Packit Service de44cd
	pkg_check_modules_for_option(ENABLE_GTKSPELL "gtkspell usage" GTKSPELL gtkspell3-3.0)
Packit Service de44cd
	set(HAVE_GTKSPELL ON)
Packit Service de44cd
endif(ENABLE_GTKSPELL)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# gnu_get_libc_version()
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
CHECK_C_SOURCE_COMPILES("#include <gnu/libc-version.h>
Packit Service de44cd
			int main(void) { const gchar *libc_version = gnu_get_libc_version (); return 0; }" HAVE_GNU_GET_LIBC_VERSION)
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Plugins
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
add_printable_variable(ENABLE_PLUGINS "Enable plugins (no/base/all)" "all")
Packit Service de44cd
Packit Service de44cd
set(plugins_base
Packit Service de44cd
	publish-calendar
Packit Service de44cd
)
Packit Service de44cd
set(plugins_standard
Packit Service de44cd
	attachment-reminder
Packit Service de44cd
	bbdb
Packit Service de44cd
	dbx-import
Packit Service de44cd
	email-custom-header
Packit Service de44cd
	external-editor
Packit Service de44cd
	face
Packit Service de44cd
	mail-to-task
Packit Service de44cd
	mailing-list-actions
Packit Service de44cd
	mail-notification
Packit Service de44cd
	save-calendar
Packit Service de44cd
	templates
Packit Service de44cd
)
Packit Service de44cd
Packit Service de44cd
# ******************************************************************
Packit Service de44cd
# The following plugins have additional library dependencies.
Packit Service de44cd
# They must be explicitly disabled if the libraries are not present.
Packit Service de44cd
# ******************************************************************
Packit Service de44cd
Packit Service de44cd
# text-highlight
Packit Service de44cd
Packit Service de44cd
add_printable_option(ENABLE_TEXT_HIGHLIGHT "Enable text-highlight plugin" ON)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_TEXT_HIGHLIGHT)
Packit Service de44cd
	find_program(HIGHLIGHT_COMMAND highlight)
Packit Service de44cd
Packit Service de44cd
	if(NOT HIGHLIGHT_COMMAND)
Packit Service de44cd
		message(FATAL_ERROR "The 'highlight' program not found; either give it into PATH or disable higlight plugin with -DENABLE_TEXT_HIGHLIGHT=OFF")
Packit Service de44cd
	endif(NOT HIGHLIGHT_COMMAND)
Packit Service de44cd
endif(ENABLE_TEXT_HIGHLIGHT)
Packit Service de44cd
Packit Service de44cd
# weather calendar
Packit Service de44cd
Packit Service de44cd
add_printable_option(ENABLE_WEATHER "Enable weather calendars" ON)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_WEATHER)
Packit Service de44cd
	pkg_check_modules_for_option(ENABLE_WEATHER "weather calendar" GWEATHER gweather-3.0>=${gweather_minimum_version})
Packit Service de44cd
endif(ENABLE_WEATHER)
Packit Service de44cd
Packit Service de44cd
# maps in Contacts preview
Packit Service de44cd
Packit Service de44cd
add_printable_option(ENABLE_CONTACT_MAPS "Enable contact maps" OFF)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_CONTACT_MAPS)
Packit Service de44cd
	pkg_check_modules_for_option(ENABLE_CONTACT_MAPS "contact maps" CHAMPLAIN champlain-gtk-0.12>=${champlain_minimum_version})
Packit Service de44cd
	pkg_check_modules_for_option(ENABLE_CONTACT_MAPS "contact maps" GEO geocode-glib-1.0>=${geocode_glib_minimum_version})
Packit Service de44cd
	pkg_check_modules_for_option(ENABLE_CONTACT_MAPS "contact maps" CLUTTER_GTK clutter-gtk-1.0>=${clutter_gtk_minimum_version})
Packit Service de44cd
endif(ENABLE_CONTACT_MAPS)
Packit Service de44cd
Packit Service de44cd
# pst-import plugin
Packit Service de44cd
Packit Service de44cd
add_printable_option(ENABLE_PST_IMPORT "Enable pst-import plugin" ON)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_PST_IMPORT)
Packit Service de44cd
	pkg_check_modules_for_option(ENABLE_PST_IMPORT "pst-import plugin" LIBPST libpst>=${libpst_minimum_version})
Packit Service de44cd
	list(APPEND plugins_standard pst-import)
Packit Service de44cd
endif(ENABLE_PST_IMPORT)
Packit Service de44cd
Packit Service de44cd
# Finish plugins build setup
Packit Service de44cd
set(build_plugins)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_PLUGINS STREQUAL "" OR ENABLE_PLUGINS STREQUAL "all")
Packit Service de44cd
	set(build_plugins ${plugins_base} ${plugins_standard})
Packit Service de44cd
elseif(ENABLE_PLUGINS STREQUAL "base")
Packit Service de44cd
	set(build_plugins ${plugins_base})
Packit Service de44cd
elseif(NOT ENABLE_PLUGINS STREQUAL "no")
Packit Service de44cd
	message(FATAL_ERROR "Incorrect value for ENABLE_PLUGINS (${ENABLE_PLUGINS}), use either \"no\", or \"base\" or \"all\" value")
Packit Service de44cd
endif()
Packit Service de44cd
Packit Service de44cd
# ******************************
Packit Service de44cd
# Glade catalog
Packit Service de44cd
# ******************************
Packit Service de44cd
Packit Service de44cd
add_printable_option(WITH_GLADE_CATALOG "Install the catalog files for Glade 3 (for maintainers only)" OFF)
Packit Service de44cd
Packit Service de44cd
if(WITH_GLADE_CATALOG)
Packit Service de44cd
	pkg_check_modules_for_option(WITH_GLADE_CATALOG "Glade 3 catalog files" GLADEUI gladeui-2.0>=${gladeui_minimum_version})
Packit Service de44cd
endif(WITH_GLADE_CATALOG)
Packit Service de44cd
Packit Service de44cd
# Generate the ${PROJECT_NAME}-config.h file
Packit Service de44cd
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.in ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-config.h)
Packit Service de44cd
Packit Service de44cd
print_build_options()
Packit Service de44cd
Packit Service de44cd
# The shell_private_requirements is used by the evolution-shell.pc.in
Packit Service de44cd
if(ENABLE_GNOME_DESKTOP)
Packit Service de44cd
	set(shell_private_requirements "Requires.private: ${GNOME_DESKTOP_DEPENDENCY}")
Packit Service de44cd
else(ENABLE_GNOME_DESKTOP)
Packit Service de44cd
	set(shell_private_requirements "")
Packit Service de44cd
endif(ENABLE_GNOME_DESKTOP)
Packit Service de44cd
Packit Service de44cd
# The shell_privlibdir_rpath_flags is used by the evolution-shell.pc.in
Packit Service de44cd
# and if set, then should be preceded with a space.
Packit Service de44cd
if(NOT WIN32)
Packit Service de44cd
	set(shell_privlibdir_rpath_flags  " -Wl,-R${privlibdir}")
Packit Service de44cd
endif(NOT WIN32)
Packit Service de44cd
Packit Service de44cd
add_pkgconfig_file(evolution-calendar.pc.in evolution-calendar-${INTERFACE_VERSION}.pc)
Packit Service de44cd
add_pkgconfig_file(evolution-mail.pc.in evolution-mail-${INTERFACE_VERSION}.pc)
Packit Service de44cd
add_pkgconfig_file(evolution-shell.pc.in evolution-shell-${INTERFACE_VERSION}.pc)
Packit Service de44cd
Packit Service de44cd
add_subdirectory(data)
Packit Service de44cd
add_subdirectory(po)
Packit Service de44cd
add_subdirectory(src)
Packit Service de44cd
add_subdirectory(tests)
Packit Service de44cd
Packit Service de44cd
if(ENABLE_GTK_DOC)
Packit Service de44cd
	add_subdirectory(docs)
Packit Service de44cd
endif(ENABLE_GTK_DOC)
Packit Service de44cd
Packit Service de44cd
if(WITH_HELP)
Packit Service de44cd
	add_subdirectory(help)
Packit Service de44cd
endif(WITH_HELP)