diff options
author | Jacek Antonelli | 2008-08-15 23:44:48 -0500 |
---|---|---|
committer | Jacek Antonelli | 2008-08-15 23:44:48 -0500 |
commit | 9b4f54c826ffa4f94efa866068c9d6ecdfb4b424 (patch) | |
tree | 2f8ae193ab487088962e628f1ee9dee2f5901f01 /linden/indra/SConstruct | |
parent | Second Life viewer sources 1.13.2.12 (diff) | |
download | meta-impy-9b4f54c826ffa4f94efa866068c9d6ecdfb4b424.zip meta-impy-9b4f54c826ffa4f94efa866068c9d6ecdfb4b424.tar.gz meta-impy-9b4f54c826ffa4f94efa866068c9d6ecdfb4b424.tar.bz2 meta-impy-9b4f54c826ffa4f94efa866068c9d6ecdfb4b424.tar.xz |
Second Life viewer sources 1.13.2.15
Diffstat (limited to 'linden/indra/SConstruct')
-rw-r--r-- | linden/indra/SConstruct | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/linden/indra/SConstruct b/linden/indra/SConstruct index d9c53b9..f94f661 100644 --- a/linden/indra/SConstruct +++ b/linden/indra/SConstruct | |||
@@ -57,7 +57,7 @@ opts.Add(EnumOption('DISTCC', 'Enabled distcc', 'yes', | |||
57 | opts.Add(EnumOption('COLORGCC', 'Enabled colorgcc', 'yes', | 57 | opts.Add(EnumOption('COLORGCC', 'Enabled colorgcc', 'yes', |
58 | allowed_values=('yes', 'no'))) | 58 | allowed_values=('yes', 'no'))) |
59 | opts.Add(EnumOption('GRID', 'Client package\'s default grid', 'default', | 59 | opts.Add(EnumOption('GRID', 'Client package\'s default grid', 'default', |
60 | allowed_values=('default', 'aditi', 'agni', 'dmz', 'durga', 'ganga', 'shakti', 'siva', 'soma', 'uma', 'vaak'))) | 60 | allowed_values=('default', 'aditi', 'agni', 'dmz', 'durga', 'firstlook', 'ganga', 'shakti', 'siva', 'soma', 'uma', 'vaak'))) |
61 | opts.Add(EnumOption('OPENSOURCE', 'Build using only non-proprietary dependencies', | 61 | opts.Add(EnumOption('OPENSOURCE', 'Build using only non-proprietary dependencies', |
62 | 'yes',# OPENSOURCE: do not edit this line | 62 | 'yes',# OPENSOURCE: do not edit this line |
63 | allowed_values=('yes', 'no'))) | 63 | allowed_values=('yes', 'no'))) |
@@ -179,7 +179,6 @@ for build_target in targets: | |||
179 | if platform == 'linux': | 179 | if platform == 'linux': |
180 | # Linux-only flags | 180 | # Linux-only flags |
181 | flags += '-DLL_LINUX=1 ' | 181 | flags += '-DLL_LINUX=1 ' |
182 | system_link_flags += '-Wl,--version-script=newview/linux_tools/hidesymbols.ver ' | ||
183 | if build_target == 'client': | 182 | if build_target == 'client': |
184 | flags += '-DAPPID=secondlife -DLL_SDL=1 -DLL_X11=1 ' | 183 | flags += '-DAPPID=secondlife -DLL_SDL=1 -DLL_X11=1 ' |
185 | flags += '-DLL_GTK=1 ' | 184 | flags += '-DLL_GTK=1 ' |
@@ -210,6 +209,17 @@ for build_target in targets: | |||
210 | # logger backtraces deteriorates. | 209 | # logger backtraces deteriorates. |
211 | strip_cmd = 'strip -S -o $TARGET $SOURCE' | 210 | strip_cmd = 'strip -S -o $TARGET $SOURCE' |
212 | 211 | ||
212 | # hidesyms_cmd is something which copies an executable while 'hiding' | ||
213 | # all of its exposed symbols except a very few desired ones. This is | ||
214 | # used mainly to hide the symbols of the many common libraries we | ||
215 | # static-link, which otherwise cause hard-to-trace fatal crashes due | ||
216 | # to clashes in the run-time symbol namespace. | ||
217 | if platform == 'linux': | ||
218 | exposed_symbols_file = 'newview/linux_tools/exposed-symbols.txt' | ||
219 | hidesyms_cmd = 'objcopy --keep-global-symbols ' + exposed_symbols_file + ' $SOURCE $TARGET' | ||
220 | else: | ||
221 | hidesyms_cmd = 'cp -f $SOURCE $TARGET' | ||
222 | |||
213 | if build_target != 'client': | 223 | if build_target != 'client': |
214 | gcc_bin = 'g++-3.3' | 224 | gcc_bin = 'g++-3.3' |
215 | 225 | ||
@@ -366,7 +376,8 @@ for build_target in targets: | |||
366 | output_crashlogger_bin = 'linux_crash_logger/linux-crash-logger-' + arch + '-bin' | 376 | output_crashlogger_bin = 'linux_crash_logger/linux-crash-logger-' + arch + '-bin' |
367 | external_libs = net_external_libs + [ 'db-4.2', 'gtk-x11-2.0' ] | 377 | external_libs = net_external_libs + [ 'db-4.2', 'gtk-x11-2.0' ] |
368 | internal_libs = [ 'llvfs', 'llmath', 'llcommon' ] | 378 | internal_libs = [ 'llvfs', 'llmath', 'llcommon' ] |
369 | create_executable(output_crashlogger_bin, 'linux_crash_logger', internal_libs + external_libs) | 379 | create_executable(output_crashlogger_bin + '-globalsyms', 'linux_crash_logger', internal_libs + external_libs) |
380 | env.Command(output_crashlogger_bin, output_crashlogger_bin + '-globalsyms', hidesyms_cmd) | ||
370 | 381 | ||
371 | create_static_module('llaudio') | 382 | create_static_module('llaudio') |
372 | create_static_module('llmedia') | 383 | create_static_module('llmedia') |
@@ -389,7 +400,8 @@ for build_target in targets: | |||
389 | 'llcharacter', 'llaudio', 'llui', 'llxml', | 400 | 'llcharacter', 'llaudio', 'llui', 'llxml', |
390 | 'llmessage', 'llvfs', 'llmath', 'llcommon' ] | 401 | 'llmessage', 'llvfs', 'llmath', 'llcommon' ] |
391 | 402 | ||
392 | create_executable(output_bin, 'newview', internal_libs + external_libs) | 403 | create_executable(output_bin + '-globalsyms', 'newview', internal_libs + external_libs) |
404 | env.Command(output_bin, output_bin + '-globalsyms', hidesyms_cmd) | ||
393 | 405 | ||
394 | if buildtype == 'releasefordownload': | 406 | if buildtype == 'releasefordownload': |
395 | 407 | ||
@@ -398,7 +410,6 @@ for build_target in targets: | |||
398 | ####################### | 410 | ####################### |
399 | 411 | ||
400 | if platform == 'linux': | 412 | if platform == 'linux': |
401 | |||
402 | env.Command(output_bin + '-stripped', output_bin, strip_cmd) | 413 | env.Command(output_bin + '-stripped', output_bin, strip_cmd) |
403 | env.Command(output_crashlogger_bin + '-stripped', output_crashlogger_bin, strip_cmd) | 414 | env.Command(output_crashlogger_bin + '-stripped', output_crashlogger_bin, strip_cmd) |
404 | manifest_file = 'linux_tools/client-manifest-' + arch | 415 | manifest_file = 'linux_tools/client-manifest-' + arch |