Build option to disable the Oxygen window decoration

This build option is added to make it easier to build just KWin without
kde-workspace. This is a common requirement by developers wanting to
contribute to KWin and only want to build KWin but use everything else
from their normal distribution.

Building KWin standalone is very often difficult due to Oxygen. If the
library has changed it is not possible to build just KWin without also
building the workspace libs and if you do so you run into ABI problems
when trying to start KWin - either the decoration or the style is
crashing due to not matching libraries.

To circumvent this common issue for new developers this build option
is introduced to just exclude the Oxygen window decoration and defaulting
to Plastik.

Of course by default this option is turned ON, so that the Oxygen
decoration gets build. By default there is no change at all.

REVIEW: 106303
icc-effect-5.14.5
Martin Gräßlin 2012-09-01 12:43:13 +02:00
parent 5cd15e8920
commit 49cce8dede
4 changed files with 8 additions and 1 deletions

View File

@ -1,6 +1,7 @@
########### configure tests ###############
OPTION(KWIN_BUILD_DECORATIONS "Enable building of KWin decorations." ON)
OPTION(KWIN_BUILD_OXYGEN "Enable building of default decoration Oxygen" ON)
OPTION(KWIN_BUILD_KCMS "Enable building of KWin configuration modules." ON)
OPTION(KWIN_MOBILE_EFFECTS "Only build effects relevant for mobile devices" OFF)
OPTION(KWIN_BUILD_TABBOX "Enable building of KWin Tabbox functionality" ON)

View File

@ -1,5 +1,7 @@
add_subdirectory( aurorae )
add_subdirectory( oxygen )
if(KWIN_BUILD_OXYGEN)
add_subdirectory( oxygen )
endif(KWIN_BUILD_OXYGEN)
add_subdirectory( plastik )
add_subdirectory( b2 )
add_subdirectory( laptop )

View File

@ -4,5 +4,6 @@
#cmakedefine KWIN_BUILD_SCREENEDGES 1
#cmakedefine KWIN_BUILD_SCRIPTING 1
#cmakedefine KWIN_BUILD_ACTIVITIES 1
#cmakedefine KWIN_BUILD_OXYGEN 1
#define KWIN_NAME "${KWIN_NAME}"
#define KWIN_CONFIG "${KWIN_NAME}rc"

View File

@ -36,6 +36,9 @@ PluginMgr::PluginMgr()
{
defaultPlugin = (QPixmap::defaultDepth() > 8) ?
"kwin3_oxygen" : "kwin3_plastik";
#ifndef KWIN_BUILD_OXYGEN
defaultPlugin = "kwin3_plastik";
#endif
#ifdef KWIN_BUILD_DECORATIONS
loadPlugin(""); // load the plugin specified in cfg file
#else