Commit 053ffaf7 authored by Dmitry Kazakov's avatar Dmitry Kazakov

Merge remote-tracking branch 'origin/master' into krita-chili-kazakov

Conflicts:
	krita/image/kis_perspectivetransform_worker.cpp
	krita/plugins/tools/defaulttools/kis_tool_gradient.cc
parents 2212073d 4aa8cd77
SKIP google-breakpad/
......@@ -3,12 +3,14 @@ project(calligra)
cmake_minimum_required(VERSION 2.8.0 FATAL_ERROR)
cmake_policy(SET CMP0002 OLD)
#cmake_policy CMP0017 was introduced in version 2.8.4
if(${CMAKE_VERSION} VERSION_GREATER 2.8.3)
cmake_policy(SET CMP0017 NEW)
endif()
if(${CMAKE_VERSION} VERSION_GREATER 2.8.12)
cmake_policy(SET CMP0022 OLD)
endif()
######################
#######################
......@@ -635,6 +637,12 @@ if(POPPLER_FOUND)
endif(POPPLER_FOUND)
##
## Test for libgit2 and Libqgit2
##
macro_optional_find_package(Libgit2)
macro_optional_find_package(Libqgit2)
##
## Generate a file for prefix information
##
......@@ -917,6 +925,11 @@ calligra_drop_product_on_bad_condition( APP_BRAINDUMP
NOT_WIN "unmaintained on Windows"
)
calligra_drop_product_on_bad_condition( APP_GEMINI
LIBGIT2_FOUND "libgit2 devel not found"
LIBQGIT2_FOUND "libqgit2 devel not found"
)
#############################################
#### Backward compatibility BUILD_x=off ####
#############################################
......@@ -1002,6 +1015,14 @@ if(SHOULD_BUILD_DOC)
add_subdirectory(doc)
endif(SHOULD_BUILD_DOC)
if(SHOULD_BUILD_PART_QTQUICK)
add_subdirectory(qtquick)
endif(SHOULD_BUILD_PART_QTQUICK)
if(SHOULD_BUILD_GEMINI)
add_subdirectory(gemini)
endif(SHOULD_BUILD_GEMINI)
# non-app directories are moved here because they can depend on SHOULD_BUILD_{appname} variables set above
add_subdirectory(libs)
add_subdirectory(3rdparty)
......
......@@ -24,16 +24,18 @@
# the needed internal build-time requirements. Any other product or feature
# listed as requirement must have been defined before.
# A "productset" is a selection of products which should be build together. The
# products can be either essential or optional to the set. If essential
# (NEEDED), the whole productset will not be build if a product is missing
# another internal or external dependency. If optional (WANTED), the rest of the
# set will still be build in that case.
# The products to include in a set can be listed directly or indirectly: they
# can be named themselves, or another productset can be included in a set, whose
# products will then be part of the first set as well.
# Products and productsets can be listed as dependencies in multiple product
# sets. As with dependencies for products, they must have been defined before.
# A "productset" is a selection of products and features which should be build
# together. The products and features can be either essential or optional to the
# set. If essential (REQUIRES), the whole productset will not be build if a
# product or feature is missing another internal or external dependency. If
# optional (OPTIONAL), the rest of the set will still be build in that case.
# The products and features to include in a set can be listed directly or
# indirectly: they can be named explicitely, but also by including other
# productsets in a set, whose products and features will then be part of the
# first set as well.
# Products, features and productsets can be listed as dependencies in multiple
# product sets. As with dependencies for products or features, they must have
# been defined before.
# Products, features and product sets are in the same namespace, so a given
# identifier can be only used either for a product or for a feature or for a
......@@ -89,6 +91,7 @@ calligra_define_product(PLUGIN_TEXTSHAPE "Text shape plugin" REQUIRES LIB_CALLI
calligra_define_product(PART_WORDS "Words engine" REQUIRES LIB_CALLIGRA PLUGIN_TEXTSHAPE)
calligra_define_product(PART_STAGE "Stage engine" REQUIRES LIB_CALLIGRA LIB_KOPAGEAPP)
calligra_define_product(PART_SHEETS "Sheets engine" REQUIRES LIB_CALLIGRA)
calligra_define_product(PART_QTQUICK "QtQuick Plugin that provides Calligra components" REQUIRES PART_WORDS PART_STAGE)# SHEETS_PART)
# apps
calligra_define_product(APP_WORDS "Words app (for Desktop)" REQUIRES PART_WORDS)
......@@ -101,6 +104,7 @@ calligra_define_product(APP_KEXI "Kexi app (for Desktop)" REQUIRES LIB_CALLIGRA
calligra_define_product(APP_FLOW "Flow app (for Desktop)" REQUIRES LIB_CALLIGRA LIB_KOPAGEAPP)
calligra_define_product(APP_PLAN "Plan app (for Desktop)" REQUIRES LIB_CALLIGRA LIB_KOREPORT LIB_KDCHART LIB_KDGANTT)
calligra_define_product(APP_BRAINDUMP "Braindump app (for Desktop)" REQUIRES LIB_CALLIGRA)
calligra_define_product(APP_GEMINI "The Calligra Gemini application" REQUIRES PART_QTQUICK)
# TODO: this needs to be split up by app products
calligra_define_product(DOC "Calligra Documentations")
......@@ -538,6 +542,28 @@ calligra_define_productset(WORDS "Full Words (for Desktop)"
# filters
FILTERS_WORDS
)
calligra_define_productset(GEMINI "Calligra for 2:1 devices"
REQUIRES
APP_GEMINI
OPTIONAL
# plugins
PLUGIN_DEFAULTTOOLS
PLUGIN_ARTISTICTEXTSHAPE
PLUGIN_DOCKERS
PLUGIN_TEXTEDITING
PLUGIN_PATHSHAPES
PLUGIN_VARIABLES
PLUGIN_CHARTSHAPE
PLUGIN_PICTURESHAPE
PLUGIN_TEXTSHAPE
PLUGIN_PLUGINSHAPE
PLUGIN_FORMULASHAPE
PLUGIN_VIDEOSHAPE
PLUGIN_VECTORSHAPE
# filters
FILTERS_WORDS
FILTERS_STAGE
)
# okular support
calligra_define_productset(OKULAR "Okular generators"
......@@ -646,6 +672,14 @@ calligra_define_productset(OKULAR "Okular generators"
# How to add another productset?
# ==============================
#
# There are two possible places to put a productset definition. The first is to
# add it to this file, which should be done for more generic sets that are
# useful for many people. The second is a file of its own, in the directory
# "cmake/productsets", which should be done for more special ones or for those
# which should not be added to the repository.
# The file must be named with the name of the productset in lowercase and have
# the extension ".cmake".
#
# 1. Define the productset by a call of calligra_define_productset,
# e.g.
#
......@@ -666,16 +700,9 @@ calligra_define_productset(OKULAR "Okular generators"
# 3. Add the productset to all product sets which have this product set as
# REQUIRED or OPTIONAL dependency.
#
# The definition could be added to this file, which should be done for more
# generic sets. Or it can be put into a file of its own, in the directory
# cmake/productsets, which should be done for more special ones or for those
# which should not be added to the repository.
# The file must be named with the name of the productset in lowercase and have
# the extension ".cmake".
#
# Example:
# Example for a file-based productset definition:
# You want a productset "MYWORDS". For that you add a file named
# "mywords.cmake" into the directory cmake/productsets, with the content:
# "mywords.cmake" into the directory "cmake/productsets", with the content:
# --- 8< ---
# calligra_define_productset(MYWORDS "My Words"
# REQUIRES
......
# Copyright (c) 2014 Dan Leinir Turthra Jensen <admin@leinir.dk
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
# - Try to find the libgit2 library
# Once done this will define
#
# LIBGIT2_FOUND - System has libgit2
# LIBGIT2_INCLUDE_DIR - The libgit2 include directory
# LIBGIT2_LIBRARIES - The libraries needed to use libgit2
# LIBGIT2_DEFINITIONS - Compiler switches required for using libgit2
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
FIND_PACKAGE(PkgConfig)
PKG_SEARCH_MODULE(PC_LIBGIT2 libgit2)
SET(LIBGIT2_DEFINITIONS ${PC_LIBGIT2_CFLAGS_OTHER})
FIND_PATH(LIBGIT2_INCLUDE_DIR NAMES git2.h
HINTS
${PC_LIBGIT2_INCLUDEDIR}
${PC_LIBGIT2_INCLUDE_DIRS}
)
FIND_LIBRARY(LIBGIT2_LIBRARIES NAMES git2
HINTS
${PC_LIBGIT2_LIBDIR}
${PC_LIBGIT2_LIBRARY_DIRS}
)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(libgit2 DEFAULT_MSG LIBGIT2_LIBRARIES LIBGIT2_INCLUDE_DIR)
MARK_AS_ADVANCED(LIBGIT2_INCLUDE_DIR LIBGIT2_LIBRARIES)
# Copyright (c) 2014 Dan Leinir Turthra Jensen <admin@leinir.dk
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
# - Try to find the libqgit2 library
# Once done this will define
#
# LIBQGIT2_FOUND - System has libqgit2
# LIBQGIT2_INCLUDE_DIR - The libqgit2 include directory
# LIBQGIT2_LIBRARIES - The libraries needed to use libqgit2
# LIBQGIT2_DEFINITIONS - Compiler switches required for using libqgit2
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
FIND_PACKAGE(PkgConfig)
PKG_SEARCH_MODULE(PC_LIBQGIT2 libqgit2)
SET(LIBQGIT2_DEFINITIONS ${PC_LIBQGIT2_CFLAGS_OTHER})
FIND_PATH(LIBQGIT2_INCLUDE_DIR NAMES qgit2.h
HINTS
${PC_LIBQGIT2_INCLUDEDIR}
${PC_LIBQGIT2_INCLUDE_DIRS}