Build problems and solutions

Alexander Neundorf neundorf at kde.org
Sun Sep 16 21:13:38 BST 2007


On Tuesday 04 September 2007 03:36, David Faure wrote:
> On Tuesday 28 August 2007, Mosfet wrote:
> > 1) You need to reinstall Blitz from kdesupport.
> > 2) There is an updated FindBlitz cmake module in kdelibs/cmake/modules.
> > This needs to be installed.
> > 3) You need to delete your CMake cache file in your build directory so
> > the updated FindBlitz will run.
>
> Blitz is still not found for me -- because I install kdesupport into its
> own prefix. FindBlitz seems to expect blitz to be installed into the same
> dir as kdelibs, or in /usr, but that's not the case. Strigi supports an env
> var (STRIGI_HOME) so that it can be installed anywhere; ok if I add an env
> var for blitz? (BLITZDIR for consistency with Qt, KDE, etc. or BLITZ_HOME
> for consistency with strigi?) Or should that be QIMAGEBLITZDIR? :)

This doesn't really scale, we shouldn't add an extra env. variable for every 
library.

The following options:
-use "make edit_cache" or ccmake (or a yet unwritten Qt>=4.3 based cmake GUI) 
to set the QIMAGEBLITZ_* variables or use -D... from the command line

-since this is a lot of typing, add something to cmake so we can 
define "command line shortcuts", so you could use e.g. --prefix=/opt instead 
of -DCMAKE_INSTALL_PREFIX:STRING=/opt

-use cmake cvs and set -DCMAKE_FIND_ROOT_PATH=... to your additional 
installation prefixes (which will do more than what you want, it will use 
these dirs as prefix for all other search dirs, so by setting this 
to /home/david/mystuff it will search e.g. /home/david/mystuff/include for 
headers and /home/david/mystuff/lib) for libs

-have Blitz install a BlitzConfig.cmake to Blitz, and set Blitz_DIR to the 
location where this file is

-instead of an environment variable use a cmake variable as base dir:

# the following is required to make sure that the variable ends up in the 
# cmake cache with all cmake versions
set(QIMAGEBLITZDIR "/usr" CACHE FILEPATH "blitz install dir")

find_path(BLITZ_INCLUDES
  NAMES
  qimageblitz.h
  PATH_SUFFIXES qimageblitz
  PATHS
  ${QIMAGEBLITZDIR}/include
  ${KDE4_INCLUDE_DIR}
  ${INCLUDE_INSTALL_DIR}
  )

This has the advantage over the environment variable that it appears in the 
cache/ccmake/"make edit_cache".

- there is a bug report about improving cmake's FIND_PACKAGE(), but I don't 
remember the number right now...

Bye
Alex




More information about the kde-core-devel mailing list