Skip to content

Use Windows_SDK.json from UE to determine what VS components to install#384

Draft
slonopotamus wants to merge 1 commit intoadamrehn:masterfrom
slonopotamus:windows_sdk.json
Draft

Use Windows_SDK.json from UE to determine what VS components to install#384
slonopotamus wants to merge 1 commit intoadamrehn:masterfrom
slonopotamus:windows_sdk.json

Conversation

@slonopotamus
Copy link
Collaborator

@slonopotamus slonopotamus commented Sep 3, 2025

This is just a draft of how I would like to install VS so it matches what engine expects.

Closes #372

Closes #381

Closes #375

Closes #350


Changes are not properly tested yet. For engines older than 5.4 that do not have Windows_SDK.json, I plan to hardcode fallback setup, like we do currently.

@TBBle @adamrehn @Alexey31rus what do you think?


Engines tested so far: 5.2, 5.3, 5.4 5.5, 5.6

@slonopotamus slonopotamus force-pushed the windows_sdk.json branch 4 times, most recently from a7e1eff to 2982d7a Compare September 3, 2025 16:16
@slonopotamus
Copy link
Collaborator Author

slonopotamus commented Sep 12, 2025

Well. This PR successfully builds 5.6.1.

I'm going to restore pre-5.4 compatibility (when Windows_SDK.json didn't exist) and then test all engines...

@slonopotamus slonopotamus force-pushed the windows_sdk.json branch 20 times, most recently from 62c8e8a to ad1d878 Compare October 6, 2025 10:00
@slonopotamus
Copy link
Collaborator Author

There is one problem with these changes - Build Tools are not present in ue4-minimal because it is copied on top of ue4-build-prerequisites.


### 5.2

You need to apply [this fix](https://forums.unrealengine.com/t/need-help-building-5-2-0-from-github/1441996/4) to your engine fork in order to build on Windows.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't remember having to need this. Or is this because of the newer SDK?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually do not remember, this was too many moons ago :D But I definitely hit this when was testing 5.2 in current PR.


### 5.4

No known issues.
Copy link
Contributor

@jonpas jonpas Dec 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs Avalanche patch and PixelStreaming patch for unreachable code with Visual Studio 17.10 at least. Unsure about others.

Avalanche patch

diff --git a/Engine/Plugins/Experimental/Avalanche/Source/AvalancheViewport/Private/Interaction/AvaCameraZoomController.cpp b/Engine/Plugins/Experimental/Avalanche/Source/AvalancheViewport/Private/Interaction/AvaCameraZoomController.cpp
index b5ce8a64b2fc3..4ff4fd49c02db 100644
--- a/Engine/Plugins/Experimental/Avalanche/Source/AvalancheViewport/Private/Interaction/AvaCameraZoomController.cpp
+++ b/Engine/Plugins/Experimental/Avalanche/Source/AvalancheViewport/Private/Interaction/AvaCameraZoomController.cpp
@@ -238,8 +238,8 @@ void FAvaCameraZoomController::CenterOnPoint(const FVector2f& InPoint)
 
 void FAvaCameraZoomController::CenterOnBox(const FBox& InBoundingBox, const FTransform& InBoxTransform)
 {
-	// TODO @Update
-	return;
+	// @TODO Update
+#if 0
 
 	TSharedPtr<IAvaViewportClient> AvaViewportClient = AvaViewportClientWeak.Pin();
 
@@ -313,6 +313,7 @@ void FAvaCameraZoomController::CenterOnBox(const FBox& InBoundingBox, const FTra
 	SetZoomLevel(RequiredZoomLevel - 1);
 	ZoomIn();
 	CenterOnPoint(ScreenBoundsCenter);
+#endif
 }
 
 void FAvaCameraZoomController::StartPanning()

PixelStreaming patch

diff --git a/Engine/Plugins/Media/PixelStreaming/Source/PixelStreaming/Private/PixelStreamingModule.cpp b/Engine/Plugins/Media/PixelStreaming/Source/PixelStreaming/Private/PixelStreamingModule.cpp
index 15d4bfe494432..d98d0e1b669a9 100644
--- a/Engine/Plugins/Media/PixelStreaming/Source/PixelStreaming/Private/PixelStreamingModule.cpp
+++ b/Engine/Plugins/Media/PixelStreaming/Source/PixelStreaming/Private/PixelStreamingModule.cpp
@@ -70,6 +70,7 @@ namespace UE::PixelStreaming
 	/**
 	 * IModuleInterface implementation
 	 */
+	PRAGMA_DISABLE_UNREACHABLE_CODE_WARNINGS
 	void FPixelStreamingModule::StartupModule()
 	{
 #if UE_SERVER
@@ -155,6 +156,7 @@ namespace UE::PixelStreaming
 		FStats::Get();
 		bStartupCompleted = true;
 	}
+	PRAGMA_RESTORE_UNREACHABLE_CODE_WARNINGS
 
 	void FPixelStreamingModule::ShutdownModule()
 	{


### 5.5

You need to apply [this patch](https://github.com/EpicGames/UnrealEngine/commit/b86e244161df5bb32030818a48ffeccd3ed310ef) to your engine fork in order to build on Windows.
Copy link
Contributor

@jonpas jonpas Dec 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This patch was required for me last time I built 5.5 as well.

diff --git a/Engine/Plugins/Media/BlackmagicMedia/Source/BlackmagicCore/Private/BlackmagicInputChannel.h b/Engine/Plugins/Media/BlackmagicMedia/Source/BlackmagicCore/Private/BlackmagicInputChannel.h
index 58927eb8962e0..a52039a022c41 100644
--- a/Engine/Plugins/Media/BlackmagicMedia/Source/BlackmagicCore/Private/BlackmagicInputChannel.h
+++ b/Engine/Plugins/Media/BlackmagicMedia/Source/BlackmagicCore/Private/BlackmagicInputChannel.h
@@ -3,6 +3,7 @@
 #pragma once
 
 #include "Common.h"
+#include <chrono>
 
 namespace BlackmagicDesign
 {


### 5.6

You need to apply [this](https://github.com/EpicGames/UnrealEngine/commit/467f8b31124c89b61c00ba73c26229897cafd7bd) and [this](https://github.com/EpicGames/UnrealEngine/commit/cdda65cecacd9a1278020925c357bf4cc0b17e8c) patches to your engine fork in order to build on Windows.
Copy link
Contributor

@jonpas jonpas Dec 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This patch is not required anymore (5.6.1)?

diff --git a/Engine/Plugins/Experimental/AvalancheDataLink/AvalancheDataLink.uplugin b/Engine/Plugins/Experimental/AvalancheDataLink/AvalancheDataLink.uplugin
index ad8ee3d6b5c2c..884a731e16539 100644
--- a/Engine/Plugins/Experimental/AvalancheDataLink/AvalancheDataLink.uplugin
+++ b/Engine/Plugins/Experimental/AvalancheDataLink/AvalancheDataLink.uplugin
@@ -17,7 +17,8 @@
 		{
 			"Name": "AvalancheDataLink",
 			"Type": "Runtime",
-			"LoadingPhase": "Default"
+			"LoadingPhase": "Default",
+			"TargetDenyList": [ "Server" ]
 		},
 		{
 			"Name": "AvalancheDataLinkEditor",

@slonopotamus
Copy link
Collaborator Author

slonopotamus commented Dec 29, 2025

@jonpas Unfortunately, you're linking some private repo that I do not have access to (even though I have access to UnrealEngine repo).

@jonpas
Copy link
Contributor

jonpas commented Dec 29, 2025

Ah sorry, forgot Unreal repos are private and linked from our fork with cherry-picked patches applied. Maybe links work now, but I also added the diffs in case they still don't (I didn't go search in upstream repo).

@jonpas
Copy link
Contributor

jonpas commented Feb 2, 2026

What is the status on this? Anything that would help speed this along?

@slonopotamus
Copy link
Collaborator Author

What is the status on this?

I still need to reorganize multi-staging a bit so we do not lose VS in ue4-minimal image.

@jonpas
Copy link
Contributor

jonpas commented Feb 2, 2026

Let me know if I can be of any help. I can spin up some resources to test builds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants