Commit Graph

207 Commits (82b05f1063a410ef2f8e1de5bac9f9eedcf1450c)

Author SHA1 Message Date
Beq 9dc5c99c57 Use raw strings for robust matching in python 2024-12-28 17:03:33 +00:00
Ansariel 68d82c9793 Merge branch 'release/2024.09-ExtraFPS' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llrender/llvertexbuffer.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/lltexturefetch.cpp
#	indra/newview/viewer_manifest.py
2024-11-27 19:23:33 +01:00
Brad Linden 9a29f07bb2 Convenience deployment tooling for cross-developing on "Classic Mode" machines
i.e. hardware that has a hard time running visual studio and tracy.

for example, use it by running `autobuild configure -- -DLOCAL_DIST_DIR=dist/secondlife`
and then export that directory under your build tree as a shared folder.
2024-11-22 15:30:05 -08:00
Ansariel 591c75ebaf Merge branch 'DRTVWR-600-maint-A' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llappearance/llavatarappearance.cpp
#	indra/llmath/llvolume.cpp
#	indra/llmessage/llcorehttputil.cpp
#	indra/llrender/llgl.cpp
#	indra/newview/installers/darwin/apple-notarize.sh
#	indra/newview/llappviewer.cpp
#	indra/newview/llface.cpp
#	indra/newview/llfloater360capture.cpp
#	indra/newview/llfloateremojipicker.cpp
#	indra/newview/llpanelpeople.cpp
#	indra/newview/llviewertexture.cpp
#	indra/newview/viewer_manifest.py
2024-06-10 21:53:31 +02:00
Andrey Lihatskiy c95b4bf3ea Post-merge - trim trailing whitespace 2024-06-10 20:45:59 +03:00
Ansariel 1b67dd855c Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A
# Conflicts:
#	autobuild.xml
#	indra/cmake/CMakeLists.txt
#	indra/cmake/GoogleMock.cmake
#	indra/llaudio/llaudioengine_fmodstudio.cpp
#	indra/llaudio/llaudioengine_fmodstudio.h
#	indra/llaudio/lllistener_fmodstudio.cpp
#	indra/llaudio/lllistener_fmodstudio.h
#	indra/llaudio/llstreamingaudio_fmodstudio.cpp
#	indra/llaudio/llstreamingaudio_fmodstudio.h
#	indra/llcharacter/llmultigesture.cpp
#	indra/llcharacter/llmultigesture.h
#	indra/llimage/llimage.cpp
#	indra/llimage/llimagepng.cpp
#	indra/llimage/llimageworker.cpp
#	indra/llimage/tests/llimageworker_test.cpp
#	indra/llmessage/tests/llmockhttpclient.h
#	indra/llprimitive/llgltfmaterial.h
#	indra/llrender/llfontfreetype.cpp
#	indra/llui/llcombobox.cpp
#	indra/llui/llfolderview.cpp
#	indra/llui/llfolderviewmodel.h
#	indra/llui/lllineeditor.cpp
#	indra/llui/lllineeditor.h
#	indra/llui/lltextbase.cpp
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltextvalidate.cpp
#	indra/llui/lltextvalidate.h
#	indra/llui/lluictrl.h
#	indra/llui/llview.cpp
#	indra/llwindow/llwindowmacosx.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappearancemgr.h
#	indra/newview/llavatarpropertiesprocessor.cpp
#	indra/newview/llavatarpropertiesprocessor.h
#	indra/newview/llbreadcrumbview.cpp
#	indra/newview/llbreadcrumbview.h
#	indra/newview/llbreastmotion.cpp
#	indra/newview/llbreastmotion.h
#	indra/newview/llconversationmodel.h
#	indra/newview/lldensityctrl.cpp
#	indra/newview/lldensityctrl.h
#	indra/newview/llface.inl
#	indra/newview/llfloatereditsky.cpp
#	indra/newview/llfloatereditwater.cpp
#	indra/newview/llfloateremojipicker.h
#	indra/newview/llfloaterimsessiontab.cpp
#	indra/newview/llfloaterprofiletexture.cpp
#	indra/newview/llfloaterprofiletexture.h
#	indra/newview/llgesturemgr.cpp
#	indra/newview/llgesturemgr.h
#	indra/newview/llimpanel.cpp
#	indra/newview/llimpanel.h
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryclipboard.cpp
#	indra/newview/llinventoryclipboard.h
#	indra/newview/llinventoryfunctions.cpp
#	indra/newview/llinventoryfunctions.h
#	indra/newview/llinventorygallery.cpp
#	indra/newview/lllistbrowser.cpp
#	indra/newview/lllistbrowser.h
#	indra/newview/llpanelobjectinventory.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llpanelprofile.h
#	indra/newview/llpreviewgesture.cpp
#	indra/newview/llsavedsettingsglue.cpp
#	indra/newview/llsavedsettingsglue.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llurllineeditorctrl.cpp
#	indra/newview/llvectorperfoptions.cpp
#	indra/newview/llvectorperfoptions.h
#	indra/newview/llviewerparceloverlay.cpp
#	indra/newview/llviewertexlayer.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/macmain.h
#	indra/test/test.cpp
2024-05-22 19:04:52 +02:00
Ansariel 0ecfbc3de9 Merge remote-tracking branch 'LGPL/master'
# Conflicts:
#	autobuild.xml
#	indra/cmake/CMakeLists.txt
#	indra/cmake/GoogleMock.cmake
#	indra/llappearance/llwearable.cpp
#	indra/llcharacter/llmultigesture.cpp
#	indra/llcharacter/llmultigesture.h
#	indra/llimage/llimage.cpp
#	indra/llimage/llimagepng.cpp
#	indra/llimage/llimageworker.cpp
#	indra/llmessage/tests/llmockhttpclient.h
#	indra/llrender/llfontfreetype.cpp
#	indra/llui/llcombobox.cpp
#	indra/llui/llfolderview.cpp
#	indra/llui/llfolderviewmodel.h
#	indra/llui/lllineeditor.cpp
#	indra/llui/lllineeditor.h
#	indra/llui/lltextbase.cpp
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltextvalidate.cpp
#	indra/llui/lltextvalidate.h
#	indra/llui/lluictrl.h
#	indra/llui/llview.cpp
#	indra/llwindow/llwindowmacosx.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappearancemgr.h
#	indra/newview/llavatarpropertiesprocessor.h
#	indra/newview/llbreadcrumbview.cpp
#	indra/newview/llbreadcrumbview.h
#	indra/newview/llbreastmotion.cpp
#	indra/newview/llbreastmotion.h
#	indra/newview/llconversationmodel.h
#	indra/newview/lldensityctrl.cpp
#	indra/newview/lldensityctrl.h
#	indra/newview/llface.inl
#	indra/newview/llfloatereditsky.cpp
#	indra/newview/llfloatereditwater.cpp
#	indra/newview/llfloateremojipicker.h
#	indra/newview/llfloaterimsessiontab.cpp
#	indra/newview/llfloaterprofiletexture.cpp
#	indra/newview/llfloaterprofiletexture.h
#	indra/newview/llgesturemgr.cpp
#	indra/newview/llgesturemgr.h
#	indra/newview/llgroupactions.cpp
#	indra/newview/llimpanel.cpp
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryclipboard.cpp
#	indra/newview/llinventoryclipboard.h
#	indra/newview/llinventoryfunctions.cpp
#	indra/newview/llinventoryfunctions.h
#	indra/newview/llinventorygallery.cpp
#	indra/newview/lllistbrowser.cpp
#	indra/newview/lllistbrowser.h
#	indra/newview/llpaneleditwearable.cpp
#	indra/newview/llpanelobjectinventory.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llpreviewgesture.cpp
#	indra/newview/llsavedsettingsglue.cpp
#	indra/newview/llsavedsettingsglue.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llurllineeditorctrl.cpp
#	indra/newview/llvectorperfoptions.cpp
#	indra/newview/llvectorperfoptions.h
#	indra/newview/llviewermenu.cpp
#	indra/newview/llviewerparceloverlay.cpp
#	indra/newview/llviewertexlayer.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/macmain.h
2024-05-16 14:10:55 +02:00
Ansariel 5f1a19af72 Merge remote-tracking branch 'LL/marchcat/x-ws-merge'
# Conflicts:
#	autobuild.xml
#	indra/linux_crash_logger/llcrashloggerlinux.cpp
#	indra/newview/llappviewerlinux_api.h
#	indra/newview/llappviewerlinux_api_dbus.cpp
#	indra/newview/llappviewerlinux_api_dbus.h
#	indra/newview/llavatarpropertiesprocessor.h
#	indra/newview/llcallbacklist.cpp
#	indra/newview/llimpanel.h
2024-05-01 12:30:57 +02:00
Andrey Lihatskiy 1b68f71348 #824 Process source files in bulk: replace tabs with spaces, convert CRLF to LF, and trim trailing whitespaces as needed 2024-04-29 07:56:09 +03:00
Ansariel a831237e29 Merge branch 'DRTVWR-600-maint-A' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llimage/llimage.cpp
#	indra/llimage/llimage.h
#	indra/llkdu/llimagej2ckdu.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/llfavoritesbar.cpp
#	indra/newview/llfloaterpreference.cpp
#	indra/newview/llfloaterpreference.h
#	scripts/messages/message_template.msg.sha1
2024-02-06 17:58:20 +01:00
Lars Næsbye Christensen da967da9c7 Rename OS X to macOS, mostly in comments
We only support 10.13+ now, and it's been called macOS since 10.12. References in code to older versions are unchanged.
2024-01-11 19:11:33 +02:00
Ansariel 39a6735fc9 Merge branch 'main' of https://github.com/secondlife/viewer
# Conflicts:
#	.gitignore
#	autobuild.xml
#	indra/cmake/APR.cmake
#	indra/newview/CMakeLists.txt
#	indra/newview/installers/windows/installer_template.nsi
#	indra/newview/viewer_manifest.py
#	indra/test/namedtempfile.h
2023-10-26 15:49:12 +02:00
Nat Goodspeed 6c6f6f4023 SL-19242: Pass arbitrary subprocess kwds through run_command().
That is, make LLManifest.run_command() accept and forward subprocess keyword
arguments.
2023-09-13 19:29:45 -04:00
Ansariel 1fc3aaff9b Merge branch 'DRTVWR-568_cmake' of https://bitbucket.org/lindenlab/viewer
# Conflicts:
#	.gitignore
#	autobuild.xml
#	indra/CMakeLists.txt
#	indra/cmake/00-Common.cmake
#	indra/cmake/Boost.cmake
#	indra/cmake/BuildVersion.cmake
#	indra/cmake/CEFPlugin.cmake
#	indra/cmake/CMakeLists.txt
#	indra/cmake/CURL.cmake
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/cmake/DBusGlib.cmake
#	indra/cmake/DragDrop.cmake
#	indra/cmake/FMODSTUDIO.cmake
#	indra/cmake/FindHUNSPELL.cmake
#	indra/cmake/FindJsonCpp.cmake
#	indra/cmake/FindOpenJPEG.cmake
#	indra/cmake/FindURIPARSER.cmake
#	indra/cmake/FreeType.cmake
#	indra/cmake/GLH.cmake
#	indra/cmake/Hunspell.cmake
#	indra/cmake/JsonCpp.cmake
#	indra/cmake/LLKDU.cmake
#	indra/cmake/LLPhysicsExtensions.cmake
#	indra/cmake/LLPlugin.cmake
#	indra/cmake/LLWindow.cmake
#	indra/cmake/Linking.cmake
#	indra/cmake/MESHOPTIMIZER.cmake
#	indra/cmake/MediaPluginBase.cmake
#	indra/cmake/NGHTTP2.cmake
#	indra/cmake/OPENAL.cmake
#	indra/cmake/OpenGL.cmake
#	indra/cmake/OpenJPEG.cmake
#	indra/cmake/OpenSSL.cmake
#	indra/cmake/PNG.cmake
#	indra/cmake/Tracy.cmake
#	indra/cmake/UI.cmake
#	indra/cmake/Variables.cmake
#	indra/cmake/ViewerMiscLibs.cmake
#	indra/cmake/ZLIBNG.cmake
#	indra/cmake/bugsplat.cmake
#	indra/integration_tests/llui_libtest/CMakeLists.txt
#	indra/linux_crash_logger/CMakeLists.txt
#	indra/llaudio/CMakeLists.txt
#	indra/llcommon/CMakeLists.txt
#	indra/llcommon/llapp.cpp
#	indra/llcorehttp/CMakeLists.txt
#	indra/llimagej2coj/CMakeLists.txt
#	indra/llinventory/CMakeLists.txt
#	indra/llmath/CMakeLists.txt
#	indra/llmath/llcalcparser.h
#	indra/llmessage/CMakeLists.txt
#	indra/llprimitive/CMakeLists.txt
#	indra/llrender/CMakeLists.txt
#	indra/llrender/llglslshader.cpp
#	indra/llwindow/CMakeLists.txt
#	indra/media_plugins/CMakeLists.txt
#	indra/media_plugins/base/CMakeLists.txt
#	indra/newview/CMakeLists.txt
#	indra/newview/llappviewerwin32.cpp
#	indra/newview/llxmlrpclistener.cpp
#	indra/newview/llxmlrpctransaction.cpp
#	indra/newview/viewer_manifest.py
#	indra/test/CMakeLists.txt
2022-09-17 23:12:34 +02:00
Nicky 95d5938eef Merge remote-tracking branch 'origin/DRTVWR-543-maint_cmake' into DRTVWR-543-maint_cmake 2022-06-05 14:27:28 +02:00
Ansariel 6ccdf5545d Merge branch 'master' of https://vcs.firestormviewer.org/viewer-merges/phoenix-firestorm-546
# Conflicts:
#	autobuild.xml
#	indra/llcommon/CMakeLists.txt
#	indra/llrender/llgl.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llface.cpp
#	indra/newview/llflexibleobject.cpp
#	indra/newview/llvovolume.cpp
2022-05-27 11:41:45 +02:00
Andrey Lihatskiy 3da7a50b71 Merge branch 'master' into DRTVWR-543-maint
# Conflicts:
#	autobuild.xml
#	indra/cmake/LLCommon.cmake
#	indra/llcommon/CMakeLists.txt
#	indra/llrender/llgl.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llface.cpp
#	indra/newview/llflexibleobject.cpp
#	indra/newview/llvovolume.cpp
2022-05-27 02:51:33 +03:00
Ansariel c9407feece Merge branch 'DRTVWR-546' of https://bitbucket.org/lindenlab/viewer 2022-05-10 19:14:02 +02:00
Andrey Kleshchev f0fa74fde7 SL-17376 Do not fail build if vcruntime140_1 is missing
If there is no vcruntime140_1 in the build system, it is likely that file is not required for the viewer to run.
2022-05-10 18:53:33 +03:00
Nicky 6b0427dbc2 - Slightly better documentation string for --configuration, as this really is used for the configs build subdirectory.
- Always pass the correct configuration for --buildtype
- Use 'buildtype' when determining defbug/release/... build. --configuration should not be used for this, as it is the subdirectories name (CMAKE_CFG_INTDIR)
2022-05-08 01:34:21 +02:00
Ansariel d34e3a9ab4 Merge branch 'DRTVWR-543-maint' of https://bitbucket.org/lindenlab/viewer 2022-03-01 19:31:32 +01:00
Andrey Lihatskiy 201f83472c Merge branch 'master' into DRTVWR-543-maint 2022-02-28 21:55:28 +02:00
Andrey Lihatskiy f695a5d1a8 SL-15742 Return correct default platform for linux
Since python 3.3 sys.platform for Linux will always be 'linux'. See https://bugs.python.org/issue12326 - fix by NickyD
2022-02-14 19:52:09 +02:00
Nicky 13caff46cf Python3 compatibility for Linux 2022-02-10 15:02:50 +01:00
Ansariel 496ea3e01c Fix fucken Python junk... 2021-12-16 16:19:08 +01:00
Ansariel 2ba4a164e2 Merge branch 'DRTVWR-527-maint' of https://bitbucket.org/lindenlab/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/Python.cmake
#	indra/lib/python/indra/util/llmanifest.py
#	indra/lib/python/indra/util/test_win32_manifest.py
#	indra/llaudio/llstreamingaudio_fmodstudio.cpp
#	indra/llaudio/llstreamingaudio_fmodstudio.h
#	indra/llcommon/llerror.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/lleventnotifier.cpp
#	indra/newview/llpanellandmarks.cpp
#	indra/newview/llpreviewanim.cpp
#	indra/newview/llpreviewanim.h
#	indra/newview/llviewerregion.cpp
#	indra/newview/skins/default/xui/de/menu_place_add_button.xml
#	indra/newview/skins/default/xui/it/menu_place_add_button.xml
#	indra/newview/skins/default/xui/it/menu_teleport_history_item.xml
#	indra/newview/skins/default/xui/ja/menu_place_add_button.xml
#	indra/newview/skins/default/xui/pl/menu_place_add_button.xml
#	indra/newview/skins/default/xui/pl/menu_teleport_history_item.xml
#	indra/newview/skins/default/xui/ru/menu_place_add_button.xml
#	indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml
#	indra/newview/viewer_manifest.py
2021-12-16 12:32:34 +01:00
Bennett Goble f729cfc33f SL-15742: Convert build scripts to Python 3
This changeset makes it possible to build the Second Life viewer using
Python 3. It is designed to be used with an equivalent Autobuild branch
so that a developer can compile without needing Python 2 on their
machine.

Breaking change: Python 2 support ending

Rather than supporting two versions of Python, including one that was
discontinued at the beginning of the year, this branch focuses on
pouring future effort into Python 3 only. As a result, scripts do not
need to be backwards compatible. This means that build environments,
be they on personal computers and on build agents, need to have a
compatible interpreter.

Notes

- SLVersionChecker will still use Python 2 on macOS
- Fixed the message template url used by template_verifier.py
2021-12-10 14:42:49 -08:00
Ansariel db30295c98 Remove FMOD Ex and first round sync with upcoming changes from upstream 2020-04-08 22:29:21 +02:00
Ansariel e9ad14eb25 Yoink back OpenAL changes from LL and sync with upstream 2020-02-14 23:43:29 +01:00
Ansariel f6012f78f9 FIRE-29311: Fix building with OpenAL on Windows, based on a patch by Testicular Slingshot 2020-02-09 19:36:10 +01:00
Ansariel 24231e7a71 Merge voice-56 2019-10-18 18:13:32 +02:00
Nat Goodspeed 637b13cf74 SL-11598: Remove from viewer_manifest.py pointless Windows wildcards.
By "pointless" we mean filenames or patterns in the Windows platform
specification that always match 0 files.

Add logic to llmanifest.py to collect and report all missing files, instead of
stopping at the first.
2019-09-18 10:26:27 -04:00
Oz Linden 296480d552 SL-11598: viewer_manifest.py should fail if a viewer file is missing 2019-09-16 12:50:30 -04:00
Ansariel ee34ea1f4b Merge viewer-bugsplat 2018-10-27 00:50:58 +02:00
Nat Goodspeed 279073dbb3 DRTVWR-447: Introduce LLManifest.process_either().
process_directory() and process_file() are reached both from the top-level
caller (try_path(), a local function within LLManifest.path()) and recursively
from process_directory(). Both places tested os.path.isdir(source), and if so
called process_directory(), else process_file(). Both places were wrong, as it
turns out.

os.path.isdir(symlink_to_directory) returns True. That meant that despite
explicit logic in ccopymumble() to recreate symlinks in the destination area,
we were consistently recopying the contents of symlinked directories.

The downside to this -- in addition to inflating the size of the installer! --
is that macOS is very particular about the structure of a Framework bundle. It
*must* include a Versions/Current symlink identifying which of the other
Versions subdirectories is, in fact, current. If Current is itself a
subdirectory, codesign can't figure out how to sign the framework, and fails.

The logic for deciding between process_directory() and process_file() must
explicitly check for os.path.islink(source). Rather than replicating that
change in both places, introduce process_either() which decides how to forward
the call, and call it both from try_path() and from process_directory().
2018-10-22 19:59:07 -04:00
Ansariel 606adaffe7 Merge viewer-bugsplat 2018-09-12 18:09:43 +02:00
Oz Linden 9f27bff9fb make the path output strip the 'dest' prefix 2018-09-07 11:58:11 -04:00
Oz Linden 050f9ead3b add markers for non-package uses of viewer_manifest.py 2018-09-06 15:57:25 -04:00
Oz Linden fa1ad3f4df make start and end messages for packages more prominentt 2018-09-06 15:15:16 -04:00
Oz Linden 8725d8e34a improve error message for unfound files 2018-09-06 11:08:33 -04:00
Oz Linden bf8f467b02 modify the path command progress message to show fully resolved src and dst paths 2018-09-06 10:40:59 -04:00
Ansariel 6bd724e65a Merge viewer-bugsplat 2018-08-31 09:17:34 +02:00
Nat Goodspeed c2178bb6ac DRTVWR-447: Introduce explicit CMake BUGSPLAT_DB variable.
Define the CMake cache variable, with empty string as its default.

Make build.sh pass the BUGSPLAT_DB environment variable as a CMake
command-line variable assignment.

Change CMake 'if (DEFINED ENV{BUGSPLAT_DB})' to plain 'if (BUGSPLAT_DB)'.

Make CMake pass new --bugsplat switch to every one of SIX different
invocations of viewer_manifest.py.

Give llmanifest.main() function an argument to allow supplementing the base
set of command-line switches with additional application-specific switches.

In viewer_manifest.py, define new --bugsplat command-line switch and pass to
llmanifest.main(). Instead of consulting os.environ['BUGSPLAT_DB'], consult
self.args['bugsplat'].
2018-08-24 09:56:56 -04:00
Ansariel 23473b4585 Merge viewer-bugsplat 2018-08-22 14:22:22 +02:00
Nat Goodspeed 52fe357370 DRTVWR-447: Use os.path.split(path) instead of path.split(os.sep).
On Windows, where 'path' might be separated either with '/' or '\', the latter
breaks unless all path separators are in fact the os.sep character '\'. While
it would be possible to code something fancy with os.sep and os.altsep,
testing the latter for None, much simpler to let os.path.split() handle it.
2018-08-17 14:39:32 -04:00
Nat Goodspeed 1b2f52257a DRTVWR-447: Streamline some of the logic around extra packages. 2018-08-15 16:38:09 -04:00
Ansariel 0f121d042d Merge viewer-bugsplat 2018-07-27 11:19:42 +02:00
Nat Goodspeed bbadee86c1 MAINT-8822: Give LLManifest.prefix() (suppressed) debugging output. 2018-06-30 10:01:11 -04:00
Nat Goodspeed 93ea0d7026 MAINT-8822: Revamp the LLManifest.prefix() calling convention.
The way prefix("path_fragment") or prefix(src="path_fragment") has always
worked is that unless you explicitly specify dst="", it adds "path_fragment"
to the source AND dest prefix stacks!

The most recent refactoring of viewer_manifest.py failed to copy CEF because
it involved prefix(src="../some lengthy path fragment") -- forgetting to
specify dst="" -- which added "../some lengthy path fragment" to the dest
prefix stack -- which put it outside the viewer install staging area
altogether.

Having been bitten too many times by forgetting to add prefix(dst=""), we
remove the necessity. The prefix() src=, build= and dst= prefix stacks are now
completely independent. Add src_dst= keyword argument for when you DO want to
add the same path fragment to both the source and dest prefix stacks.
("Explicit is better than implicit.")

Change all existing calls accordingly.

Now that the build prefix stack no longer tracks the src prefix stack, we were
failing to pick up some things from the build area because NOBODY ever used
build=, relying entirely on src= to point both to stuff in the source tree and
stuff in the build tree. Try to use build= appropriately.

If that proves too confusing, we might eliminate the separate build and
artwork (!) prefix stacks entirely, requiring callers to reset the src stack
explicitly when switching back and forth.
2018-06-29 17:08:48 -04:00
Tonya Souther 45e9b40be9 More OS X build fixes. 2018-01-27 08:40:18 -06:00