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.master
parent
86b7cfe93a
commit
9a29f07bb2
|
|
@ -637,7 +637,7 @@ class LLManifest(object, metaclass=LLManifestRegistry):
|
|||
'vers':'_'.join(self.args['version'])}
|
||||
print("Creating unpacked file:", unpacked_file_name)
|
||||
# could add a gz here but that doubles the time it takes to do this step
|
||||
tf = tarfile.open(self.src_path_of(unpacked_file_name), 'w:')
|
||||
tf = tarfile.open(self.build_path_of(unpacked_file_name), 'w:')
|
||||
# add the entire installation package, at the very top level
|
||||
tf.add(self.get_dst_prefix(), "")
|
||||
tf.close()
|
||||
|
|
|
|||
|
|
@ -1799,6 +1799,47 @@ if (WINDOWS)
|
|||
|
||||
add_dependencies(${VIEWER_BINARY_NAME} stage_third_party_libs llcommon llwebrtc copy_w_viewer_manifest)
|
||||
|
||||
# Useful for remote debugging or profiling if set to target a shared drive. for example, brad sets it to "dist/secondlife" to deploy under
|
||||
# the build tree (and then I share that directory) or "f:/dist/secondlife" to deploy to a network mounted drive (although this can be slow).
|
||||
# this will also create an "unpacked" tarball at build-<platform>/newview/unpacked_<platform>_7_1_11_<build num>.tar
|
||||
set(LOCAL_DIST_DIR "" CACHE PATH "Path for 'local' unpacked copy of viewer distribution to be deployed to.")
|
||||
set(product SecondLife-${ARCH}-${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION})
|
||||
if(IS_DIRECTORY ${LOCAL_DIST_DIR})
|
||||
add_custom_command(
|
||||
OUTPUT ${LOCAL_DIST_DIR}/.${product}.copy_touched
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
"--actions=\"copy package unpacked\""
|
||||
--arch=${ARCH}
|
||||
--artwork=${ARTWORK_DIR}
|
||||
"--bugsplat=${BUGSPLAT_DB}"
|
||||
"--openal=${USE_OPENAL}"
|
||||
"--tracy=${USE_TRACY}"
|
||||
--build=${CMAKE_CURRENT_BINARY_DIR}
|
||||
--buildtype=$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,${CMAKE_BUILD_TYPE}>
|
||||
"--channel=${VIEWER_CHANNEL}"
|
||||
--configuration=$<CONFIG>
|
||||
--dest=${LOCAL_DIST_DIR}
|
||||
--grid=${GRID}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
|
||||
--touch=${LOCAL_DIST_DIR}/.${product}.copy_touched
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
stage_third_party_libs
|
||||
llwebrtc
|
||||
${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
|
||||
${COPY_INPUT_DEPENDENCIES}
|
||||
${VIEWER_BINARY_NAME}
|
||||
COMMENT "Performing viewer_manifest local dist copy"
|
||||
)
|
||||
|
||||
add_custom_target(copy_local_dist_viewer_manifest ALL DEPENDS ${LOCAL_DIST_DIR}/.${product}.copy_touched)
|
||||
elseif (NOT LOCAL_DIST_DIR STREQUAL "")
|
||||
message(FATAL_ERROR "LOCAL_DIST_DIR ${LOCAL_DIST_DIR} specified but is not valid target directory to copy viewer distribution into. Please create the directory and try again")
|
||||
endif () # IS_DIRECTORY ${LOCAL_DIST_DIR}
|
||||
|
||||
if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
|
||||
add_dependencies(${VIEWER_BINARY_NAME} copy_win_scripts)
|
||||
endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
|
||||
|
|
|
|||
|
|
@ -502,30 +502,34 @@ class Windows_x86_64_Manifest(ViewerManifest):
|
|||
if self.is_packaging_viewer():
|
||||
# Find secondlife-bin.exe in the 'configuration' dir, then rename it to the result of final_exe.
|
||||
self.path(src='%s/secondlife-bin.exe' % self.args['configuration'], dst=self.final_exe())
|
||||
# Emit the whole app image as one of the GitHub step outputs. We
|
||||
# want the whole app -- but NOT the extraneous build products that
|
||||
# get tossed into the same directory, such as the installer and
|
||||
# the symbols tarball, so add exclusions. When we feed
|
||||
# upload-artifact multiple absolute pathnames, even just for
|
||||
# exclusion, it ends up creating several extraneous directory
|
||||
# levels within the artifact -- so try using only relative paths.
|
||||
# One problem: as of right now, our current directory os.getcwd()
|
||||
# is not the same as the initial working directory for this job
|
||||
# step, meaning paths relative to our os.getcwd() won't work for
|
||||
# the subsequent upload-artifact step. We're a couple directory
|
||||
# levels down. Try adjusting for those when specifying the base
|
||||
# for self.relpath().
|
||||
appbase = self.relpath(
|
||||
self.get_dst_prefix(),
|
||||
base=os.path.join(os.getcwd(), os.pardir, os.pardir))
|
||||
self.set_github_output('viewer_app', appbase,
|
||||
# except for this stuff
|
||||
*(('!' + os.path.join(appbase, pattern))
|
||||
for pattern in (
|
||||
'secondlife-bin.*',
|
||||
'*_Setup.exe',
|
||||
'*.bat',
|
||||
'*.tar.xz')))
|
||||
|
||||
GITHUB_OUTPUT = os.getenv('GITHUB_OUTPUT')
|
||||
if GITHUB_OUTPUT:
|
||||
# Emit the whole app image as one of the GitHub step outputs. We
|
||||
# want the whole app -- but NOT the extraneous build products that
|
||||
# get tossed into the same directory, such as the installer and
|
||||
# the symbols tarball, so add exclusions. When we feed
|
||||
# upload-artifact multiple absolute pathnames, even just for
|
||||
# exclusion, it ends up creating several extraneous directory
|
||||
# levels within the artifact -- so try using only relative paths.
|
||||
# One problem: as of right now, our current directory os.getcwd()
|
||||
# is not the same as the initial working directory for this job
|
||||
# step, meaning paths relative to our os.getcwd() won't work for
|
||||
# the subsequent upload-artifact step. We're a couple directory
|
||||
# levels down. Try adjusting for those when specifying the base
|
||||
# for self.relpath().
|
||||
appbase = self.relpath(
|
||||
self.get_dst_prefix(),
|
||||
base=os.path.join(os.getcwd(), os.pardir, os.pardir),
|
||||
symlink=True)
|
||||
self.set_github_output('viewer_app', appbase,
|
||||
# except for this stuff
|
||||
*(('!' + os.path.join(appbase, pattern))
|
||||
for pattern in (
|
||||
'secondlife-bin.*',
|
||||
'*_Setup.exe',
|
||||
'*.bat',
|
||||
'*.tar.xz')))
|
||||
|
||||
with self.prefix(src=os.path.join(pkgdir, "VMP")):
|
||||
# include the compiled launcher scripts so that it gets included in the file_list
|
||||
|
|
|
|||
Loading…
Reference in New Issue