Commit 120aa2e3 authored by Halla Rempt's avatar Halla Rempt
Browse files

Consolidate all plugins together

Now we have only one plugin dir. The plugin dir now has the
great big include_directories list, but that's for fixing
later on.
parent 16e71d41

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.
......@@ -762,6 +762,10 @@ endif()
add_subdirectory(libs)
add_subdirectory(plugins)
if (NOT WIN32)
add_subdirectory( benchmarks )
endif ()
macro_display_feature_log()
calligra_product_deps_report("product_deps")
......
......@@ -25,15 +25,10 @@ set(KRITA_INCLUDES
include_directories(${KRITA_INCLUDES})
add_subdirectory( dtd )
add_subdirectory( plugins )
add_subdirectory( data )
add_subdirectory( integration )
add_subdirectory( pics/app )
if (NOT WIN32)
add_subdirectory( benchmarks )
endif ()
set(krita_SRCS main.cc)
if (NOT APPLE)
......
add_subdirectory( assistants )
add_subdirectory( filters )
add_subdirectory( tools )
add_subdirectory( extensions )
add_subdirectory( generators )
add_subdirectory( paintops )
add_subdirectory( formats )
add_subdirectory( colorspaces )
/**
\mainpage About plugins
Plugins are components with a GUI that perform some action for Krita.
Note that plugins are only loaded when a KisView is constructed; note
also that every plugin is reloaded when a new KisView is created.
Plugins are _not_ allowed to depend on each other. You may _not_
#include a header file from a plugin anywhere but in that same plugin.
You can however choose to group a cluster of related functions in
one plugin, like with the selection tools.
There are several kinds of plugins for Krita:
* Tools
Tools have the Krita/Tool servicetype. A tool plugin registers
the tool factories it provides with the tool registry. A tool must descend
from the KisTool interface. There are several base classes for
specialized tools, like painting and non painting tools.
* Paintops
Paintops implement methods for changing pixels that can be used
by painting tools. Examples are brush, pen, airbrush. Paintop plugins
have the Krita/Paintop servicetype, register paintop factories they
provide the paintop registry. Paintops inherit KisPaintOp.
* Filters
Filters implement methods of changin a rectangular area of pixels. Filter
plugins have the Krita/Filter servicetype and are registered with
the filter registry. A filter inherits the KisFilter class and may
provide a configuration widget and a configuration object.
* Extensions
Extensions are loaded by every view instance. They provide user interface
elements such as dialog boxes and wizards. Their parent is KisView and
they provide an .rc file to merge their gui with the view gui. Extensions
have the servicetype Krita/Plugin.
* Formats
Formats are plugins for loading various graphics file formats, such as jpeg,
tiff or png
* Generators
Generators are plugins that can fill a certain area with a computed pattern
of pixels.
* Assistants
Assistants are plugins that constrain the freehand tool when painting in a
certain way
*/
// DOXYGEN_SET_IGNORE_PREFIX = Kis Ko K
/**
* \mainpage
*/
// DOXYGEN_SET_PROJECT_NAME = Colorspaces
// DOXYGEN_SET_IGNORE_PREFIX = Kis Ko K
#
# Copyright (c) 2010-2015, Gilles Caulier, <caulier dot gilles at gmail dot com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
project(libkdcraw)
message(STATUS "----------------------------------------------------------------------------------")
message(STATUS "Starting CMake configuration for: ${PROJECT_NAME}")
set(CMAKE_MIN_VERSION "2.8.12")
set(ECM_MIN_VERSION "1.1.0")
set(KF5_VERSION "5.1.0")
set(REQUIRED_QT_VERSION "5.2.0")
set(LIBRAW_MIN_VERSION "0.16")
cmake_minimum_required(VERSION ${CMAKE_MIN_VERSION})
# ==================================================================================================
# Information to update before to release this library.
# Library version history:
# API ABI
# 0.1.0 => 0.1.0 (KDE3)
# 0.1.1 => 1.0.0 (KDE3)
# 0.1.2 => 2.0.0 (KDE3)
# 0.1.3 => 2.1.0 (KDE3)
# 0.1.4 => 3.0.0 (KDE3)
# 0.1.5 => 4.0.0 (KDE3)
# 0.2.0 => 5.0.0 (released with KDE 4.1.0)
# 0.3.0 => 6.0.0 (released with KDE 4.1.2)
# 0.4.0 => 7.0.0 (using libRaw-Released with KDE 4.2.0)
# 0.5.0 => 7.1.0 (Released with KDE 4.3.0)
# 1.0.0 => 8.0.0 (Released with KDE 4.4.0)
# 1.1.0 => 8.1.0 (Released with KDE 4.4.2)
# 1.2.0 => 9.0.0 (Released with KDE 4.5.0)
# 1.3.0 => 10.0.0 (Released with KDE 4.6.0)
# 2.0.0 => 20.0.0 (Released with KDE 4.7.0)
# 2.0.1 => 20.0.1 (Released with KDE 4.8.0 - Introducing new deprecated members due to use libraw 0.14.x)
# 2.1.0 => 21.0.0 (Released with KDE 4.8.1 - Remove deprecated members)
# 2.2.0 => 22.0.0 (Released with KDE 4.10.0 - Including RawSpeed Codec)
# 2.3.0 => 22.1.0 (Released with KDE 4.11.0 - Including Coverity Report fixes)
# 2.3.1 => 22.1.1 (Released with KDE 4.11.2 - Including settings widget fixes)
# 2.4.0 => 23.0.2 (Released with KDE 4.12.0 - Drop internal Libraw source code + new methods to get thumb and preview from QBuffer)
# 5.0.0 => 30.0.0 (Released with KDE 5.x)
# Library API version
SET(KDCRAW_LIB_MAJOR_VERSION "5")
SET(KDCRAW_LIB_MINOR_VERSION "0")
SET(KDCRAW_LIB_PATCH_VERSION "0")
# Library ABI version used by linker.
# For details : http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
SET(KDCRAW_LIB_SO_CUR_VERSION "30")
SET(KDCRAW_LIB_SO_REV_VERSION "0")
SET(KDCRAW_LIB_SO_AGE_VERSION "0")
SET(LIBKDCRAW_LIB_VERSION "${KDCRAW_LIB_MAJOR_VERSION}.${KDCRAW_LIB_MINOR_VERSION}.${KDCRAW_LIB_PATCH_VERSION}")
SET(LIBDCRAW_SO_VERSION "${KDCRAW_LIB_SO_CUR_VERSION}.${KDCRAW_LIB_SO_REV_VERSION}.${KDCRAW_LIB_SO_AGE_VERSION}")
############## ECM setup ######################
find_package(ECM ${ECM_MIN_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${libkdcraw_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH})
include(ECMGenerateHeaders)
include(ECMGeneratePriFile)
include(ECMPackageConfigHelpers)
include(ECMSetupVersion)
include(ECMMarkNonGuiExecutable)
include(KDEInstallDirs)
include(ECMInstallIcons)
include(KDECMakeSettings)
include(KDEFrameworkCompilerSettings)
include(GenerateExportHeader)
include(FeatureSummary)
############## Find Packages ###################
find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS
Core
Widgets
Gui
)
find_package(KF5 REQUIRED COMPONENTS
I18n
Config
)
find_package(LibRaw ${LIBRAW_MIN_VERSION} REQUIRED)
set_package_properties("LibRaw" PROPERTIES
DESCRIPTION "Required to build libkdcraw"
URL "http://www.libraw.org"
TYPE RECOMMENDED
PURPOSE "Library to decode RAW image"
)
ecm_setup_version(${LIBKDCRAW_LIB_VERSION}
VARIABLE_PREFIX KDCRAW
VERSION_HEADER "src/libkdcraw_version.h"
PACKAGE_VERSION_FILE "KF5KDcrawConfigVersion.cmake"
SOVERSION ${LIBKDCRAW_SO_VERSION})
############## Targets #########################
add_subdirectory(src)
if (BUILD_TESTING)
add_subdirectory(tests)
endif()
############## CMake Config Files ##############
message("${CMAKECONFIG_INSTALL_DIR}")
set(CMAKECONFIG_INSTALL_DIR "${CMAKECONFIG_INSTALL_PREFIX}/KF5KDcraw")
ecm_configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/KF5KDcrawConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/KF5KDcrawConfig.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/KF5KDcrawConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/KF5KDcrawConfigVersion.cmake"
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
COMPONENT Devel
)
install(EXPORT KF5KDcrawTargets
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
FILE KF5KDcrawTargets.cmake
NAMESPACE KF5::
)
# Install data
add_subdirectory(data)
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
#
# Copyright (c) 2010-2015, Gilles Caulier, <caulier dot gilles at gmail dot com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
kde_enable_exceptions()
include_directories(${LibRaw_INCLUDE_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR}/..)
add_definitions(${LibRaw_DEFINITIONS})
remove_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII)
set(kdcraw_LIB_SRCS kdcraw.cpp
kdcraw_p.cpp
rsliderspinbox.cpp
rnuminput.cpp
rexpanderbox.cpp
rcombobox.cpp
rwidgetutils.cpp
dcrawsettingswidget.cpp
dcrawinfocontainer.cpp
rawdecodingsettings.cpp
squeezedcombobox.cpp
ractionthreadbase.cpp
ractionjob.cpp
libkdcraw_debug.cpp
)
ecm_generate_headers(kdcraw_CamelCase_HEADERS
HEADER_NAMES
KDcraw
DcrawSettingsWidget
DcrawInfoContainer
RawDecodingSettings
RComboBox
RNumInput
RExpanderBox
SqueezedComboBox
RActionThreadBase
RActionJob
RawFiles
RWidgetUtils
PREFIX KDCRAW
REQUIRED_HEADERS kdcraw_HEADERS
)
add_library(KF5KDcraw SHARED ${kdcraw_LIB_SRCS})
add_library(KF5::KDcraw ALIAS KF5KDcraw)
generate_export_header(KF5KDcraw BASE_NAME libkdcraw EXPORT_MACRO_NAME )
set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE OFF)
target_include_directories(KF5KDcraw INTERFACE
"$<INSTALL_INTERFACE:${KF5_INCLUDE_INSTALL_DIR}/KDCRAW;${KF5_INCLUDE_INSTALL_DIR}/KDCRAW/kdcraw>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
)
target_link_libraries(KF5KDcraw
PRIVATE
${LibRaw_LIBRARIES}
PUBLIC
Qt5::Core
Qt5::Widgets
Qt5::Gui
KF5::I18n
KF5::ConfigCore
)
set_target_properties(KF5KDcraw PROPERTIES
VERSION ${KDCRAW_VERSION_STRING}
SOVERSION ${KDCRAW_SOVERSION}
EXPORT_NAME KDcraw
)
install(TARGETS KF5KDcraw
EXPORT KF5KDcrawTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}
)
install(FILES ${kdcraw_CamelCase_HEADERS}
DESTINATION ${KF5_INCLUDE_INSTALL_DIR}/KDCRAW/KDCRAW
COMPONENT Devel
)
install(FILES ${kdcraw_HEADERS}
DESTINATION ${KF5_INCLUDE_INSTALL_DIR}/KDCRAW/kdcraw
COMPONENT Devel
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libkdcraw_export.h
DESTINATION ${KF5_INCLUDE_INSTALL_DIR}/KDCRAW/kdcraw
COMPONENT Devel
)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libkdcraw_version.h"
DESTINATION "${KF5_INCLUDE_INSTALL_DIR}"
COMPONENT Devel
)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment