Windows: Add missing swiftshader binaries to distribution (issue #2291)

This commit is contained in:
Marshall Greenblatt 2017-10-30 14:41:37 -04:00
parent c506c8c5c0
commit 486e69e23b
4 changed files with 44 additions and 15 deletions

View File

@ -101,7 +101,19 @@ macro(COPY_FILES target file_list source_dir target_dir)
set(source_file ${source_dir}/${FILENAME}) set(source_file ${source_dir}/${FILENAME})
get_filename_component(target_name ${FILENAME} NAME) get_filename_component(target_name ${FILENAME} NAME)
set(target_file ${target_dir}/${target_name}) set(target_file ${target_dir}/${target_name})
if(IS_DIRECTORY ${source_file})
string(FIND ${source_file} "$<CONFIGURATION>" pos)
if(pos GREATER_EQUAL 0)
# Must test with an actual configuration directory.
string(REPLACE "$<CONFIGURATION>" "Release" existing_source_file ${source_file})
if(NOT EXISTS ${existing_source_file})
string(REPLACE "$<CONFIGURATION>" "Debug" existing_source_file ${source_file})
endif()
else()
set(existing_source_file ${source_file})
endif()
if(IS_DIRECTORY ${existing_source_file})
add_custom_command( add_custom_command(
TARGET ${target} TARGET ${target}
POST_BUILD POST_BUILD

View File

@ -415,6 +415,7 @@ if(OS_WINDOWS)
libGLESv2.dll libGLESv2.dll
natives_blob.bin natives_blob.bin
snapshot_blob.bin snapshot_blob.bin
swiftshader
) )
# List of CEF resource files. # List of CEF resource files.

View File

@ -67,6 +67,12 @@ run but any related functionality may become broken or disabled.
Without these files HTML5 accelerated content like 2D canvas, 3D CSS and WebGL Without these files HTML5 accelerated content like 2D canvas, 3D CSS and WebGL
will not function. will not function.
* SwiftShader support.
* swiftshader/libEGL.dll
* swiftshader/libGLESv2.dll
Without these files WebGL will not function in software-only mode when the GPU
is not available or disabled.
* Widevine CDM support. * Widevine CDM support.
* widevinecdmadapter.dll * widevinecdmadapter.dll
Without this file playback of Widevine projected content will not function. Without this file playback of Widevine projected content will not function.

View File

@ -654,17 +654,19 @@ if mode == 'standard':
if platform == 'windows': if platform == 'windows':
binaries = [ binaries = [
'chrome_elf.dll', {'path': 'chrome_elf.dll'},
'd3dcompiler_47.dll', {'path': 'd3dcompiler_47.dll'},
'libcef.dll', {'path': 'libcef.dll'},
'libEGL.dll', {'path': 'libEGL.dll'},
'libGLESv2.dll', {'path': 'libGLESv2.dll'},
'natives_blob.bin', {'path': 'natives_blob.bin'},
'snapshot_blob.bin', {'path': 'snapshot_blob.bin'},
'v8_context_snapshot.bin', {'path': 'v8_context_snapshot.bin'},
# Should match the output path from media/cdm/ppapi/cdm_paths.gni. # Should match the output path from media/cdm/ppapi/cdm_paths.gni.
'WidevineCdm\\_platform_specific\\win_%s\\widevinecdmadapter.dll' % \ {'path': 'WidevineCdm\\_platform_specific\\win_%s\\widevinecdmadapter.dll' % \
('x64' if options.x64build else 'x86'), ('x64' if options.x64build else 'x86'), 'strip_folder': True},
{'path': 'swiftshader\\libEGL.dll'},
{'path': 'swiftshader\\libGLESv2.dll'},
] ]
libcef_dll_file = 'libcef.dll.lib' libcef_dll_file = 'libcef.dll.lib'
@ -707,9 +709,13 @@ if platform == 'windows':
copy_files( copy_files(
os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet) os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet)
for binary in binaries: for binary in binaries:
if 'strip_folder' in binary and binary['strip_folder']:
target_path = os.path.join(dst_dir, os.path.basename(binary['path']))
else:
target_path = os.path.join(dst_dir, binary['path'])
make_dir(os.path.dirname(target_path), options.quiet)
copy_file( copy_file(
os.path.join(build_dir, binary), os.path.join(build_dir, binary['path']), target_path, options.quiet)
os.path.join(dst_dir, os.path.basename(binary)), options.quiet)
copy_file(os.path.join(build_dir, libcef_dll_file), os.path.join(dst_dir, 'libcef.lib'), \ copy_file(os.path.join(build_dir, libcef_dll_file), os.path.join(dst_dir, 'libcef.lib'), \
options.quiet) options.quiet)
@ -735,9 +741,13 @@ if platform == 'windows':
copy_files( copy_files(
os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet) os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet)
for binary in binaries: for binary in binaries:
if 'strip_folder' in binary and binary['strip_folder']:
target_path = os.path.join(dst_dir, os.path.basename(binary['path']))
else:
target_path = os.path.join(dst_dir, binary['path'])
make_dir(os.path.dirname(target_path), options.quiet)
copy_file( copy_file(
os.path.join(build_dir, binary), os.path.join(build_dir, binary['path']), target_path, options.quiet)
os.path.join(dst_dir, os.path.basename(binary)), options.quiet)
if mode != 'client': if mode != 'client':
copy_file(os.path.join(build_dir, libcef_dll_file), os.path.join(dst_dir, 'libcef.lib'), \ copy_file(os.path.join(build_dir, libcef_dll_file), os.path.join(dst_dir, 'libcef.lib'), \