Linux 64-bit build support.

Moved viewer_manifest.py linux packaging around and use if self.is_packaging_viewer() in order to not break standalone
builds.
meow-7.2.2
Techwolf Lupindo 2014-02-16 21:13:41 -05:00
parent dfe6e2d4d8
commit 9a9a40cb91
1 changed files with 103 additions and 78 deletions

View File

@ -1210,6 +1210,87 @@ class LinuxManifest(ViewerManifest):
print "Skipping llcommon.so (assuming llcommon was linked statically)"
self.path("featuretable_linux.txt")
if self.is_packaging_viewer():
if self.prefix("../packages/lib/release", dst="lib"):
self.path("libapr-1.so")
self.path("libapr-1.so.0")
self.path("libapr-1.so.0.4.5")
self.path("libaprutil-1.so")
self.path("libaprutil-1.so.0")
self.path("libaprutil-1.so.0.4.1")
self.path("libboost_context-mt.so.*")
self.path("libboost_filesystem-mt.so.*")
self.path("libboost_program_options-mt.so.*")
self.path("libboost_regex-mt.so.*")
self.path("libboost_signals-mt.so.*")
self.path("libboost_system-mt.so.*")
self.path("libboost_thread-mt.so.*")
self.path("libboost_chrono-mt.so.*") #<FS:TM> FS spcific
self.path("libboost_date_time-mt.so.*") #<FS:TM> FS spcific
self.path("libboost_wave-mt.so.*") #<FS:TM> FS spcific
self.path("libcollada14dom.so")
self.path("libdb*.so")
self.path("libcrypto.so.*")
self.path("libexpat.so.*")
self.path("libssl.so.1.0.0")
self.path("libGLOD.so")
self.path("libminizip.so")
self.path("libuuid.so*")
self.path("libSDL-1.2.so.*")
self.path("libdirectfb-1.*.so.*")
self.path("libfusion-1.*.so.*")
self.path("libdirect-1.*.so.*")
self.path("libopenjpeg.so*")
self.path("libdirectfb-1.4.so.5")
self.path("libfusion-1.4.so.5")
self.path("libdirect-1.4.so.5*")
self.path("libhunspell-1.3.so*")
self.path("libalut.so")
self.path("libpng15.so.15") #use provided libpng to workaround incompatible system versions on some distros
self.path("libpng15.so.15.13.0") #use provided libpng to workaround incompatible system versions on some distros
self.path("libopenal.so", "libopenal.so.1")
#self.path("libnotify.so.1.1.2", "libnotify.so.1") # LO - uncomment when testing libnotify(growl) on linux
self.path("libpangox-1.0.so*")
# KLUDGE: As of 2012-04-11, the 'fontconfig' package installs
# libfontconfig.so.1.4.4, along with symlinks libfontconfig.so.1
# and libfontconfig.so. Before we added support for library-file
# wildcards, though, this self.path() call specifically named
# libfontconfig.so.1.4.4 WITHOUT also copying the symlinks. When I
# (nat) changed the call to self.path("libfontconfig.so.*"), we
# ended up with the libfontconfig.so.1 symlink in the target
# directory as well. But guess what! At least on Ubuntu 10.04,
# certain viewer fonts look terrible with libfontconfig.so.1
# present in the target directory. Removing that symlink suffices
# to improve them. I suspect that means we actually do better when
# the viewer fails to find our packaged libfontconfig.so*, falling
# back on the system one instead -- but diagnosing and fixing that
# is a bit out of scope for the present project. Meanwhile, this
# particular wildcard specification gets us exactly what the
# previous call did, without having to explicitly state the
# version number.
self.path("libfontconfig.so.*.*")
try:
self.path("libtcmalloc.so*") #formerly called google perf tools
pass
except:
print "tcmalloc files not found, skipping"
pass
self.end_prefix("lib")
# Vivox runtimes
# Currentelly, the 32-bit ones will work with a 64-bit client.
if self.prefix(src="../packages/lib/release", dst="bin"):
self.path("SLVoice")
self.end_prefix()
if self.prefix(src="../packages/lib/release", dst="lib"):
self.path("libortp.so")
self.path("libsndfile.so.1")
#self.path("libvivoxoal.so.1") # no - we'll re-use the viewer's own OpenAL lib
self.path("libvivoxsdk.so")
self.path("libvivoxplatform.so")
self.end_prefix("lib")
def copy_finish(self):
# Force executable permissions to be set for scripts
@ -1278,70 +1359,10 @@ class Linux_i686_Manifest(LinuxManifest):
def construct(self):
super(Linux_i686_Manifest, self).construct()
if self.prefix("../packages/lib/release", dst="lib"):
self.path("libapr-1.so")
self.path("libapr-1.so.0")
self.path("libapr-1.so.0.4.5")
self.path("libaprutil-1.so")
self.path("libaprutil-1.so.0")
self.path("libaprutil-1.so.0.4.1")
self.path("libboost_context-mt.so.*")
self.path("libboost_filesystem-mt.so.*")
self.path("libboost_program_options-mt.so.*")
self.path("libboost_regex-mt.so.*")
self.path("libboost_signals-mt.so.*")
self.path("libboost_system-mt.so.*")
self.path("libboost_thread-mt.so.*")
self.path("libboost_chrono-mt.so.*") #<FS:TM> FS spcific
self.path("libboost_date_time-mt.so.*") #<FS:TM> FS spcific
self.path("libboost_wave-mt.so.*") #<FS:TM> FS spcific
self.path("libcollada14dom.so")
self.path("libdb*.so")
self.path("libcrypto.so.*")
self.path("libexpat.so.*")
self.path("libssl.so.1.0.0")
self.path("libGLOD.so")
self.path("libminizip.so")
self.path("libuuid.so*")
self.path("libSDL-1.2.so.*")
self.path("libdirectfb-1.*.so.*")
self.path("libfusion-1.*.so.*")
self.path("libdirect-1.*.so.*")
self.path("libopenjpeg.so*")
self.path("libdirectfb-1.4.so.5")
self.path("libfusion-1.4.so.5")
self.path("libdirect-1.4.so.5*")
self.path("libhunspell-1.3.so*")
self.path("libalut.so")
self.path("libpng15.so.15") #use provided libpng to workaround incompatible system versions on some distros
self.path("libpng15.so.15.13.0") #use provided libpng to workaround incompatible system versions on some distros
self.path("libopenal.so", "libopenal.so.1")
if self.is_packaging_viewer():
if self.prefix("../packages/lib/release", dst="lib"):
self.path("libopenal.so", "libvivoxoal.so.1") # vivox's sdk expects this soname
#self.path("libnotify.so.1.1.2", "libnotify.so.1") # LO - uncomment when testing libnotify(growl) on linux
# KLUDGE: As of 2012-04-11, the 'fontconfig' package installs
# libfontconfig.so.1.4.4, along with symlinks libfontconfig.so.1
# and libfontconfig.so. Before we added support for library-file
# wildcards, though, this self.path() call specifically named
# libfontconfig.so.1.4.4 WITHOUT also copying the symlinks. When I
# (nat) changed the call to self.path("libfontconfig.so.*"), we
# ended up with the libfontconfig.so.1 symlink in the target
# directory as well. But guess what! At least on Ubuntu 10.04,
# certain viewer fonts look terrible with libfontconfig.so.1
# present in the target directory. Removing that symlink suffices
# to improve them. I suspect that means we actually do better when
# the viewer fails to find our packaged libfontconfig.so*, falling
# back on the system one instead -- but diagnosing and fixing that
# is a bit out of scope for the present project. Meanwhile, this
# particular wildcard specification gets us exactly what the
# previous call did, without having to explicitly state the
# version number.
self.path("libfontconfig.so.*.*")
try:
self.path("libtcmalloc.so*") #formerly called google perf tools
pass
except:
print "tcmalloc files not found, skipping"
pass
try:
self.path("libfmodex-*.so")
@ -1350,7 +1371,7 @@ class Linux_i686_Manifest(LinuxManifest):
except:
print "Skipping libfmodex.so - not found"
pass
self.end_prefix("lib")
self.prefix(src="../packages/lib/release/x86", dst="lib")
@ -1362,25 +1383,29 @@ class Linux_i686_Manifest(LinuxManifest):
self.end_prefix("lib")
# Vivox runtimes
if self.prefix(src="../packages/lib/release", dst="bin"):
self.path("SLVoice")
self.end_prefix()
if self.prefix(src="../packages/lib/release", dst="lib"):
self.path("libortp.so")
self.path("libsndfile.so.1")
#self.path("libvivoxoal.so.1") # no - we'll re-use the viewer's own OpenAL lib
self.path("libvivoxsdk.so")
self.path("libvivoxplatform.so")
self.end_prefix("lib")
self.strip_binaries()
class Linux_x86_64_Manifest(LinuxManifest):
def construct(self):
super(Linux_x86_64_Manifest, self).construct()
if self.is_packaging_viewer():
if self.prefix("../packages/lib/release", dst="lib"):
# vivox 32-bit hack.
# one has to extract libopenal.so from the 32-bit openal package, or official LL viewer, and rename it to libopenal32.so
# and place it in the prebuilt lib/release directory
self.path("libopenal32.so", "libvivoxoal.so.1") # vivox's sdk expects this soname
try:
self.path("libfmodex64-*.so")
self.path("libfmodex64.so")
pass
except:
print "Skipping libfmodex.so - not found"
pass
self.end_prefix("lib")
# support file for valgrind debug tool
self.path("secondlife-i686.supp")