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

List:       kde-commits
Subject:    KDE/kdeedu/marble
From:       Nikolas Zimmermann <wildfox () kde ! org>
Date:       2007-07-11 21:09:15
Message-ID: 1184188155.195565.3162.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 686634 by wildfox:

Make a QtOnly version work on OSX with cmake. Remove old qmake stuff.
Work around a problem with cmake-2.4.6 and Qt 4.3.0.
This has been requested by Torsten.

Benoit Sigoure wrote the BuildOnOSX.sh changes - commiting for him.


 M  +35 -6     BuildOnOSX.sh  
 M  +7 -0      CMakeLists.txt  
 M  +7 -3      src/CMakeLists.txt  
 D             src/marbleosx.pro  
 M  +3 -1      src/plugins/marblewidget/MarbleWidgetPlugin.h  
 M  +3 -1      src/plugins/navigator/MarbleNavigatorPlugin.h  


--- trunk/KDE/kdeedu/marble/BuildOnOSX.sh #686633:686634
@@ -1,6 +1,35 @@
-#!/usr/bin/env bash
-cd src
-qmake -config release -spec macx-xcode marbleosx.pro
-xcodebuild
-mkdir marbleosx.app/Contents/MacOS/Resources/
-cp -R ../data/ marbleosx.app/Contents/MacOS/Resources/data/
+#! /bin/sh
+set -xe
+# Prefix can be set with: env PREFIX=/opt/local ./BuildOnOSX.sh
+prefix=${PREFIX-/usr/local}
+
+case "$prefix" in
+  [\\/]* | ?:[\\/]* ) # Absolute
+     ;;
+  *)
+     echo "'$prefix' is not an absolute path" >&2
+     exit 1
+     ;;
+esac
+
+# Find or create the build directory
+if test -f Makefile && test -f ../CMakeLists.txt; then
+  : # Nothing to do, we've been called from the build directory
+else
+  test -d build || mkdir build
+  cd build
+fi
+
+# Build
+cmake -DCMAKE_INSTALL_PREFIX="$prefix" -DQTONLY=ON ..
+make
+
+# Install
+sudo make install
+
+# Fix the resource location
+resdir="$prefix/bin/marble.app/Contents/MacOS/Resources"
+sudo mkdir -m 0755 -p "$resdir"
+sudo ln -s -f ../../../../../share/apps/marble/data "$resdir/data"
+# Fix the rights
+sudo chmod -R a+rX "$prefix/bin/marble.app" "$prefix/share/apps/marble"
--- trunk/KDE/kdeedu/marble/CMakeLists.txt #686633:686634
@@ -23,6 +23,13 @@
 if (QTONLY)
   # add a flag to be able to distinguish between qt and kde mode in the sources
   add_definitions(-DQTONLY)
+
+  # Eventually workaround FindQt4.cmake bug not finding QtDesigner includes
+  if(APPLE)
+    if (NOT DEFINED ${QT_QTDESIGNER_INCLUDE_DIR})
+        set ( QT_QTDESIGNER_INCLUDE_DIR ${QT_LIBRARY_DIR}/QtDesigner.framework/Headers )
+    endif(NOT DEFINED ${QT_QTDESIGNER_INCLUDE_DIR})
+  endif(APPLE)
 else(QTONLY)
   # search packages used by KDE
   find_package(KDE4 REQUIRED)
--- trunk/KDE/kdeedu/marble/src/CMakeLists.txt #686633:686634
@@ -111,10 +111,14 @@
   kde4_add_ui_files(marble_SRCS ${marble_UI})
 endif (QTONLY)
 
-#kde4_add_library (marble SHARED ${marble_SRCS})
 if (QTONLY)
-#  add_executable (marble WIN32 ${marble_SRCS} ${marble_HDRS})
-  add_executable (marble MACOSX_BUNDLE ${marble_SRCS})
+    if (APPLE)
+        add_executable (marble MACOSX_BUNDLE ${marble_SRCS})
+    endif (APPLE)
+
+    if (WIN32)
+        add_executable (marble WIN32 ${marble_SRCS} ${marble_HDRS})
+    endif (WIN32)
 else (QTONLY)
   kde4_add_executable (marble ${marble_SRCS} ${marble_HDRS})
 endif (QTONLY)
--- trunk/KDE/kdeedu/marble/src/plugins/marblewidget/MarbleWidgetPlugin.h #686633:686634
@@ -16,7 +16,9 @@
 #ifndef MARBLEWIDGETPLUGIN_H
 #define MARBLEWIDGETPLUGIN_H
 
-#include <QtDesigner/QDesignerCustomWidgetInterface>
+// Workaround: moc on osx is unable to find this file, when prefix with QtDesigner/
+// moc also doesn't respect Q_OS_* macros, otherwhise I could ifdef this.
+#include <QDesignerCustomWidgetInterface>
 
 class MarbleWidgetPlugin : public QObject, public QDesignerCustomWidgetInterface
 {
--- trunk/KDE/kdeedu/marble/src/plugins/navigator/MarbleNavigatorPlugin.h #686633:686634
@@ -16,7 +16,9 @@
 #ifndef MARBLENAVIGATORPLUGIN_H
 #define MARBLENAVIGATORPLUGIN_H
 
-#include <QtDesigner/QDesignerCustomWidgetInterface>
+// Workaround: moc on osx is unable to find this file, when prefix with QtDesigner/
+// moc also doesn't respect Q_OS_* macros, otherwhise I could ifdef this.
+#include <QDesignerCustomWidgetInterface>
 
 class MarbleNavigatorPlugin : public QObject, public QDesignerCustomWidgetInterface
 {
[prev in list] [next in list] [prev in thread] [next in thread] 

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