Basically, cmake doesn't support linking static libs into a shared lib.
The correct way is to just specify source files in subdirectories
directly as source files of the shared library. This patch changes that.
Also, after this commit, when DEBUG_CURLIO is defined, every call to
libcurl is printed to llinfos (or to dc::curl when using libcwd).
Resolved Conflicts:
indra/newview/llviewermedia.cpp
indra/plugins/base_media/CMakeLists.txt
Trivial fix for indra/newview/llviewermedia.cpp.
Moved 'prepare' dependency from base_media to
base_basic because media already depends on basic.
This commit contains all changes, except those in indra/media_plugins
(which was renamed to indra/plugins) and indra/llplugin.
However, it does contain the (new) file
indra/plugins/filepicker/basic_plugin_filepicker.cpp
This patch has no influence if you don't have libcwd installed.
Note that libcwd (http://libcwd.sourceforge.net/) is only
available for linux.
A default compile of libcwd does memory allocation tracking,
which is too slow for everyday usage of the viewer (usable,
but notably slower) and we don't need that. Configure your
libcwd as follows:
./configure --prefix=/sl/usr --disable-alloc --enable-optimize
Or whatever prefix you prefer (add --enable-maintainer-mode
if you're compiling it from the SVN repository), add
--disable-nonthreading to compile twice as fast.
If you have it installed you can activate it's use by setting a
few environment variables:
CXXFLAGS="$(pkg-config --cflags libcwd_r)"
LDFLAGS="$(pkg-config --libs libcwd_r) -lpthread"
and then reconfiguring the viewer.
The -lpthread is needed when using ld.gold, however, if you
leave it out you might get an LDFLAGS that ends on trailing
whitespaces, which doesn't work for some reason.
Also, if you installed it in a non-standard place (/sl/usr
above) then you need this to run the viewer (and tests):
export LD_LIBRARY_PATH="/sl/usr/lib"
-Added ReleaseSSE2 as a build target.
-LL_VECTORIZE is silly and breaks things...
-Small little tweaks.
I have not tested if the cmake alterations work under linux and darwin. Hollar if broken.