[CMake] Phonon with an older version of CMake

Bill Hoffman bill.hoffman at kitware.com
Tue Oct 28 19:16:54 EDT 2008


Alexander Solis wrote:
> You are correct, for phonon 2.6 works fine, but if I use 2.6 for the 
> main project there are other thinks that get broken during compilation 
> and we are very close to a deadline with not too much time in our hands :(
> 

-Wno-dev
> Here are some of the warnings I get when running the program with 
> CMake2.6 (maybe they are easy to fix). The problem is that I tried 
> setting the policy but I am kind of loss trying to find the correct 
> CMakeLists.txt file that I should modify.
> 
> 1)
> WARNING: you are using the obsolete 'PKGCONFIG' macro use FindPkgConfig
> 
This is just a warning, that you should use the new module, but the old 
one has not changed.
> 2)
> CMake Warning (dev) at owbuild/owbuild/OWCreateBinary.cmake:53 
> (add_library):
>   Policy CMP0002 is not set: Logical target names must be globally unique.
>   Run "cmake --help-policy CMP0002" for policy details.  Use the 
> cmake_policy
>   command to set the policy and suppress this warning.
> Call Stack (most recent call first):
>   wifo/phapi/ilbc/CMakeLists.txt:37 (ow_create_binary)
> This warning is for project developers.  Use -Wno-dev to suppress it.

This means that you have an add_library, or add_executable that has the 
same name.

> 
> 3)
> CMake Warning (dev) at owbuild/owbuild/OWCreateBinary.cmake:112 
> (add_executable):
>   Policy CMP0003 should be set before this line.  Add code such as
> 
>     if(COMMAND cmake_policy)
>       cmake_policy(SET CMP0003 NEW)
>     endif(COMMAND cmake_policy)
> 
>   as early as possible but after the most recent call to
>   cmake_minimum_required or cmake_policy(VERSION).  This warning appears
>   because target "VoxOx" links to some libraries for which the linker must
>   search:
> 

If you set cmake 2.6 as the minimum
>     resolv, gnutls
> 
>   and other libraries with known full path:
> 
>    ....


>   Some of these libraries may not be found correctly.
> Call Stack (most recent call first):
>   wengophone/src/presentation/qt/CMakeLists.txt:671 (ow_create_binary)
> 
> 
> *After running the program with CMake2.6 I run make and get the 
> following error:*
> *
> Undefined symbols:
>   "_inflateEnd", referenced from:
>       _decode_frame in libavcodec.a(pngdec.o)
>   "_inflateInit_", referenced from:
>       _decode_frame in libavcodec.a(pngdec.o)
>   "_xvid_plugin_2pass2", referenced from:
>       _ff_xvid_rate_control_init in libavcodec.a(libxvid_rc.o)
>       _ff_xvid_rate_estimate_qscale in libavcodec.a(libxvid_rc.o)
>       _ff_xvid_rate_estimate_qscale in libavcodec.a(libxvid_rc.o)
>       _ff_xvid_rate_control_uninit in libavcodec.a(libxvid_rc.o)
>   "_inflate", referenced from:
>       _decode_frame in libavcodec.a(pngdec.o)
> ld: symbol(s) not found

These errors do not have to do with any of the above warnings.   You 
might want to try the CMake 2.6 branch of CMake.   I think there are 
some changes to the link line stuff that may fix this problem.  Check 
out this branch: CMake-2-6.


Working 2.6:

/usr/bin/c++    -Wl,-search_paths_first -headerpad_max_install_names 
-fPIC CMakeFiles/video.dir/mainwindow.o CMakeFiles/video.dir/main.o 
CMakeFiles/video.dir/moc_mainwindow.o  -o video 
-F/usr/local/Trolltech/Qt-4.4.0/lib -framework phonon -framework QtGui 
-framework Carbon -framework AppKit -framework QtDBus -framework QtXml 
-framework QtCore /usr/lib/libz.dylib -framework ApplicationServices


Broken 2.4:
/usr/bin/c++     -headerpad_max_install_names -fPIC 
"CMakeFiles/video.dir/mainwindow.o" "CMakeFiles/video.dir/main.o" 
"CMakeFiles/video.dir/moc_mainwindow.o"   -o video 
-F/usr/local/Trolltech/Qt-4.4.0/lib -framework QtGui -framework Carbon 
-framework QuickTime -framework QtCore -lz -framework ApplicationServices

The broken 2.4 is missing -framework phonon.  I am pretty sure FindQt4 
did not have support for that in 2.4.

-Bill


More information about the CMake mailing list