Merge pull request #11063 from shuffle2/vcredist

windows: distribute vcredist loose files
This commit is contained in:
Pierre Bourdon 2022-09-14 23:01:00 +02:00 committed by GitHub
commit 1efb5b8800
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 42 additions and 16 deletions

View File

@ -337,3 +337,8 @@ proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
This program uses VC++ Redistributable code. The license for those object
files can be found at:
https://visualstudio.microsoft.com/license-terms/vs2022-ga-community/

View File

@ -154,20 +154,6 @@ Section "Base" SEC01
SetOutPath "$TEMP"
SetOverwrite on
File /r "dxredist"
File /r "vcredist"
SectionEnd
Section "DirectX Runtime" SEC02
DetailPrint "Running DirectX runtime setup..."
ExecWait '"$TEMP\dxredist\DXSETUP.exe" /silent'
DetailPrint "Finished DirectX runtime setup"
SectionEnd
Section "Visual C++ 2015 Redistributable" SEC03
DetailPrint "Running Visual C++ 2015 Redistributable setup..."
ExecWait '"$TEMP\vcredist\vc_redist.x64.exe" /install /quiet /norestart'
DetailPrint "Finished Visual C++ 2015 Redistributable setup"
SectionEnd
Section -AdditionalIcons
@ -193,8 +179,6 @@ SectionEnd
; Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "Installs all files required to run the Dolphin Emulator."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "Installs the recommended DirectX runtime libraries that are needed by Dolphin."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Installs the required Visual C++ 2015 Redistributable that is needed by Dolphin."
!insertmacro MUI_FUNCTION_DESCRIPTION_END
Section Uninstall

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

3
LICENSES/MSVC-Redist.txt Normal file
View File

@ -0,0 +1,3 @@
This program uses VC++ Redistributable code. The license for those object
files can be found at:
https://visualstudio.microsoft.com/license-terms/vs2022-ga-community/

View File

@ -440,6 +440,28 @@ if(WIN32)
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/qt.conf.win" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/qt.conf"
)
# Copy VC++ Redist.
# NOTE This *intentionally* does not copy debug redist files.
# TODO This should really occur for any executable target.
# TODO Actually use cmake 'install' and InstallRequiredSystemLibraries.
if(MSVC_C_ARCHITECTURE_ID)
string(TOLOWER "${MSVC_C_ARCHITECTURE_ID}" CMAKE_MSVC_ARCH)
elseif(MSVC_CXX_ARCHITECTURE_ID)
string(TOLOWER "${MSVC_CXX_ARCHITECTURE_ID}" CMAKE_MSVC_ARCH)
else()
set(CMAKE_MSVC_ARCH x86)
endif()
set(MSVC_REDIST_NAME VC${MSVC_TOOLSET_VERSION})
find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.CRT)
mark_as_advanced(MSVC_REDIST_DIR)
set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.CRT")
file(GLOB MSVC_REDIST_DLLS "${MSVC_CRT_DIR}/*.dll")
foreach(MsvcRedistDll IN LISTS MSVC_REDIST_DLLS)
add_custom_command(TARGET dolphin-emu POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${MsvcRedistDll}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
)
endforeach()
# Delegate to Qt's official deployment binary on Windows to copy over the necessary Qt-specific libraries, etc.
get_target_property(MOC_EXECUTABLE_LOCATION Qt${QT_VERSION_MAJOR}::moc IMPORTED_LOCATION)
get_filename_component(QT_BINARY_DIRECTORY "${MOC_EXECUTABLE_LOCATION}" DIRECTORY)

View File

@ -84,4 +84,16 @@
<AdditionalOptions>/NODEFAULTLIB:msvcrt %(AdditionalOptions)</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<Target Name="CopyVCRedist" AfterTargets="Build" Condition="'$(ConfigurationType)'=='Application'">
<ItemGroup>
<VCRedistSourceFiles
Include="$(VCToolsRedistInstallDir)$(Platform)\Microsoft.VC$(PlatformToolsetVersion).CRT\*.dll" />
</ItemGroup>
<Copy
SourceFiles="@(VCRedistSourceFiles)"
DestinationFolder="$(BinaryOutputDir)"
SkipUnchangedFiles="true"
/>
</Target>
</Project>