[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-mac
Subject:    [KDE/Mac] Mac Build fixed for kdebase/workspace trunk
From:       Andreas Stricker <astricker () futurelab ! ch>
Date:       2009-06-02 15:53:11
Message-ID: 4A254AE7.40307 () futurelab ! ch
[Download RAW message or body]

[Attachment #2 (multipart/signed)]

[Attachment #4 (multipart/mixed)]


Hi

As noted before I tried to build kdebase/workspace on Mac OSX.
The main reason was to get access to the plasma engines,
applets, containments, wallpapers, and data engines here.

This only fixes build error's. There are still a lot of issues
at runtime. But as the gap to a buildable system is not to big
this helps to get keep the code buildable.

I tried to differentiate between parts not available on
Mac ( checking with "NOT APPLE" in cmake or "!defined(Q_OS_MAC)"
in Code) and parts not available on non-X11 system (check for
Q_WS_X11).

Usually parts with build problems on OSX are also not available
for the windows target. The conditional parts overlaps here.

There should be 14 patches against svn trunk attached.


Regards, Andy


["0001-Don-t-build-modules-not-usuable-on-OSX-or-not-ported.patch" (text/plain)]

>From 08b0b7a2ea4864b44d292c27f27aad3c960a5080 Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Wed, 27 May 2009 17:14:31 +0200
Subject: [PATCH 01/14] Don't build modules not usuable on OSX or not ported yet

 * Excluded modules from build on OSX which are not buildable due
   dependencies on X11 or system parts not available on OSX
 * The excluded list is basically the same as for Windows port
---
 workspace/CMakeLists.txt        |   16 ++++++++--------
 workspace/ConfigureChecks.cmake |    3 ++-
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/workspace/CMakeLists.txt b/workspace/CMakeLists.txt
index 53729af..9c2e75e 100644
--- a/workspace/CMakeLists.txt
+++ b/workspace/CMakeLists.txt
@@ -121,7 +121,7 @@ add_subdirectory(libs)
 macro_optional_add_subdirectory( systemsettings )
 
 # core apps
-if(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
   macro_optional_add_subdirectory( kcheckpass )
   macro_optional_add_subdirectory( kscreensaver )
   macro_optional_add_subdirectory( kwin )
@@ -136,7 +136,7 @@ if(NOT WIN32)
   if(POLKITQT_FOUND)
     macro_optional_add_subdirectory( PolicyKit-kde )
   endif(POLKITQT_FOUND)
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
 macro_optional_add_subdirectory( krunner )
 macro_optional_add_subdirectory( solid )
 macro_optional_add_subdirectory( kmenuedit )
@@ -146,13 +146,13 @@ macro_optional_add_subdirectory( kstartupconfig )
 
 # apps we need to figure out what to do with
 macro_optional_add_subdirectory( kcontrol )
-if(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
   macro_optional_add_subdirectory( ksystraycmd )
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
 # data
-if(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
   macro_optional_add_subdirectory( cursors )
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
 macro_optional_add_subdirectory( doc )
 macro_optional_add_subdirectory( wallpapers )
 
@@ -164,10 +164,10 @@ endif(X11_Xau_FOUND AND X11_Xdmcp_FOUND)
 
 
 ########### install files ###############
-if(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
   install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/startkde DESTINATION ${BIN_INSTALL_DIR})
   install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/safestartkde DESTINATION ${BIN_INSTALL_DIR})
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
 
 if(BUILDING_WORKSPACE_SEPARATELY)
   macro_display_feature_log()
diff --git a/workspace/ConfigureChecks.cmake b/workspace/ConfigureChecks.cmake
index f1238dc..8b70c80 100644
--- a/workspace/ConfigureChecks.cmake
+++ b/workspace/ConfigureChecks.cmake
@@ -84,6 +84,7 @@ check_type_size("struct ucred" STRUCT_UCRED)       # kio_fonts
 check_function_exists(getpeereid  HAVE_GETPEEREID) # kdesu
 check_function_exists(setpriority  HAVE_SETPRIORITY) # kscreenlocker 
 
+if (Q_WS_X11)
 pkg_check_modules (XRANDR_1_2   xrandr>=1.2)
 macro_bool_to_01(XRANDR_1_2_FOUND HAS_RANDR_1_2)
-
+endif (Q_WS_X11)
-- 
1.6.3.1



["0002-Excluded-taskmanager-and-ksysguard-from-OSX-build.patch" (text/plain)]

>From d75995239ddf45e730b29b6d509f0100071c407c Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Wed, 27 May 2009 17:17:49 +0200
Subject: [PATCH 02/14] Excluded taskmanager and ksysguard from OSX build

 * Those modules won't compile atm and need some effort to port
---
 workspace/libs/CMakeLists.txt |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/workspace/libs/CMakeLists.txt b/workspace/libs/CMakeLists.txt
index 2845152..da5871e 100644
--- a/workspace/libs/CMakeLists.txt
+++ b/workspace/libs/CMakeLists.txt
@@ -3,10 +3,10 @@ add_subdirectory(kephal)
 add_subdirectory(plasmaclock)
 add_subdirectory(solid)
 
-if(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
  add_subdirectory(taskmanager)
  add_subdirectory(ksysguard)
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
 add_subdirectory(kworkspace)
 
 
-- 
1.6.3.1



["0003-Don-t-build-kworkspace.cpp-for-OSX.patch" (text/plain)]

> From b5d0850992723ac52fb7eb3135fea6e9f2b0f469 Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Wed, 27 May 2009 17:21:34 +0200
Subject: [PATCH 03/14] Don't build kworkspace.cpp for OSX

 * This module makes heavy use of X11 session manager and needs some
   effort to be ported to OSX
 * Sooner or later those functions need to be properly ported to OSX
---
 workspace/libs/kworkspace/CMakeLists.txt      |    9 +++++----
 workspace/libs/kworkspace/kwindowlistmenu.cpp |    4 +++-
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/workspace/libs/kworkspace/CMakeLists.txt \
b/workspace/libs/kworkspace/CMakeLists.txt index 3a7c82a..11980ec 100644
--- a/workspace/libs/kworkspace/CMakeLists.txt
+++ b/workspace/libs/kworkspace/CMakeLists.txt
@@ -5,9 +5,10 @@ set(kworkspace_LIB_SRCS kdisplaymanager.cpp
                         screenpreviewwidget.cpp
    )
 
-if(NOT WIN32)
+# only for X11 as kworkspace stores into a X11 session
+if(Q_WS_X11)
 	list(APPEND kworkspace_LIB_SRCS kworkspace.cpp)
-endif(NOT WIN32)
+endif(Q_WS_X11)
 
 set(ksmserver_xml  ${KDEBASE_WORKSPACE_SOURCE_DIR}/ksmserver/org.kde.KSMServerInterface.xml)
  qt4_add_dbus_interface( kworkspace_LIB_SRCS ${ksmserver_xml} ksmserver_interface )
@@ -35,8 +36,8 @@ install( FILES kdisplaymanager.h
                kwindowlistmenu.h
          DESTINATION ${INCLUDE_INSTALL_DIR}/kworkspace COMPONENT Devel )
 
-if(NOT WIN32)
+if(Q_WS_X11)
 	install( FILES 
                kworkspace.h
          DESTINATION ${INCLUDE_INSTALL_DIR}/kworkspace COMPONENT Devel )
-endif(NOT WIN32)
+endif(Q_WS_X11)
diff --git a/workspace/libs/kworkspace/kwindowlistmenu.cpp \
b/workspace/libs/kworkspace/kwindowlistmenu.cpp index c9a9795..99db261 100644
--- a/workspace/libs/kworkspace/kwindowlistmenu.cpp
+++ b/workspace/libs/kworkspace/kwindowlistmenu.cpp
@@ -29,7 +29,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE \
SOFTWARE.  #include <QtGui/QApplication>
 #include <QtGui/QDesktopWidget>
 #include <QtGui/QPainter>
+#ifdef Q_WS_X11
 #include <QtGui/QX11Info>
+#endif
 
 #include <QtDBus/QtDBus>
 #include <klocale.h>
@@ -71,7 +73,7 @@ KWindowListMenu::~KWindowListMenu()
 
 static bool standaloneDialog( const KWindowInfo* info, const QList<KWindowInfo*>& \
list )  {
-#ifndef Q_WS_WIN
+#ifdef Q_WS_X11
   WId group = info->groupLeader();
 
   if ( group == 0 )
-- 
1.6.3.1


["0004-Disabled-xrandr-extension-for-OSX-in-solid-powermana.patch" (text/plain)]

> From dec0a82eb799deb6b6f8933b376c913449fc79df Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Wed, 27 May 2009 17:28:56 +0200
Subject: [PATCH 04/14] Disabled xrandr extension for OSX in solid powermanager

---
 workspace/libs/solid/control/powermanager.cpp      |    8 ++++++--
 .../libs/solid/control/powermanager_randr.cpp      |    2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/workspace/libs/solid/control/powermanager.cpp \
b/workspace/libs/solid/control/powermanager.cpp index 02b04dc..545c3ae 100644
--- a/workspace/libs/solid/control/powermanager.cpp
+++ b/workspace/libs/solid/control/powermanager.cpp
@@ -25,7 +25,9 @@
 #include "ifaces/powermanager.h"
 #include <kdebug.h>
 #include <kglobal.h>
+#ifdef Q_WS_X11
 #include <QX11Info>
+#endif
 
 K_GLOBAL_STATIC(Solid::Control::PowerManagerPrivate, globalPowerManager)
 
@@ -148,7 +150,9 @@ Solid::Control::PowerManager::BrightnessControlsList \
                Solid::Control::PowerManage
                       Solid::Control::PowerManager::BrightnessControlsList(), \
brightnessControlsAvailable());  }
 
+#ifdef Q_WS_X11
 extern float xrandr_brightlight(Display *dpy, long new_value = -1);
+#endif
 
 bool Solid::Control::PowerManager::setBrightness(float brightness, const QString \
&device)  {
@@ -157,7 +161,7 @@ bool Solid::Control::PowerManager::setBrightness(float \
                brightness, const QString
         Solid::Control::PowerManager::BrightnessControlsList controls = \
brightnessControlsAvailable();  if(controls.size() == 0)
         {
-#ifdef Q_WS_WIN
+#ifndef Q_WS_X11
             return false;
 #else
             return ( xrandr_brightlight( QX11Info::display(), brightness ) >= 0 );
@@ -187,7 +191,7 @@ float Solid::Control::PowerManager::brightness(const QString \
                &device)
         Solid::Control::PowerManager::BrightnessControlsList controls = \
brightnessControlsAvailable();  if(controls.size() == 0)
         {
-#ifdef Q_WS_WIN
+#ifndef Q_WS_X11
             return false;
 #else
             return xrandr_brightlight( QX11Info::display() );
diff --git a/workspace/libs/solid/control/powermanager_randr.cpp \
b/workspace/libs/solid/control/powermanager_randr.cpp index bfca494..bb33199 100644
--- a/workspace/libs/solid/control/powermanager_randr.cpp
+++ b/workspace/libs/solid/control/powermanager_randr.cpp
@@ -36,7 +36,7 @@ float xrandr_brightlight(Display *dpy, long new_value = -1)
 
     ( void )new_value;
 
-#if defined( HAS_RANDR_1_2 )
+#if defined( HAS_RANDR_1_2 ) && defined( Q_WS_X11 )
     int  major, minor;
     if (!XRRQueryVersion (dpy, &major, &minor))
         return -1;
-- 
1.6.3.1


["0005-Don-t-build-all-submodules-for-OSX.patch" (text/plain)]

>From 721bf8f23fb3a9db7c837ef769008ae8c572a8b5 Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Wed, 27 May 2009 17:57:28 +0200
Subject: [PATCH 05/14] Don't build all submodules for OSX

 * most of the modules excluded for OSX are heavy dependend on X11
---
 workspace/kcontrol/CMakeLists.txt |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/workspace/kcontrol/CMakeLists.txt b/workspace/kcontrol/CMakeLists.txt
index ab123a6..e50aa8c 100644
--- a/workspace/kcontrol/CMakeLists.txt
+++ b/workspace/kcontrol/CMakeLists.txt
@@ -14,13 +14,15 @@ if(X11_Xkb_FOUND)
     add_subdirectory( keyboard )
 endif(X11_Xkb_FOUND)
 
-if(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
 add_subdirectory( bell )
 add_subdirectory( input )
 add_subdirectory( kdm )
 add_subdirectory( energy )
 add_subdirectory( access )
 add_subdirectory( screensaver )
+endif(NOT WIN32 AND NOT APPLE)
+if(NOT WIN32)
 add_subdirectory( dateandtime )
 add_subdirectory( autostart )
 endif(NOT WIN32)
@@ -40,10 +42,10 @@ endif(X11_Xinerama_FOUND)
 
 add_subdirectory( hardware )
 
-if(FONTCONFIG_FOUND AND FREETYPE_FOUND AND NOT WIN32)
+if(FONTCONFIG_FOUND AND FREETYPE_FOUND AND NOT WIN32 AND NOT APPLE)
     add_subdirectory( fonts )
     add_subdirectory( kfontinst )
-endif(FONTCONFIG_FOUND AND FREETYPE_FOUND AND NOT WIN32)
+endif(FONTCONFIG_FOUND AND FREETYPE_FOUND AND NOT WIN32 AND NOT APPLE)
 
 message(STATUS "${CMAKE_CURRENT_SOURCE_DIR}: skipped subdir $(KSMCARD_SUBDIR)")
 
-- 
1.6.3.1



["0006-Exclude-parts-of-kmenuedit-dependent-of-KHotKeys.patch" (text/plain)]

> From 0685de8c3cc4859881f3e7a9826d6e3a740af799 Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Wed, 27 May 2009 18:00:31 +0200
Subject: [PATCH 06/14] Exclude parts of kmenuedit dependent of KHotKeys

 * KHotKeys is only available with X11, so exclude those bits on OSX
---
 workspace/kmenuedit/CMakeLists.txt |   12 ++++++------
 workspace/kmenuedit/basictab.cpp   |    6 +++---
 workspace/kmenuedit/main.cpp       |    4 ++--
 workspace/kmenuedit/menuinfo.cpp   |    8 ++++----
 4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/workspace/kmenuedit/CMakeLists.txt b/workspace/kmenuedit/CMakeLists.txt
index 077f901..53834bc 100644
--- a/workspace/kmenuedit/CMakeLists.txt
+++ b/workspace/kmenuedit/CMakeLists.txt
@@ -3,19 +3,19 @@ add_subdirectory( pixmaps )
 add_definitions (-DQT3_SUPPORT -DQT3_SUPPORT_WARNINGS)
 
 set(kmenueditcommon_STAT_SRCS preferencesdlg.cpp klinespellchecking.cpp basictab.cpp \
                treeview.cpp kmenuedit.cpp menufile.cpp menuinfo.cpp )
-if(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
 set(kmenueditcommon_STAT_SRCS ${kmenueditcommon_STAT_SRCS} khotkeys.cpp)
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
 ########### next target ###############
 
 qt4_add_dbus_adaptor( kmenueditcommon_STAT_SRCS org.kde.kmenuedit.xml kmenuedit.h \
KMenuEdit)  
-if(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
 qt4_add_dbus_interface(
     kmenueditcommon_STAT_SRCS
     ${CMAKE_CURRENT_BINARY_DIR}/../khotkeys/app/org.kde.khotkeys.xml
     khotkeys_interface)
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
 
 set(kmenuedit_KDEINIT_SRCS main.cpp ${kmenueditcommon_STAT_SRCS})
 
@@ -34,9 +34,9 @@ install(TARGETS kmenuedit ${INSTALL_TARGETS_DEFAULT_ARGS})
 install( FILES kmenuedit.desktop  DESTINATION  ${XDG_APPS_INSTALL_DIR} )
 install( FILES kmenueditui.rc  DESTINATION  ${DATA_INSTALL_DIR}/kmenuedit )
 
-if(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
 add_dependencies(kdeinit_kmenuedit kded_khotkeys)
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
 
 kde4_install_icons( ${ICON_INSTALL_DIR}  )
 
diff --git a/workspace/kmenuedit/basictab.cpp b/workspace/kmenuedit/basictab.cpp
index 4612c2a..0551389 100644
--- a/workspace/kmenuedit/basictab.cpp
+++ b/workspace/kmenuedit/basictab.cpp
@@ -243,7 +243,7 @@ BasicTab::BasicTab( QWidget *parent )
     advancedLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, \
QSizePolicy::MinimumExpanding));  
     addTab(advanced, i18n("Advanced"));
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
     if (!KHotKeys::present())
         general_group_keybind->hide();
 #endif
@@ -376,7 +376,7 @@ void BasicTab::setEntryInfo(MenuEntryInfo *entryInfo)
     _iconButton->setIcon(df->readIcon());
 
     // key binding part
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
     if( KHotKeys::present())
     {
         if ( !entryInfo->shortcut().isEmpty() )
@@ -527,7 +527,7 @@ void BasicTab::slotCapturedKeySequence(const QKeySequence& seq)
     if (signalsBlocked())
        return;
     KShortcut cut(seq, QKeySequence());
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
     if (_menuEntryInfo->isShortcutAvailable( cut ) && KHotKeys::present() )
     {
        _menuEntryInfo->setShortcut( cut );
diff --git a/workspace/kmenuedit/main.cpp b/workspace/kmenuedit/main.cpp
index 13137f1..141855c 100644
--- a/workspace/kmenuedit/main.cpp
+++ b/workspace/kmenuedit/main.cpp
@@ -27,7 +27,7 @@
 #include <kaboutdata.h>
 
 #include "kmenuedit.h"
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
 #include "khotkeys.h"
 #endif
 
@@ -40,7 +40,7 @@ class KMenuApplication : public KUniqueApplication
 {
 public:
    KMenuApplication() { }
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
    virtual ~KMenuApplication() { KHotKeys::cleanup(); }
 #endif
    virtual int newInstance()
diff --git a/workspace/kmenuedit/menuinfo.cpp b/workspace/kmenuedit/menuinfo.cpp
index 9af7b0d..ad4195b 100644
--- a/workspace/kmenuedit/menuinfo.cpp
+++ b/workspace/kmenuedit/menuinfo.cpp
@@ -23,7 +23,7 @@
 #include <QRegExp>
 
 #include <kdesktopfile.h>
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
 #include <khotkeys.h>
 #endif
 #include <kstandarddirs.h>
@@ -181,7 +181,7 @@ void MenuFolderInfo::save(MenuFile *menuFile)
 {
    if (s_deletedApps)
    {
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
       // Remove hotkeys for applications that have been deleted
       for(QStringList::ConstIterator it = s_deletedApps->constBegin();
           it != s_deletedApps->constEnd(); ++it)
@@ -347,7 +347,7 @@ void MenuEntryInfo::save()
       m_desktopFile->sync();
       dirty = false;
    }
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
    if (shortcutDirty)
    {
       if( KHotKeys::present())
@@ -389,7 +389,7 @@ void MenuEntryInfo::setIcon(const QString &_icon)
 
 KShortcut MenuEntryInfo::shortcut()
 {
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
    if (!shortcutLoaded)
    {
       shortcutLoaded = true;
-- 
1.6.3.1


["0007-Don-t-build-screensaver-parts-and-KSysGuardProcessLi.patch" (text/plain)]

> From 2aa7d117898bf627caab003fb67cf2e91b9752c1 Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Wed, 27 May 2009 18:02:31 +0200
Subject: [PATCH 07/14] Don't build screensaver parts and KSysGuardProcessList parts

 * screensavers are only available with X11
 * KSysGuardProcessList is not available on OSX right now
 * KWorkSpace::requestShutDown is not ported yet to OSX
---
 workspace/krunner/CMakeLists.txt |   34 +++++++++++++++++-----------------
 workspace/krunner/krunnerapp.cpp |    6 +++---
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/workspace/krunner/CMakeLists.txt b/workspace/krunner/CMakeLists.txt
index 89b95e5..d0bed50 100644
--- a/workspace/krunner/CMakeLists.txt
+++ b/workspace/krunner/CMakeLists.txt
@@ -68,26 +68,26 @@ kde4_add_kcfg_files(krunner_SRCS ${krunner_KCFG_SRCS})
 qt4_add_dbus_adaptor(krunner_SRCS ${krunner_dbusAppXML} krunnerapp.h KRunnerApp)
 dbus_add_activation_service(dbus/org.kde.krunner.service.in)
 
-if(NOT WIN32)
-set(krunner_SRCS
-    ${krunner_SRCS}
-    startupid.cpp
-    screensaver/saverengine.cpp
-    screensaver/xautolock.cpp
-    screensaver/xautolock_diy.c
-    screensaver/xautolock_engine.c)
-
-qt4_add_dbus_adaptor(krunner_SRCS ${screensaver_dbusXML} saverengine.h SaverEngine)
-qt4_add_dbus_adaptor(krunner_SRCS ${kscreensaver_dbusXML} saverengine.h SaverEngine \
                kscreensaveradaptor KScreenSaverAdaptor)
-endif(NOT WIN32)
+if (Q_WS_X11)
+    set(krunner_SRCS
+        ${krunner_SRCS}
+        startupid.cpp
+        screensaver/saverengine.cpp
+        screensaver/xautolock.cpp
+        screensaver/xautolock_diy.c
+        screensaver/xautolock_engine.c)
+
+    qt4_add_dbus_adaptor(krunner_SRCS ${screensaver_dbusXML} saverengine.h \
SaverEngine) +    qt4_add_dbus_adaptor(krunner_SRCS ${kscreensaver_dbusXML} \
saverengine.h SaverEngine kscreensaveradaptor KScreenSaverAdaptor) +endif (Q_WS_X11)
 
 kde4_add_kdeinit_executable(krunner ${krunner_SRCS})
 
-if(NOT WIN32)
+if(Q_WS_X11)
 target_link_libraries(kdeinit_krunner kworkspace processui ${KDE4_PLASMA_LIBS} \
${KDE4_SOLID_LIBRARIES} ${KDE4_THREADWEAVER_LIBRARIES} ${X11_Xrender_LIB} \
                ${KDE4_KDEUI_LIBS}  ${KDE4_KUTILS_LIBS} ${X11_LIBRARIES})
-else(NOT WIN32)
+else(Q_WS_X11)
 target_link_libraries(kdeinit_krunner ${KDE4_PLASMA_LIBS} ${KDE4_SOLID_LIBRARIES} \
                ${KDE4_THREADWEAVER_LIBRARIES} ${KDE4_KDEUI_LIBS}  \
                ${KDE4_KUTILS_LIBS})
-endif(NOT WIN32)
+endif(Q_WS_X11)
 
 if(X11_Xss_LIB)
   target_link_libraries(kdeinit_krunner ${X11_Xss_LIB})
@@ -97,9 +97,9 @@ if(X11_Xcursor_FOUND)
   target_link_libraries(kdeinit_krunner ${X11_Xcursor_LIB})
 endif(X11_Xcursor_FOUND)
 
-if(NOT WIN32)
+if(Q_WS_X11)
 add_subdirectory( lock )
-endif(NOT WIN32)
+endif(Q_WS_X11)
 
 install(TARGETS kdeinit_krunner ${INSTALL_TARGETS_DEFAULT_ARGS} )
 install(TARGETS krunner         ${INSTALL_TARGETS_DEFAULT_ARGS} )
diff --git a/workspace/krunner/krunnerapp.cpp b/workspace/krunner/krunnerapp.cpp
index dc50f4f..8d4f3cf 100644
--- a/workspace/krunner/krunnerapp.cpp
+++ b/workspace/krunner/krunnerapp.cpp
@@ -217,7 +217,7 @@ void KRunnerApp::initializeStartupNotification()
 
 void KRunnerApp::showTaskManager()
 {
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
     //kDebug(1204) << "Launching KSysGuard...";
     KSysGuardProcessList* w = NULL;
     if (!m_tasks) {
@@ -291,7 +291,7 @@ void KRunnerApp::clearHistory()
 
 void KRunnerApp::taskDialogFinished()
 {
-#ifndef Q_WS_WIN  
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
     KConfigGroup cg = KGlobal::config()->group("TaskDialog");
     m_tasks->saveDialogSize(cg);
     KSysGuardProcessList *w = static_cast<KSysGuardProcessList *> \
(m_tasks->mainWidget()); @@ -336,7 +336,7 @@ void \
KRunnerApp::rebootWithoutConfirmation()  void KRunnerApp::logout( \
KWorkSpace::ShutdownConfirm confirm,  KWorkSpace::ShutdownType sdtype )
 {
-#ifndef Q_WS_WIN
+#if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
     if ( !KWorkSpace::requestShutDown( confirm, sdtype ) ) {
         // TODO: should we show these errors in Interface?
         KMessageBox::error( 0, i18n("Could not log out properly.\nThe session \
                manager cannot "
-- 
1.6.3.1


["0008-Exclude-plasma-applets-on-OSX-depending-on-Linux-sys.patch" (text/plain)]

>From 2918bcce1fd2c04014d68f0f0bcad75c72b33f88 Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Wed, 27 May 2009 18:09:13 +0200
Subject: [PATCH 08/14] Exclude plasma applets on OSX depending on Linux systems

 * The excluded applets are heavy dependend on Linux/X11 environment
---
 workspace/plasma/applets/CMakeLists.txt |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/workspace/plasma/applets/CMakeLists.txt b/workspace/plasma/applets/CMakeLists.txt
index 09ea876..40db949 100644
--- a/workspace/plasma/applets/CMakeLists.txt
+++ b/workspace/plasma/applets/CMakeLists.txt
@@ -15,9 +15,9 @@ if(QT_QTWEBKIT_FOUND)
    add_subdirectory(webbrowser)
 endif(QT_QTWEBKIT_FOUND)
 
-if(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
    add_subdirectory(pager)
    add_subdirectory(system-monitor)
    add_subdirectory(systemtray)
    add_subdirectory(tasks)
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
-- 
1.6.3.1



["0009-Exclude-parts-depending-on-KWorkSpace-for-OSX.patch" (text/plain)]

> From c633c82afdd0ec31a4a476f43ae332efc500e8a0 Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Wed, 27 May 2009 18:11:14 +0200
Subject: [PATCH 09/14] Exclude parts depending on KWorkSpace for OSX

 * The parts use functions from KWorkSpace not ported yet to OSX
---
 workspace/plasma/applets/kickoff/CMakeLists.txt    |    6 +++---
 .../plasma/applets/kickoff/core/itemhandlers.cpp   |    4 ++--
 .../plasma/applets/kickoff/core/leavemodel.cpp     |    4 ++--
 .../applets/kickoff/simpleapplet/simpleapplet.cpp  |    3 ++-
 4 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/workspace/plasma/applets/kickoff/CMakeLists.txt \
b/workspace/plasma/applets/kickoff/CMakeLists.txt index 98c1dcf..d33dd73 100644
--- a/workspace/plasma/applets/kickoff/CMakeLists.txt
+++ b/workspace/plasma/applets/kickoff/CMakeLists.txt
@@ -33,11 +33,11 @@ QT4_ADD_DBUS_INTERFACE(libkickoff_SRCS ${krunner_xml} \
krunner_interface)  set(ksmserver_xml \
${KDEBASE_WORKSPACE_SOURCE_DIR}/ksmserver/org.kde.KSMServerInterface.xml)  \
QT4_ADD_DBUS_INTERFACE(libkickoff_SRCS ${ksmserver_xml} ksmserver_interface)  
-if(NOT WIN32)
+if(Q_WS_X11)
     set(Kickoff_LIBS ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_SOLID_LIBS} \
                solidcontrol kworkspace)
-else(NOT WIN32)
+else(Q_WS_X11)
     set(Kickoff_LIBS ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_SOLID_LIBS} \
                solidcontrol)
-endif(NOT WIN32)
+endif(Q_WS_X11)
 if(HAVE_STRIGIDBUS)
      set ( Kickoff_LIBS ${Kickoff_LIBS} ${STRIGI_STRIGIQTDBUSCLIENT_LIBRARY} )
 endif(HAVE_STRIGIDBUS)
diff --git a/workspace/plasma/applets/kickoff/core/itemhandlers.cpp \
b/workspace/plasma/applets/kickoff/core/itemhandlers.cpp index 25de2b9..2edb6d7 \
                100644
--- a/workspace/plasma/applets/kickoff/core/itemhandlers.cpp
+++ b/workspace/plasma/applets/kickoff/core/itemhandlers.cpp
@@ -162,8 +162,8 @@ void LeaveItemHandler::logout()
         type = KWorkSpace::ShutdownTypeHalt;
     }
 
-//FIXME: the proper fix is to implement the KWorkSpace methods for Windows
-#ifndef Q_WS_WIN
+//FIXME: the proper fix is to implement the KWorkSpace methods for Windows and OSX
+#ifdef Q_WS_X11
     KWorkSpace::requestShutDown(confirm, type);
 #endif
 }
diff --git a/workspace/plasma/applets/kickoff/core/leavemodel.cpp \
b/workspace/plasma/applets/kickoff/core/leavemodel.cpp index 5be9605..5a73b53 100644
--- a/workspace/plasma/applets/kickoff/core/leavemodel.cpp
+++ b/workspace/plasma/applets/kickoff/core/leavemodel.cpp
@@ -140,8 +140,8 @@ void LeaveModel::updateModel()
     QStandardItem *systemOptions = new QStandardItem(i18n("System"));
     bool addSystemSession = false;
 
-//FIXME: the proper fix is to implement the KWorkSpace methods for Windows
-#ifndef Q_WS_WIN
+//FIXME: the proper fix is to implement the KWorkSpace methods for Windows and OSX
+#ifdef Q_WS_X11
     Solid::Control::PowerManager::SuspendMethods spdMethods = \
Solid::Control::PowerManager::supportedSuspendMethods();  if (spdMethods & \
                Solid::Control::PowerManager::Standby) {
         QStandardItem *standbyOption = createStandardItem("leave:/standby");
diff --git a/workspace/plasma/applets/kickoff/simpleapplet/simpleapplet.cpp \
b/workspace/plasma/applets/kickoff/simpleapplet/simpleapplet.cpp index \
                3b6192e..ca77d6b 100644
--- a/workspace/plasma/applets/kickoff/simpleapplet/simpleapplet.cpp
+++ b/workspace/plasma/applets/kickoff/simpleapplet/simpleapplet.cpp
@@ -657,7 +657,8 @@ void MenuLauncherApplet::toggleMenu(bool pressed)
                 leavemodel->updateModel();
                 d->addModel(leavemodel, Leave, Kickoff::MenuView::MergeFirstLevel, \
Kickoff::MenuView::Description);  } else {
-#ifndef Q_WS_WIN
+//FIXME: the proper fix is to implement the KWorkSpace methods for Windows and OSX
+#ifdef Q_WS_X11
                 Solid::Control::PowerManager::SuspendMethods spdMethods = \
Solid::Control::PowerManager::supportedSuspendMethods();  if(vtname == "Standby") {
                     if (spdMethods & Solid::Control::PowerManager::Standby)
-- 
1.6.3.1


["0010-Exclude-part-for-OSX-depending-on-KWorkSpace-functio.patch" (text/plain)]

> From 85f3b0fdb523b3c57477c26c605cd505bcbf184b Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Wed, 27 May 2009 18:12:28 +0200
Subject: [PATCH 10/14] Exclude part for OSX depending on KWorkSpace function

 * The KWorkSpace function is not yet ported to OSX
---
 workspace/plasma/applets/lock_logout/lockout.cpp |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/workspace/plasma/applets/lock_logout/lockout.cpp \
b/workspace/plasma/applets/lock_logout/lockout.cpp index 5d89def..96d645c 100644
--- a/workspace/plasma/applets/lock_logout/lockout.cpp
+++ b/workspace/plasma/applets/lock_logout/lockout.cpp
@@ -170,7 +170,8 @@ void LockOut::clickLock()
 void LockOut::clickLogout()
 {
     kDebug()<<"LockOut:: logout clicked ";
-#ifndef Q_OS_WIN
+//FIXME: the proper solution is to implement the KWorkSpace Method for Windows and \
OSX +#ifdef Q_WS_X11
     KWorkSpace::requestShutDown( KWorkSpace::ShutdownConfirmYes,
                                  KWorkSpace::ShutdownTypeDefault,
                                  KWorkSpace::ShutdownModeDefault);
-- 
1.6.3.1


["0011-Build-desktop-containment-without-KWorkSpace-parts-i.patch" (text/plain)]

> From 00efcc2fcf2ab0fd2c3f1fff67e829bb49ae5191 Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Thu, 28 May 2009 08:58:47 +0200
Subject: [PATCH 11/14] Build desktop containment without KWorkSpace parts if no X11 \
is available on OSX

 * KWorkSpace is not ported yet and must be excluded on non-X11 systems
---
 .../plasma/containments/desktop/CMakeLists.txt     |    6 +++---
 workspace/plasma/containments/desktop/desktop.cpp  |    3 ++-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/workspace/plasma/containments/desktop/CMakeLists.txt \
b/workspace/plasma/containments/desktop/CMakeLists.txt index 9ede329..cd1b4b5 100644
--- a/workspace/plasma/containments/desktop/CMakeLists.txt
+++ b/workspace/plasma/containments/desktop/CMakeLists.txt
@@ -10,11 +10,11 @@ set(screensaver_xml \
${KDEBASE_WORKSPACE_SOURCE_DIR}/krunner/dbus/org.freedesktop  \
QT4_ADD_DBUS_INTERFACE(desktop_SRCS ${screensaver_xml} screensaver_interface)  
 kde4_add_plugin(plasma_containment_desktop ${desktop_SRCS})
-if(WIN32)
+if(NOT Q_WS_X11)
 target_link_libraries(plasma_containment_desktop ${KDE4_PLASMA_LIBS} \
                ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS})
-else(WIN32)
+else(NOT Q_WS_X11)
 target_link_libraries(plasma_containment_desktop ${KDE4_PLASMA_LIBS} kworkspace \
                ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS} )
-endif(WIN32)
+endif(NOT Q_WS_X11)
 
 install(TARGETS plasma_containment_desktop DESTINATION ${PLUGIN_INSTALL_DIR})
 install(FILES plasma-containment-desktop.desktop DESTINATION \
                ${SERVICES_INSTALL_DIR})
diff --git a/workspace/plasma/containments/desktop/desktop.cpp \
b/workspace/plasma/containments/desktop/desktop.cpp index 55212b1..ad18a00 100644
--- a/workspace/plasma/containments/desktop/desktop.cpp
+++ b/workspace/plasma/containments/desktop/desktop.cpp
@@ -308,7 +308,8 @@ void DefaultDesktop::logout()
     if (!KAuthorized::authorizeKAction("logout")) {
         return;
     }
-#ifndef Q_WS_WIN
+//FIXME: the proper solution is to implement the KWorkSpace method for Windows and \
OSX +#ifdef Q_OS_X11
     KWorkSpace::requestShutDown(KWorkSpace::ShutdownConfirmYes,
                                 KWorkSpace::ShutdownTypeDefault,
                                 KWorkSpace::ShutdownModeDefault);
-- 
1.6.3.1


["0012-Don-t-build-plasma-parts-not-ported-to-OSX-yet.patch" (text/plain)]

>From 6cef06dd7727a256934ba8aa0fb147b870621c28 Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Thu, 28 May 2009 09:12:05 +0200
Subject: [PATCH 12/14] Don't build plasma parts not ported to OSX yet

 * Exclude some dataengines, runners and shells on OSX plattform
 * They need some effort to be ported to OSX
---
 workspace/plasma/dataengines/CMakeLists.txt |    4 +++-
 workspace/plasma/runners/CMakeLists.txt     |    6 ++++--
 workspace/plasma/shells/CMakeLists.txt      |    4 ++--
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/workspace/plasma/dataengines/CMakeLists.txt b/workspace/plasma/dataengines/CMakeLists.txt
index bc8cec3..68741f7 100644
--- a/workspace/plasma/dataengines/CMakeLists.txt
+++ b/workspace/plasma/dataengines/CMakeLists.txt
@@ -30,7 +30,9 @@ endif(KDEPIMLIBS_FOUND)
 
 if(NOT WIN32)
    add_subdirectory(mouse)
+endif(NOT WIN32)
+if(NOT WIN32 AND NOT APPLE)
    add_subdirectory(systemmonitor)
    add_subdirectory(tasks)
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
 
diff --git a/workspace/plasma/runners/CMakeLists.txt b/workspace/plasma/runners/CMakeLists.txt
index 6a80cf6..e92ff6f 100644
--- a/workspace/plasma/runners/CMakeLists.txt
+++ b/workspace/plasma/runners/CMakeLists.txt
@@ -3,10 +3,12 @@ add_subdirectory(calculator)
 add_subdirectory(locations)
 add_subdirectory(places)
 add_subdirectory(services)
-if(NOT WIN32)
+if(Q_WS_X11)
 add_subdirectory(sessions)
+endif(Q_WS_X11)
+if(NOT WIN32 AND NOT APPLE)
 add_subdirectory(powerdevil)
-endif(NOT WIN32)
+endif(NOT WIN32 AND NOT APPLE)
 add_subdirectory(recentdocuments)
 add_subdirectory(shell)
 add_subdirectory(webshortcuts)
diff --git a/workspace/plasma/shells/CMakeLists.txt b/workspace/plasma/shells/CMakeLists.txt
index 22e2931..1374fe6 100644
--- a/workspace/plasma/shells/CMakeLists.txt
+++ b/workspace/plasma/shells/CMakeLists.txt
@@ -2,7 +2,7 @@ add_subdirectory(common)
 add_subdirectory(plasmoidviewer)
 add_subdirectory(desktop)
 
-if(NOT WIN32)
+if(Q_WS_X11)
    add_subdirectory(screensaver)
-endif(NOT WIN32)
+endif(Q_WS_X11)
 
-- 
1.6.3.1



["0013-Ported-desktop-shell-to-OSX.patch" (text/plain)]

> From 77a9568bd888f25b4ba222e811aa39c8b0d316cb Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Thu, 28 May 2009 09:14:58 +0200
Subject: [PATCH 13/14] Ported desktop shell to OSX

 * Implemented physical memory size query using Carbon Gestalt API
 * Excluded X11 specific parts
---
 workspace/plasma/shells/desktop/desktopview.cpp |    8 ++++----
 workspace/plasma/shells/desktop/plasmaapp.cpp   |   11 +++++++++++
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/workspace/plasma/shells/desktop/desktopview.cpp \
b/workspace/plasma/shells/desktop/desktopview.cpp index 16b852d..2ad2496 100644
--- a/workspace/plasma/shells/desktop/desktopview.cpp
+++ b/workspace/plasma/shells/desktop/desktopview.cpp
@@ -319,7 +319,7 @@ void DesktopView::toolBoxOpened()
         return;
     }
 
-#ifndef Q_WS_WIN
+#ifdef Q_WS_X11
     NETRootInfo info(QX11Info::display(), NET::Supported);
     if (!info.isSupported(NET::WM2ShowingDesktop)) {
         return;
@@ -331,7 +331,7 @@ void DesktopView::toolBoxOpened()
     connect(KWindowSystem::self(), SIGNAL(activeWindowChanged(WId)),
             this, SLOT(showDesktopUntoggled()));
 
-#ifndef Q_WS_WIN
+#ifdef Q_WS_X11
     info.setShowingDesktop(true);
 #endif
 }
@@ -342,7 +342,7 @@ void DesktopView::toolBoxClosed()
         return;
     }
 
-#ifndef Q_WS_WIN
+#ifdef Q_WS_X11
     NETRootInfo info(QX11Info::display(), NET::Supported);
     if (!info.isSupported(NET::WM2ShowingDesktop)) {
         return;
@@ -355,7 +355,7 @@ void DesktopView::toolBoxClosed()
                this, SLOT(showDesktopUntoggled()));
     connect(c, SIGNAL(toolBoxToggled()), this, SLOT(toolBoxOpened()));
 
-#ifndef Q_WS_WIN
+#ifdef Q_WS_X11
     info.setShowingDesktop(false);
 #endif
 }
diff --git a/workspace/plasma/shells/desktop/plasmaapp.cpp \
b/workspace/plasma/shells/desktop/plasmaapp.cpp index d65655d..66b7305 100644
--- a/workspace/plasma/shells/desktop/plasmaapp.cpp
+++ b/workspace/plasma/shells/desktop/plasmaapp.cpp
@@ -76,6 +76,10 @@
 #include <X11/extensions/Xrender.h>
 #endif
 
+#ifdef Q_OS_MAC
+#include <Carbon/Carbon.h>
+#endif
+
 PlasmaApp* PlasmaApp::self()
 {
     if (!kapp) {
@@ -158,6 +162,13 @@ PlasmaApp::PlasmaApp()
 
     memorySize = (statex.ullTotalPhys/1024) + (statex.ullTotalPageFile/1024);
 #endif
+#ifdef Q_OS_MAC
+	size_t memorySize = 0;
+	long bytes;
+	if (Gestalt(gestaltPhysicalRAMSize, &bytes) == noErr) {
+		memorySize = bytes;
+	}
+#endif
     // If you have no suitable sysconf() interface and are not FreeBSD,
     // then you are out of luck and get a compile error.
 #endif
-- 
1.6.3.1


["0014-plasmapkg-is-a-console-application-build-as-such.patch" (text/plain)]

> From c24c724783eb1581f6a71d4841ae3d045cddf267 Mon Sep 17 00:00:00 2001
From: Andreas Stricker <astricker@futurelab.ch>
Date: Thu, 28 May 2009 15:14:37 +0200
Subject: [PATCH 14/14] plasmapkg is a console application, build as such

 * provide the NOGUI flag to build as console application
---
 runtime/plasma/tools/plasmapkg/CMakeLists.txt |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/runtime/plasma/tools/plasmapkg/CMakeLists.txt \
b/runtime/plasma/tools/plasmapkg/CMakeLists.txt index 2e53841..bd1cfe3 100644
--- a/runtime/plasma/tools/plasmapkg/CMakeLists.txt
+++ b/runtime/plasma/tools/plasmapkg/CMakeLists.txt
@@ -2,7 +2,7 @@ set(plasmapkg_SRCS
     main.cpp
 )
 
-kde4_add_executable(plasmapkg ${plasmapkg_SRCS})
+kde4_add_executable(plasmapkg NOGUI ${plasmapkg_SRCS})
 
 target_link_libraries(plasmapkg ${KDE4_KDEUI_LIBS} ${KDE4_PLASMA_LIBS})
 
-- 
1.6.3.1


["signature.asc" (application/pgp-signature)]

_______________________________________________
kde-mac@kde.org
List Information: https://mail.kde.org/mailman/listinfo/kde-mac
KDE/Mac Information: http://techbase.kde.org/index.php?title=Projects/KDE_on_Mac_OS_X

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic