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
Mark Palange (Mani) 2009-11-05 08:52:07 -08:00
parent 2a79326ff6
commit 9e69702fe7
9 changed files with 197 additions and 181 deletions

View File

@ -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!")

View File

@ -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"

View File

@ -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

View File

@ -79,3 +79,4 @@ ll_deploy_sharedlibs_command(
mac-crash-logger
"${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR};${ARCH_PREBUILT_DIRS}"
"../Resources")

View File

@ -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
)

View File

@ -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):

View File

@ -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}
)

View File

@ -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}"
".")

View File

@ -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}"
# ".")