[Digikam-devel] marblewidget again... This time under MACOSX

Gilles Caulier caulier.gilles at gmail.com
Wed Apr 13 16:42:54 BST 2011


Hi all,

i just upgrated KDE under MacOSX using Macport. The version is 4.6.1 :

MacBook-de-Agnes:~ agnes$ sudo port info kdelibs4
kdelibs4 @4.6.1 (kde, kde4)
Variants:             debug, docs, universal

Description:          Core libraries for KDE4 applications to function
Homepage:             http://www.kde.org

Build Dependencies:   cmake, pkgconfig, automoc, flex, gmake
Library Dependencies: qt4-mac, phonon, bzip2, zlib, soprano,
cyrus-sasl2, strigi, gettext, pcre, shared-mime-info, giflib, tiff,
jpeg, libpng, jasper, openexr, expat, libart_lgpl,
                      libidn, libiconv, glib2, openssl, enchant,
aspell, aspell-dict-en, attica, liblzma, avahi, qca, dbusmenu-qt,
docbook-xml, docbook-xsl, grantlee, kerberos5,
                      shared-desktop-ontologies
Conflicts with:       kdelibs3
Platforms:            darwin
License:              unknown
Maintainers:          snc at macports.org, sharky at macports.org,
michaelld at macports.org

kdeedu still an older version, including Marble :

MacBook-de-Agnes:~ agnes$ sudo port info kdeedu4
kdeedu4 @4.6.0 (kde, kde4)
Variants:             debug, docs

Description:          Education based applications for the KDE4
platform. This includes programs such as Marble and Kalzium.
Homepage:             http://www.kde.org

Build Dependencies:   cmake, pkgconfig, automoc
Library Dependencies: qt4-mac, phonon, kdelibs4, kdebase4, ocaml,
openbabel, cfitsio, libqalculate, gsl, xplanet, libspectre, eigen,
gpsd
Platforms:            darwin
License:              unknown
Maintainers:          snc at macports.org, sharky at macports.org

When i run cmake script to configure digiKam-SC, i got this error :

-- ----------------------------------------------------------------------------------
-- Starting CMake configuration for: libkmap
-- Found Qt-Version 4.7.2
--  -> QT_QMAKE_EXECUTABLE is /opt/local/bin/qmake
--  -> QT_INCLUDE_DIR is /opt/local/include
--  -> QT_QTCORE_INCLUDE_DIR is /opt/local/include/QtCore
--  -> QT_BINARY_DIR is /opt/local/bin
--  -> QT_LIBRARY_DIR is /opt/local/lib
--  -> QT_PLUGINS_DIR is /opt/local/share/qt4/plugins
--  -> QT_MKSPECS_DIR is /opt/local/share/qt4/mkspecs
CMake Warning (dev) at
/opt/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:86
(INCLUDE):
  File /opt/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake
  includes /opt/local/share/apps/cmake/modules/CMakeParseArguments.cmake
  (found via CMAKE_MODULE_PATH) which shadows
  /opt/local/share/cmake-2.8/Modules/CMakeParseArguments.cmake.  This may
  cause errors later on .

  Policy CMP0017 is not set: Prefer files from the CMake module directory
  when including from there.  Run "cmake --help-policy CMP0017" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.
Call Stack (most recent call first):
  /opt/local/share/cmake-2.8/Modules/FindThreads.cmake:156 (INCLUDE)
  /opt/local/share/apps/cmake/modules/Qt4ConfigDependentSettings.cmake:32
(FIND_PACKAGE)
  /opt/local/share/apps/cmake/modules/FindQt4.cmake:1237 (INCLUDE)
  extra/libkmap/CMakeLists.txt:32 (FIND_PACKAGE)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at extra/libkmap/CMakeLists.txt:41 (FIND_PACKAGE):
  Could not find module FindMarble.cmake or a configuration file for package
  Marble.

  Adjust CMAKE_MODULE_PATH to find FindMarble.cmake or set Marble_DIR to the
  directory containing a CMake configuration file for Marble.  The file will
  have one of the following names:

    MarbleConfig.cmake
    marble-config.cmake

Libkmap search MarbleConfig cmake script... I can see that marble is
not detected by this script anymore, since KDE 4.6 probably, because
under Windows with KDE 4.5.4, there is no problem...

The right script is now by this script :

bash-3.2$ pwd
/opt/local/share/apps/cmake/modules

bash-3.2$ ls *Marble*
FindMarbleWidget.cmake

Which contain this code :

bash-3.2$ cat FindMarbleWidget.cmake
# - Try to find marblewidget library
# Once done this will define
#
#  MARBLEWIDGET_FOUND - system has MARBLEWIDGET library
#  LIBMARBLEWIDGET_INCLUDE_DIR - the LIBMARBLEWIDGET include directory
#  LIBMARBLEWIDGET_LIBRARY - the marblewidget library
#
#  copyright 2008 by Patrick Spendrin <ps_ml at gmx.de>
#  use this file as you like
#

if(LIBMARBLEWIDGET_INCLUDE_DIR AND LIBMARBLEWIDGET_LIBRARY)

  # Already in cache
  set(MARBLEWIDGET_FOUND TRUE)

else(LIBMARBLEWIDGET_INCLUDE_DIR AND LIBMARBLEWIDGET_LIBRARY)
  find_path(LIBMARBLEWIDGET_INCLUDE_DIR Quaternion.h PATH_SUFFIXES marble)

  if (WIN32 AND CMAKE_BUILD_TYPE_TOLOWER MATCHES debug)
         set (LIBRARY_NAME marblewidgetd)
    else(WIN32 AND CMAKE_BUILD_TYPE_TOLOWER MATCHES debug)
        set (LIBRARY_NAME marblewidget)
  endif (WIN32 AND CMAKE_BUILD_TYPE_TOLOWER MATCHES debug)
  find_library(LIBMARBLEWIDGET_LIBRARY ${LIBRARY_NAME})

  if(LIBMARBLEWIDGET_INCLUDE_DIR AND LIBMARBLEWIDGET_LIBRARY)
    set(MARBLEWIDGET_FOUND TRUE)
  endif(LIBMARBLEWIDGET_INCLUDE_DIR AND LIBMARBLEWIDGET_LIBRARY)

  if(MARBLEWIDGET_FOUND)
    if (NOT MARBLEWIDGET_FIND_QUIETLY)
      message(STATUS "Found Marble: ${LIBMARBLEWIDGET_LIBRARY}")
    endif (NOT MARBLEWIDGET_FIND_QUIETLY)
  else(MARBLEWIDGET_FOUND)
    if(MARBLEWIDGET_FIND_REQUIRED)
      message(FATAL_ERROR "Could NOT find any Marble library")
    endif(MARBLEWIDGET_FIND_REQUIRED)
  endif(MARBLEWIDGET_FOUND)

  mark_as_advanced(LIBMARBLEWIDGET_INCLUDE_DIR LIBMARBLEWIDGET_LIBRARY)
endif(LIBMARBLEWIDGET_INCLUDE_DIR AND LIBMARBLEWIDGET_LIBRARY)

As we can see in libkmap :

https://projects.kde.org/projects/kdereview/libkmap/repository/revisions/0b63454ffd1e113340c3a52f90b706f0568eea5f

Some severals changes have been done by Michael about marble find
cmake scripts, but some transition tune need to be done to work
everywhere. I'm right ?

Gilles Caulier



More information about the Digikam-devel mailing list