Bug 720335 * src/client/composer/spell-check-popover.vala Implemented a GtkPopover allowing the user to select a subset of the currently installed dictionaries for the spell checking in the composer widget. * src/client/util/util-international-vala Added detection of installed dictionaries and proper translation of the available languages. This requires Enchant as an additional dependency. * src/client/application/geary-config.vala Added keys spell-check-visible-languages and spell-check-languages in GSettings.
180 lines
5.1 KiB
CMake
180 lines
5.1 KiB
CMake
# Geary build script
|
|
# Copyright 2016 Software Freedom Conservancy Inc.
|
|
#
|
|
# Check http://webdev.elementaryos.org/docs/developer-guide/cmake for documentation
|
|
|
|
cmake_minimum_required(VERSION 2.8)
|
|
cmake_policy(VERSION 2.6)
|
|
|
|
project(geary C)
|
|
|
|
list(APPEND
|
|
CMAKE_MODULE_PATH
|
|
${CMAKE_SOURCE_DIR}/cmake
|
|
${CMAKE_SOURCE_DIR}/cmake/GCR_CMake/macros
|
|
)
|
|
|
|
#
|
|
# Base bits
|
|
#
|
|
set(GETTEXT_PACKAGE "geary")
|
|
set(RELEASE_NAME "Lightweight email client for GNOME.")
|
|
set(VERSION "0.11.0")
|
|
set(VERSION_INFO "Release")
|
|
set(LANGUAGE_SUPPORT_DIRECTORY ${CMAKE_INSTALL_PREFIX}/share/locale)
|
|
|
|
if (NOT ISO_CODE_639_XML)
|
|
find_path(ISOCODES_DIRECTORY NAMES iso_639.xml PATHS ${CMAKE_INSTALL_PREFIX} /usr/share/xml/iso-codes)
|
|
if (ISOCODES_DIRECTORY)
|
|
set(ISO_CODE_639_XML ${ISOCODES_DIRECTORY}/iso_639.xml)
|
|
else ()
|
|
message(WARNING "File iso_639.xml not found. Please specify it manually using cmake -DISO_CODE_639_XML=/path/to/iso_639.xml")
|
|
endif ()
|
|
else ()
|
|
if (NOT EXISTS ${ISO_CODE_639_XML})
|
|
message(WARNING "The path to iso_639.xml specified in ISO_CODE_639_XML is not valid.")
|
|
endif ()
|
|
endif ()
|
|
|
|
if (NOT ISO_CODE_3166_XML)
|
|
find_path(ISOCODES_DIRECTORY NAMES iso_3166.xml PATHS ${CMAKE_INSTALL_PREFIX} /usr/share/xml/iso-codes)
|
|
if (ISOCODES_DIRECTORY)
|
|
set(ISO_CODE_3166_XML ${ISOCODES_DIRECTORY}/iso_3166.xml)
|
|
else ()
|
|
message(WARNING "File iso_3166.xml not found. Please specify it manually using cmake -DISO_CODE_3166_XML=/path/to/iso_3166.xml")
|
|
endif ()
|
|
else ()
|
|
if (NOT EXISTS ${ISO_CODE_3166_XML})
|
|
message(WARNING "The path to iso_3166.xml specified in ISO_CODE_3166_XML is not valid.")
|
|
endif ()
|
|
endif ()
|
|
|
|
# Packaging filenamesnames.
|
|
set(ARCHIVE_BASE_NAME ${CMAKE_PROJECT_NAME}-${VERSION})
|
|
set(ARCHIVE_FULL_NAME ${ARCHIVE_BASE_NAME}.tar.xz)
|
|
set(ARCHIVE_DEBUILD_FULL_NAME ${CMAKE_PROJECT_NAME}_${VERSION}.orig.tar.xz)
|
|
|
|
option(DEBUG "Build for debugging." OFF)
|
|
option(ICON_UPDATE "Run gtk-update-icon-cache after the install." ON)
|
|
option(DESKTOP_UPDATE "Run update-desktop-database after the install." ON)
|
|
option(DESKTOP_VALIDATE "Check generated desktop file for errors during build." ON)
|
|
option(TRANSLATE_HELP "Generate and install translated help documentation." ON)
|
|
|
|
if (DEBUG)
|
|
message(STATUS "Debug build")
|
|
endif ()
|
|
|
|
if (ICON_UPDATE)
|
|
message(STATUS "Icon cache will be updated")
|
|
endif ()
|
|
|
|
if (DESKTOP_UPDATE)
|
|
message(STATUS "Desktop database will be updated")
|
|
endif ()
|
|
|
|
if (DESKTOP_VALIDATE)
|
|
message(STATUS "Generated desktop file will be checked for errors")
|
|
endif ()
|
|
|
|
if (TRANSLATE_HELP)
|
|
message(STATUS "Help translations will be generated and installed")
|
|
endif ()
|
|
|
|
find_package(PkgConfig)
|
|
pkg_check_modules(LIBUNITY QUIET unity>=5.12.0)
|
|
pkg_check_modules(LIBMESSAGINGMENU QUIET messaging-menu>=12.10.2)
|
|
|
|
pkg_check_modules(ENCHANT QUIET enchant)
|
|
|
|
pkg_check_modules(SQLITE311 QUIET sqlite3>=3.11.0)
|
|
pkg_check_modules(SQLITE312 QUIET sqlite3>=3.12.0)
|
|
if (SQLITE311_FOUND AND NOT SQLITE312_FOUND)
|
|
message(WARNING "SQLite 3.11.x found. Ensure it has been compiled with -DSQLITE_ENABLE_FTS3_TOKENIZER or upgrade to SQLite 3.12.x. See https://bugzilla.gnome.org/show_bug.cgi?id=763203 for details.")
|
|
endif ()
|
|
|
|
# intl
|
|
include(Gettext)
|
|
if (XGETTEXT_FOUND)
|
|
message(STATUS "xgettext found")
|
|
else ()
|
|
message(STATUS "xgettext not found")
|
|
endif ()
|
|
|
|
# GResources
|
|
include(GlibCompileResourcesSupport)
|
|
|
|
#
|
|
# Uninstall target
|
|
#
|
|
configure_file(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
|
IMMEDIATE @ONLY
|
|
)
|
|
|
|
add_custom_target(
|
|
uninstall-base
|
|
COMMAND
|
|
${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
|
|
COMMAND
|
|
${glib_schema_compiler} ${GSETTINGS_DIR}
|
|
)
|
|
|
|
add_custom_target(
|
|
uninstall
|
|
)
|
|
|
|
# We add this dependency using add_dependencies (which makes it run first) rather than
|
|
# a depends clause in add_custom_target (which would make it run last).
|
|
add_dependencies(uninstall uninstall-base)
|
|
|
|
# This gets fired in the root-level Makefile to ensure an post-uninstall cleanup happens after
|
|
# everything has has been removed
|
|
add_custom_target(
|
|
post-uninstall
|
|
)
|
|
|
|
# Dist
|
|
# This generates the dist tarballs
|
|
add_custom_target(
|
|
dist
|
|
COMMAND
|
|
git archive --prefix=${ARCHIVE_BASE_NAME}/ HEAD
|
|
| xz -z > ${CMAKE_BINARY_DIR}/${ARCHIVE_FULL_NAME}
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
)
|
|
|
|
# Ubuntu
|
|
# Builds the source Debian package used for the Launchpad PPA
|
|
add_custom_target(
|
|
ubuntu_pre
|
|
DEPENDS
|
|
dist
|
|
COMMAND
|
|
${CMAKE_COMMAND} -E copy ${ARCHIVE_FULL_NAME} ${ARCHIVE_DEBUILD_FULL_NAME}
|
|
COMMAND
|
|
tar xvfx ${ARCHIVE_FULL_NAME}
|
|
)
|
|
|
|
add_custom_target(
|
|
ubuntu
|
|
DEPENDS
|
|
ubuntu_pre
|
|
COMMAND
|
|
${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/debian"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${ARCHIVE_BASE_NAME}/debian"
|
|
COMMAND
|
|
debuild -S -k$ENV{GPGKEY}
|
|
COMMAND
|
|
|
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${ARCHIVE_BASE_NAME}"
|
|
)
|
|
|
|
add_subdirectory(desktop)
|
|
add_subdirectory(help)
|
|
add_subdirectory(icons)
|
|
add_subdirectory(po)
|
|
add_subdirectory(sql)
|
|
add_subdirectory(ui)
|
|
add_subdirectory(src)
|
|
add_subdirectory(theming)
|