Added calls to ll_deploy_sharedlibs_command
Using viewer_manifest.py for windows dependency deployment during build. Added SHARED_LIBS_REL_PATH var to cmake cache.master
parent
2a79326ff6
commit
9e69702fe7
|
|
@ -6,8 +6,14 @@
|
|||
# BIN_NAME= The full path the the binary to search for dependecies.
|
||||
# SEARCH_DIRS= The full paths to dirs to search for dependencies.
|
||||
# DST_PATH= The full path where the dependecies will be copied.
|
||||
include(GetPrerequisites)
|
||||
|
||||
# *FIX:Mani - I pulled in the CMake 2.8 GetPrerequisites.cmake script here, because it works on windows where 2.6 did not.
|
||||
# Once we have officially upgraded to 2.8 we can just use that version of GetPrerequisites.cmake.
|
||||
get_filename_component(current_dir ${CMAKE_CURRENT_LIST_FILE} PATH)
|
||||
include(${current_dir}/GetPrerequisites_2_8.cmake)
|
||||
|
||||
message("Getting recursive dependencies for file: ${BIN_NAME}")
|
||||
|
||||
set(EXCLUDE_SYSTEM 1)
|
||||
set(RECURSE 1)
|
||||
get_filename_component(EXE_PATH ${BIN_NAME} PATH)
|
||||
|
|
@ -26,42 +32,42 @@ endif(DEP_FILES)
|
|||
|
||||
foreach(DEP_FILE ${DEP_FILES})
|
||||
if(FOUND_FILES)
|
||||
list(FIND FOUND_FILES ${DEP_FILE} FOUND)
|
||||
list(FIND FOUND_FILES ${DEP_FILE} FOUND)
|
||||
else(FOUND_FILES)
|
||||
set(FOUND -1)
|
||||
set(FOUND -1)
|
||||
endif(FOUND_FILES)
|
||||
|
||||
if(FOUND EQUAL -1)
|
||||
find_path(DEP_PATH ${DEP_FILE} PATHS ${SEARCH_DIRS} NO_DEFAULT_PATH)
|
||||
if(DEP_PATH)
|
||||
set(FOUND_FILES ${FOUND_FILES} "${DEP_PATH}/${DEP_FILE}")
|
||||
set(DEP_PATH NOTFOUND) #reset DEP_PATH for the next find_path call.
|
||||
else(DEP_PATH)
|
||||
set(MISSING_FILES ${MISSING_FILES} ${DEP_FILE})
|
||||
endif(DEP_PATH)
|
||||
find_path(DEP_PATH ${DEP_FILE} PATHS ${SEARCH_DIRS} NO_DEFAULT_PATH)
|
||||
if(DEP_PATH)
|
||||
set(FOUND_FILES ${FOUND_FILES} "${DEP_PATH}/${DEP_FILE}")
|
||||
set(DEP_PATH NOTFOUND) #reset DEP_PATH for the next find_path call.
|
||||
else(DEP_PATH)
|
||||
set(MISSING_FILES ${MISSING_FILES} ${DEP_FILE})
|
||||
endif(DEP_PATH)
|
||||
endif(FOUND EQUAL -1)
|
||||
endforeach(DEP_FILE)
|
||||
|
||||
if(MISSING_FILES)
|
||||
message("Missing:")
|
||||
foreach(FILE ${MISSING_FILES})
|
||||
message(" ${FILE}")
|
||||
message(" ${FILE}")
|
||||
endforeach(FILE)
|
||||
message("Searched in:")
|
||||
foreach(SEARCH_DIR ${SEARCH_DIRS})
|
||||
message(" ${SEARCH_DIR}")
|
||||
message(" ${SEARCH_DIR}")
|
||||
endforeach(SEARCH_DIR)
|
||||
message(FATAL_ERROR "Failed")
|
||||
endif(MISSING_FILES)
|
||||
|
||||
if(FOUND_FILES)
|
||||
foreach(FILE ${FOUND_FILES})
|
||||
get_filename_component(DST_FILE ${FILE} NAME)
|
||||
set(DST_FILE "${DST_PATH}/${DST_FILE}")
|
||||
message("Copying ${FILE} to ${DST_FILE}")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FILE} ${DST_FILE}
|
||||
)
|
||||
get_filename_component(DST_FILE ${FILE} NAME)
|
||||
set(DST_FILE "${DST_PATH}/${DST_FILE}")
|
||||
message("Copying ${FILE} to ${DST_FILE}")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FILE} ${DST_FILE}
|
||||
)
|
||||
endforeach(FILE ${FOUND_FILES})
|
||||
endif(FOUND_FILES)
|
||||
message("Success!")
|
||||
|
|
|
|||
|
|
@ -1,9 +1,21 @@
|
|||
|
||||
if(DARWIN)
|
||||
set(TMP_PATH "../Resource")
|
||||
elseif(LINUX)
|
||||
set(TMP_PATH "../lib")
|
||||
else(DARWIN)
|
||||
set(TMP_PATH ".")
|
||||
endif(DARWIN)
|
||||
|
||||
set(SHARED_LIB_REL_PATH ${TMP_PATH} CACHE STRING "Relative path from executable to shared libs")
|
||||
|
||||
# ll_deploy_sharedlibs_command
|
||||
# target_exe: the cmake target of the executable for which the shared libs will be deployed.
|
||||
# search_dirs: a list of dirs to search for the dependencies
|
||||
# dst_path: path to copy deps to, relative to the output location of the target_exe
|
||||
macro(ll_deploy_sharedlibs_command target_exe search_dirs dst_path)
|
||||
get_target_property(OUTPUT_LOCATION ${target_exe} LOCATION)
|
||||
get_filename_component(OUTPUT_PATH ${OUTPUT_LOCATION} PATH)
|
||||
|
||||
if(DARWIN)
|
||||
get_target_property(IS_BUNDLE ${target_exe} MACOSX_BUNDLE)
|
||||
|
|
@ -12,16 +24,22 @@ macro(ll_deploy_sharedlibs_command target_exe search_dirs dst_path)
|
|||
set(OUTPUT_PATH ${OUTPUT_LOCATION}.app/Contents/MacOS)
|
||||
set(OUTPUT_LOCATION ${OUTPUT_PATH}/${TARGET_FILE})
|
||||
endif(IS_BUNDLE)
|
||||
else(DARWIN)
|
||||
message(FATAL_ERROR "Only darwin currently supported!")
|
||||
endif(DARWIN)
|
||||
|
||||
if(WINDOWS)
|
||||
set(REAL_SEARCH_DIRS ${search_dirs} "$ENV{SystemRoot}/system32")
|
||||
endif(WINDOWS)
|
||||
|
||||
if(LINUX)
|
||||
message(FATAL_ERROR "LINUX Unsupported!?!")
|
||||
endif(LINUX)
|
||||
|
||||
add_custom_command(
|
||||
TARGET ${target_exe} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS
|
||||
"-DBIN_NAME=\"${OUTPUT_LOCATION}\""
|
||||
"-DSEARCH_DIRS=\"${search_dirs}\""
|
||||
"-DSEARCH_DIRS=\"${REAL_SEARCH_DIRS}\""
|
||||
"-DDST_PATH=\"${OUTPUT_PATH}/${dst_path}\""
|
||||
"-P"
|
||||
"${CMAKE_SOURCE_DIR}/cmake/DeploySharedLibs.cmake"
|
||||
|
|
|
|||
|
|
@ -120,9 +120,8 @@ ARGUMENTS=[
|
|||
default=""),
|
||||
dict(name='build', description='Build directory.', default=DEFAULT_SRCTREE),
|
||||
dict(name='configuration',
|
||||
description="""The build configuration used. Only used on OS X for
|
||||
now, but it could be used for other platforms as well.""",
|
||||
default="Universal"),
|
||||
description="""The build configuration used.""",
|
||||
default="Release"),
|
||||
dict(name='dest', description='Destination directory.', default=DEFAULT_SRCTREE),
|
||||
dict(name='grid',
|
||||
description="""Which grid the client will try to connect to. Even
|
||||
|
|
|
|||
|
|
@ -79,3 +79,4 @@ ll_deploy_sharedlibs_command(
|
|||
mac-crash-logger
|
||||
"${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR};${ARCH_PREBUILT_DIRS}"
|
||||
"../Resources")
|
||||
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ set(viewer_SOURCE_FILES
|
|||
llfloatermediasettings.cpp
|
||||
llfloatermemleak.cpp
|
||||
llfloaternamedesc.cpp
|
||||
llfloaternearbymedia.cpp
|
||||
llfloaternearbymedia.cpp
|
||||
llfloaternotificationsconsole.cpp
|
||||
llfloateropenobject.cpp
|
||||
llfloaterparcel.cpp
|
||||
|
|
@ -666,7 +666,7 @@ set(viewer_HEADER_FILES
|
|||
llfloatermediasettings.h
|
||||
llfloatermemleak.h
|
||||
llfloaternamedesc.h
|
||||
llfloaternearbymedia.h
|
||||
llfloaternearbymedia.h
|
||||
llfloaternotificationsconsole.h
|
||||
llfloateropenobject.h
|
||||
llfloaterparcel.h
|
||||
|
|
@ -1140,7 +1140,7 @@ if (WINDOWS)
|
|||
|
||||
if (NOT STANDALONE)
|
||||
list(APPEND viewer_SOURCE_FILES ${viewer_RESOURCE_FILES})
|
||||
endif (NOT STANDALONE)
|
||||
endif (NOT STANDALONE)
|
||||
|
||||
find_library(DINPUT_LIBRARY dinput8 ${DIRECTX_LIBRARY_DIR})
|
||||
find_library(DXGUID_LIBRARY dxguid ${DIRECTX_LIBRARY_DIR})
|
||||
|
|
@ -1322,7 +1322,7 @@ file(GLOB EVENT_HOST_SCRIPT_GLOB_LIST
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/../viewer_components/*.py)
|
||||
list(APPEND EVENT_HOST_SCRIPTS ${EVENT_HOST_SCRIPT_GLOB_LIST})
|
||||
|
||||
set(PACKAGE OFF CACHE BOOL
|
||||
set(PACKAGE ON CACHE BOOL
|
||||
"Add a package target that builds an installer package.")
|
||||
|
||||
if (WINDOWS)
|
||||
|
|
@ -1351,7 +1351,7 @@ if (WINDOWS)
|
|||
${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.sln
|
||||
--workingdir
|
||||
${VIEWER_BINARY_NAME}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
"./${CMAKE_CFG_INTDIR}"
|
||||
COMMENT "Setting the ${VIEWER_BINARY_NAME} working directory for debugging."
|
||||
)
|
||||
endif (NOT UNATTENDED)
|
||||
|
|
@ -1368,85 +1368,87 @@ if (WINDOWS)
|
|||
)
|
||||
|
||||
add_custom_command(
|
||||
TARGET ${VIEWER_BINARY_NAME} PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS
|
||||
-E
|
||||
copy_if_different
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../etc/message.xml
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings/message.xml
|
||||
COMMENT "Copying message.xml to the runtime folder."
|
||||
)
|
||||
TARGET ${VIEWER_BINARY_NAME} PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS
|
||||
-E
|
||||
copy_if_different
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../etc/message.xml
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings/message.xml
|
||||
COMMENT "Copying message.xml to the runtime folder."
|
||||
)
|
||||
|
||||
if(WINDOWS)
|
||||
# Copy Win Libs...
|
||||
# This happens at build time, not config time. We can't glob files in this cmake.
|
||||
# *FIX:Mani Write a sub script to glob the files...
|
||||
# *FIX:Mani Use actually dependencies rather than bulk copy.
|
||||
add_custom_command(
|
||||
TARGET ${VIEWER_BINARY_NAME} PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS
|
||||
-E
|
||||
copy_directory
|
||||
${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
||||
COMMENT "Copying staged dlls."
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${VIEWER_BINARY_NAME} POST_BUILD
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
--actions=copy
|
||||
--artwork=${ARTWORK_DIR}
|
||||
--build=${CMAKE_CURRENT_BINARY_DIR}
|
||||
--configuration=${CMAKE_CFG_INTDIR}
|
||||
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
||||
--grid=${GRID}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
COMMENT "Performing viewer_manifest copy"
|
||||
)
|
||||
|
||||
add_dependencies(${VIEWER_BINARY_NAME} stage_third_party_libs llcommon)
|
||||
if(LLKDU_LIBRARY)
|
||||
# kdu may not exist!
|
||||
add_dependencies(${VIEWER_BINARY_NAME} llkdu)
|
||||
endif(LLKDU_LIBRARY)
|
||||
endif(WINDOWS)
|
||||
add_dependencies(${VIEWER_BINARY_NAME} stage_third_party_libs llcommon)
|
||||
|
||||
if(LLKDU_LIBRARY)
|
||||
# kdu may not exist!
|
||||
add_dependencies(${VIEWER_BINARY_NAME} llkdu)
|
||||
endif(LLKDU_LIBRARY)
|
||||
|
||||
if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
|
||||
add_dependencies(${VIEWER_BINARY_NAME} copy_win_scripts)
|
||||
endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
|
||||
|
||||
add_custom_command(
|
||||
add_dependencies(${VIEWER_BINARY_NAME}
|
||||
SLPlugin
|
||||
media_plugin_quicktime
|
||||
media_plugin_webkit
|
||||
windows-updater
|
||||
windows-crash-logger
|
||||
)
|
||||
|
||||
if (PACKAGE)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/event_host_manifest.py
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/..
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CFG_INTDIR}
|
||||
DEPENDS
|
||||
lleventhost
|
||||
${EVENT_HOST_SCRIPTS}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/event_host_manifest.py
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CFG_INTDIR}/touched.bat
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
--configuration=${CMAKE_CFG_INTDIR}
|
||||
--artwork=${ARTWORK_DIR}
|
||||
--build=${CMAKE_CURRENT_BINARY_DIR}
|
||||
--channel=${VIEWER_CHANNEL}
|
||||
--login_channel=${VIEWER_LOGIN_CHANNEL}
|
||||
--configuration=${CMAKE_CFG_INTDIR}
|
||||
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
||||
--grid=${GRID}
|
||||
--login_channel=${VIEWER_LOGIN_CHANNEL}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
--artwork=${ARTWORK_DIR}
|
||||
--build=${CMAKE_CURRENT_BINARY_DIR}
|
||||
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
||||
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
|
||||
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
|
||||
DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
)
|
||||
|
||||
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit)
|
||||
|
||||
if (PACKAGE)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/event_host_manifest.py
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/..
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CFG_INTDIR}
|
||||
|
||||
DEPENDS
|
||||
lleventhost
|
||||
${EVENT_HOST_SCRIPTS}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/event_host_manifest.py)
|
||||
|
||||
add_custom_target(package ALL
|
||||
DEPENDS
|
||||
${CMAKE_CFG_INTDIR}/touched.bat)
|
||||
# temporarily disable packaging of event_host until hg subrepos get
|
||||
# sorted out on the parabuild cluster...
|
||||
#${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2)
|
||||
add_dependencies(package windows-updater windows-crash-logger)
|
||||
|
||||
add_custom_target(package ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat)
|
||||
# temporarily disable packaging of event_host until hg subrepos get
|
||||
# sorted out on the parabuild cluster...
|
||||
#${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2)
|
||||
|
||||
endif (PACKAGE)
|
||||
endif (WINDOWS)
|
||||
|
|
@ -1509,15 +1511,16 @@ if (LINUX)
|
|||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
--grid=${GRID}
|
||||
--channel=${VIEWER_CHANNEL}
|
||||
--login_channel=${VIEWER_LOGIN_CHANNEL}
|
||||
--installer_name=${product}
|
||||
--arch=${ARCH}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
--artwork=${ARTWORK_DIR}
|
||||
--build=${CMAKE_CURRENT_BINARY_DIR}
|
||||
--channel=${VIEWER_CHANNEL}
|
||||
--configuration=${CMAKE_CFG_INTDIR}
|
||||
--dest=${CMAKE_CURRENT_BINARY_DIR}/packaged
|
||||
--grid=${GRID}
|
||||
--installer_name=${product}
|
||||
--login_channel=${VIEWER_LOGIN_CHANNEL}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
|
||||
DEPENDS secondlife-stripped ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
)
|
||||
|
|
@ -1552,13 +1555,13 @@ if (DARWIN)
|
|||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
--grid=${GRID}
|
||||
--actions=copy
|
||||
--configuration=${CMAKE_CFG_INTDIR}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
--artwork=${ARTWORK_DIR}
|
||||
--build=${CMAKE_CURRENT_BINARY_DIR}
|
||||
--configuration=${CMAKE_CFG_INTDIR}
|
||||
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
|
||||
--grid=${GRID}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -231,8 +231,21 @@ class WindowsManifest(ViewerManifest):
|
|||
'llplugin', 'slplugin', self.args['configuration'], "slplugin.exe"),
|
||||
"slplugin.exe")
|
||||
|
||||
# need to get the llcommon.dll from the build directory as well
|
||||
if self.prefix(src=self.args['configuration'], dst=""):
|
||||
self.disable_manifest_check()
|
||||
|
||||
# Get shared libs from the shared libs staging directory
|
||||
if self.prefix(src=os.path.join(os.pardir, 'sharedlibs', self.args['configuration']),
|
||||
dst=""):
|
||||
|
||||
self.enable_crt_manifest_check()
|
||||
|
||||
# Get kdu dll, continue if missing.
|
||||
try:
|
||||
self.path('%s/llkdu.dll' % self.args['configuration'], dst='llkdu.dll')
|
||||
except RuntimeError:
|
||||
print "Skipping llkdu.dll"
|
||||
|
||||
# Get llcommon and deps. If missing assume static linkage and continue.
|
||||
try:
|
||||
self.path('llcommon.dll')
|
||||
self.path('libapr-1.dll')
|
||||
|
|
@ -242,22 +255,41 @@ class WindowsManifest(ViewerManifest):
|
|||
print err.message
|
||||
print "Skipping llcommon.dll (assuming llcommon was linked statically)"
|
||||
|
||||
self.end_prefix()
|
||||
self.disable_manifest_check()
|
||||
|
||||
# need to get the kdu dll from the build directory as well
|
||||
try:
|
||||
self.path('%s/llkdu.dll' % self.args['configuration'], dst='llkdu.dll')
|
||||
except RuntimeError:
|
||||
print "Skipping llkdu.dll"
|
||||
|
||||
self.disable_manifest_check()
|
||||
|
||||
# For textures
|
||||
if self.prefix(src=self.args['configuration'], dst=""):
|
||||
if(self.args['configuration'].lower() == 'debug'):
|
||||
# For textures
|
||||
if self.args['configuration'].lower() == 'debug':
|
||||
self.path("openjpegd.dll")
|
||||
else:
|
||||
self.path("openjpeg.dll")
|
||||
|
||||
# These need to be installed as a SxS assembly, currently a 'private' assembly.
|
||||
# See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx
|
||||
if self.args['configuration'].lower() == 'debug':
|
||||
self.path("msvcr80d.dll")
|
||||
self.path("msvcp80d.dll")
|
||||
self.path("Microsoft.VC80.DebugCRT.manifest")
|
||||
else:
|
||||
self.path("msvcr80.dll")
|
||||
self.path("msvcp80.dll")
|
||||
self.path("Microsoft.VC80.CRT.manifest")
|
||||
|
||||
# Vivox runtimes
|
||||
self.path("SLVoice.exe")
|
||||
self.path("alut.dll")
|
||||
self.path("vivoxsdk.dll")
|
||||
self.path("ortp.dll")
|
||||
self.path("wrap_oal.dll")
|
||||
|
||||
# For google-perftools tcmalloc allocator.
|
||||
try:
|
||||
if self.args['configuration'].lower() == 'debug':
|
||||
self.path('libtcmalloc_minimal-debug.dll')
|
||||
else:
|
||||
self.path('libtcmalloc_minimal.dll')
|
||||
except:
|
||||
print "Skipping libtcmalloc_minimal.dll"
|
||||
|
||||
self.end_prefix()
|
||||
|
||||
self.path(src="licenses-win32.txt", dst="licenses.txt")
|
||||
|
|
@ -270,6 +302,7 @@ class WindowsManifest(ViewerManifest):
|
|||
self.path("fmod.dll")
|
||||
|
||||
self.enable_no_crt_manifest_check()
|
||||
|
||||
# Media plugins - QuickTime
|
||||
if self.prefix(src='../media_plugins/quicktime/%s' % self.args['configuration'], dst="llplugin"):
|
||||
self.path("media_plugin_quicktime.dll")
|
||||
|
|
@ -302,28 +335,6 @@ class WindowsManifest(ViewerManifest):
|
|||
|
||||
self.disable_manifest_check()
|
||||
|
||||
# These need to be installed as a SxS assembly, currently a 'private' assembly.
|
||||
# See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx
|
||||
if self.prefix(src=self.args['configuration'], dst=""):
|
||||
if self.args['configuration'] == 'Debug':
|
||||
self.path("msvcr80d.dll")
|
||||
self.path("msvcp80d.dll")
|
||||
self.path("Microsoft.VC80.DebugCRT.manifest")
|
||||
else:
|
||||
self.path("msvcr80.dll")
|
||||
self.path("msvcp80.dll")
|
||||
self.path("Microsoft.VC80.CRT.manifest")
|
||||
self.end_prefix()
|
||||
|
||||
# Vivox runtimes
|
||||
if self.prefix(src=self.args['configuration'], dst=""):
|
||||
self.path("SLVoice.exe")
|
||||
self.path("alut.dll")
|
||||
self.path("vivoxsdk.dll")
|
||||
self.path("ortp.dll")
|
||||
self.path("wrap_oal.dll")
|
||||
self.end_prefix()
|
||||
|
||||
# pull in the crash logger and updater from other projects
|
||||
# tag:"crash-logger" here as a cue to the exporter
|
||||
self.path(src='../win_crash_logger/%s/windows-crash-logger.exe' % self.args['configuration'],
|
||||
|
|
@ -331,17 +342,6 @@ class WindowsManifest(ViewerManifest):
|
|||
self.path(src='../win_updater/%s/windows-updater.exe' % self.args['configuration'],
|
||||
dst="updater.exe")
|
||||
|
||||
# For google-perftools tcmalloc allocator.
|
||||
if self.prefix(src=self.args['configuration'], dst=""):
|
||||
try:
|
||||
if self.args['configuration'] == 'Debug':
|
||||
self.path('libtcmalloc_minimal-debug.dll')
|
||||
else:
|
||||
self.path('libtcmalloc_minimal.dll')
|
||||
except:
|
||||
print "Skipping libtcmalloc_minimal.dll"
|
||||
self.end_prefix()
|
||||
|
||||
def nsi_file_commands(self, install=True):
|
||||
def wpath(path):
|
||||
if path.endswith('/') or path.endswith(os.path.sep):
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ include(FindOpenGL)
|
|||
include(LLCommon)
|
||||
include(LLPlugin)
|
||||
include(Linking)
|
||||
include(LLSharedLibs)
|
||||
include(PluginAPI)
|
||||
include(LLImage)
|
||||
include(LLMath)
|
||||
|
|
@ -324,27 +325,7 @@ if (DARWIN)
|
|||
make_directory
|
||||
${PLUGINS_DESTINATION_DIR}
|
||||
COMMENT "Creating Resources directory in app bundle."
|
||||
)
|
||||
|
||||
# copy the llcommon dylib and its dependencies to Contents/Resources.
|
||||
get_target_property(BUILT_LLCOMMON llcommon LOCATION)
|
||||
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_LLCOMMON} ${PLUGINS_DESTINATION_DIR}
|
||||
DEPENDS ${BUILT_LLCOMMON}
|
||||
)
|
||||
# FIXME: these paths should come from somewhere reliable. The canonical list seems to be in indra/newview/viewer_manifest.py
|
||||
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libapr-1.0.3.7.dylib ${PLUGINS_DESTINATION_DIR}
|
||||
DEPENDS ${ARCH_PREBUILT_DIRS_RELEASE}/libapr-1.0.3.7.dylib
|
||||
)
|
||||
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libaprutil-1.0.3.8.dylib ${PLUGINS_DESTINATION_DIR}
|
||||
DEPENDS ${ARCH_PREBUILT_DIRS_RELEASE}/libaprutil-1.0.3.8.dylib
|
||||
)
|
||||
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libexpat.0.5.0.dylib ${PLUGINS_DESTINATION_DIR}
|
||||
DEPENDS ${ARCH_PREBUILT_DIRS_RELEASE}/libexpat.0.5.0.dylib
|
||||
)
|
||||
)
|
||||
else (DARWIN)
|
||||
set(PLUGINS_DESTINATION_DIR
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
|
||||
|
|
@ -497,22 +478,18 @@ if(WINDOWS)
|
|||
${plugintest_release_files}
|
||||
)
|
||||
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
||||
|
||||
copy_if_different(
|
||||
"${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}"
|
||||
out_targets
|
||||
llcommon.dll libapr-1.dll libaprutil-1.dll libapriconv-1.dll
|
||||
)
|
||||
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
||||
|
||||
add_custom_target(copy_plugintest_libs ALL
|
||||
DEPENDS
|
||||
${plugin_test_targets}
|
||||
llcommon
|
||||
)
|
||||
|
||||
add_custom_target(copy_plugintest_libs ALL
|
||||
DEPENDS
|
||||
${plugin_test_targets}
|
||||
)
|
||||
|
||||
add_dependencies(llmediaplugintest copy_plugintest_libs)
|
||||
|
||||
endif(WINDOWS)
|
||||
|
||||
ll_deploy_sharedlibs_command(
|
||||
llmediaplugintest
|
||||
"${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR};${ARCH_PREBUILT_DIRS}"
|
||||
${SHARED_LIB_REL_PATH}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ include(LLVFS)
|
|||
include(LLWindow)
|
||||
include(LLXML)
|
||||
include(Linking)
|
||||
include(LLSharedLibs)
|
||||
|
||||
include_directories(
|
||||
${LLCOMMON_INCLUDE_DIRS}
|
||||
|
|
@ -87,3 +88,8 @@ if (WINDOWS)
|
|||
LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\""
|
||||
)
|
||||
endif (WINDOWS)
|
||||
|
||||
ll_deploy_sharedlibs_command(
|
||||
windows-crash-logger
|
||||
"${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}"
|
||||
".")
|
||||
|
|
|
|||
|
|
@ -33,3 +33,9 @@ set_target_properties(windows-updater
|
|||
LINK_FLAGS "/NODEFAULTLIB:LIBCMT"
|
||||
LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\""
|
||||
)
|
||||
|
||||
# The windows-updater
|
||||
#ll_deploy_sharedlibs_command(
|
||||
# windows-updater
|
||||
# "${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}"
|
||||
# ".")
|
||||
|
|
|
|||
Loading…
Reference in New Issue