Skip to content
Permalink
Browse files
Merge pull request #11063 from shuffle2/vcredist
windows: distribute vcredist loose files
  • Loading branch information
delroth committed Sep 14, 2022
2 parents 09c07d4 + 84aa19d commit 1efb5b8
Show file tree
Hide file tree
Showing 12 changed files with 42 additions and 16 deletions.
@@ -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/
@@ -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.
Binary file not shown.
Binary file not shown.
@@ -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/
@@ -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)
@@ -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>

0 comments on commit 1efb5b8

Please sign in to comment.