aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/cmake/UI.cmake
diff options
context:
space:
mode:
authorAleric Inglewood2010-10-08 22:43:56 +0200
committerAleric Inglewood2010-10-08 23:08:31 +0200
commita3cffd06a0e7aa92e1b6c28e7bad655b7085296c (patch)
tree9a75a4f34df3cb8963a1f1e9d130164011f49756 /linden/indra/cmake/UI.cmake
parentMerge remote branch 'remote-twoway/weekly' into weekly (diff)
downloadmeta-impy-a3cffd06a0e7aa92e1b6c28e7bad655b7085296c.zip
meta-impy-a3cffd06a0e7aa92e1b6c28e7bad655b7085296c.tar.gz
meta-impy-a3cffd06a0e7aa92e1b6c28e7bad655b7085296c.tar.bz2
meta-impy-a3cffd06a0e7aa92e1b6c28e7bad655b7085296c.tar.xz
RED-429: Link against prebuilt libraries / always use gtk-related system libs (linux)
This patch fixes the problem that there were no 'developer' symlinks for the prebuilt packages (which is not needed for runtim), causing the casual user that tries to compile the viewer on linux (without using --standalone) to link against their system libs (while using the header files of the prebuilt versions), often causing linker errors. It also fixes the fact that a few libraries were completely missing, most notably the dbusglib package only had header files and not a library at all! libgio and libpangocairo where missing from the link command line so that the wrong libraries were picked up, if any at all. Finally, the last GTK related prebuilt libraries have simply been removed from the packaging: linux has those installed (or else the users will know how to install them as soon as they see that the viewer complains about a missing library). This is much more stable, as all those libraries more or less form a whole. Or rather, the libraries that use glib, as especially that one gives a problem at the moment since the latest glib has new g_malloc_n functions that don't exist in the prebuilt glib. Note the difference between a USER compiling her own viewer, and the imprudence team compiling a release: When the imprudence team compiles a release we need to create a portable binary that runs on many versions of linux. In order to achieve that we link against "old" library versions, so that the viewer still works on old operating systems, and (hopefull) also on newer systems, since libraries with the same SONAME are backwards compatible. With g_malloc_n as example: our viewer binary doesn't use that function, so a user that links with their own glib will never have a problem, whether or not his library provides this function. On the other hand, when a user gets the sources and compiles his own viewer he wants to use the LATEST library versions: his own operating system ones. The best way to achieve this is to configure with --standalone, but that currently demands that ALL libraries are installed on her system, including a few very-hard-to-get libraries. If she therefore chooses to configure without --standalone, she suddenly gets all the old library versions, forcing her to at least link against those at compile time (in order to minimize the risk of version incompatibilities). A better solution for the do-it-yourself user would be to have a --semi-standalone configuration that only uses the hard-to-get prebuilt libs and further uses as much the operating system libraries as possible. For most of the hard-to-get libraries this is no problem since they all only depend on libc and similar stable ABI libs.
Diffstat (limited to 'linden/indra/cmake/UI.cmake')
-rw-r--r--linden/indra/cmake/UI.cmake2
1 files changed, 2 insertions, 0 deletions
diff --git a/linden/indra/cmake/UI.cmake b/linden/indra/cmake/UI.cmake
index b70a531..9d068c4 100644
--- a/linden/indra/cmake/UI.cmake
+++ b/linden/indra/cmake/UI.cmake
@@ -39,6 +39,7 @@ else (STANDALONE)
39 gdk-x11-2.0 39 gdk-x11-2.0
40 gdk_pixbuf-2.0 40 gdk_pixbuf-2.0
41 glib-2.0 41 glib-2.0
42 gio-2.0
42 gmodule-2.0 43 gmodule-2.0
43 gobject-2.0 44 gobject-2.0
44 gthread-2.0 45 gthread-2.0
@@ -48,6 +49,7 @@ else (STANDALONE)
48 pangox-1.0 49 pangox-1.0
49 pangoxft-1.0 50 pangoxft-1.0
50 pixman-1 51 pixman-1
52 pangocairo-1.0
51 ) 53 )
52 endif (LINUX) 54 endif (LINUX)
53 55