Giter Site home page Giter Site logo

unreal_fastbuild's Introduction

Unreal_FASTBuild

Allows the usage of FASTBuild with Unreal Engine 4 with a few minor modifications. It supports Visual Studio 2015 and 2017 and the Windows 10 SDK, UE4 4.21.1 and FASTBuild v0.95, although you should be able to use this with previous versions of UE4 by looking at the history of the file.

To use, place the under Engine/Source/Programs/UnrealBuildTool/System/ and add to the UnrealBuildTool project or regenerate the projects. You can then call it from ExecuteActions() in ActionGraph.cs a similar manner to XGE, for 4.21.1 it will look something like it does in the gist here: https://gist.github.com/liamkf/9e8a660be117c85428054fe76dfd5eff

It requires FBuild.exe to be in your path or modifying FBuildExePathOverride to point to where your FBuild executable is.

One example of the diffs and how to use it was made available here #3 by Fire. Likewise following the steps here https://github.com/ClxS/FASTBuild-UE4 but using this version of the FASTBuild.cs file should also work.

There is also a few posts here http://knownshippable.com/blog/2017/03/07/fastbuild-with-unreal-engine-4-setup/ which may help people get setup with UE4, FASTBuild, as well as setting up distribution and caching.

unreal_fastbuild's People

Contributors

liamkf avatar samhocevar avatar yass007 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unreal_fastbuild's Issues

Link files are also response files!

Apparently link commands are also response files.

CorePrivatePCH.h.pch.response

3>  5> DLL: E:\Nexa\UnrealEngine\Engine\Binaries\Win64\ShaderCompileWorker-Core.dll
3>5> LINK : fatal error LNK1181: cannot open input file 'E:\Nexa\UnrealEngine\Engine\Intermediate\Build\Win64\ShaderCompileWorker\Development\Core\CorePrivatePCH.h.obj'
3>

UE 4.20.1 - Getting compiler errors when bEnableCaching is turned on

I am testing setting this up on a UE420 project. I'm pretty sure it was working before i installed the newest patch of vs2017 15.8.1.

I had modified the FASTBuild.cs file to use MSVC/14.15.26706
and fixed the other paths (due to UE changing VCEnvironment)

Now i get C1001 errors, in various files including VisualStudioCodeSourceAccessModule.cpp related to comdef.h

I've tried clearing the cache on the share.

It seems to build fine if i turn off caching.

FASTBuild not used when compiling the engine using BuildGraph?

Hello,

I have no problem compiling UE4 in VS2017 with FASTBuild. All the work is being correctly distributed to all the workers of the pool.

But when I want to compile the engine using BuildGraph, using that command-line for example:

F:/Projects/ConsoleDev/UnrealEngine/Engine/Build/BatchFiles/RunUAT.bat BuildGraph -target="Make Installed Build Win64" -set:WithDDC=false -set:WithFeaturePacks=false -set:WithWin64=true -set:WithPS4=true -set:WithSwitch=true -set:WithXboxOne=true -set:WithTVOS=false -set:WithLinux=false -set:WithIOS=false -set:WithAndroid=false -set:WithMac=false -set:WithHTML5=false -set:WithWin32=false -set:OutputDirectoryOverride=F:/ShiftQuantumBuilds/UE4 -script="F:/Projects/ConsoleDev/UnrealEngine/Engine/Build/InstalledEngineBuild.xml"

FASTBuild is not used.

Is there something missing in the provided CS file to have FASTBuild triggered?

Thanks !

Working setup for UE 4.21

I've spent the last couple weeks (on and off) getting FastBuild to work with UE 4.21. I've included my setup in the gist below, hopefully it's useful to someone before 4.22 undoubtedly breaks something again.

This was testing with a complete clean & rebuild with a slightly modified version of UE 4.21 . I have not tested this configuration with any FastBuild caching.

An overview of the changes and additions:

  • Created some extension methods for VCEnvironment to patch things that were removed or changed from 4.19 . Some of the solutions in here aren't very clean and may require some retooling. I placed this under UnrealBuildTool\Platform\Windows\VCEnvironmentFastbuildExtensions.cs (See gist for code).
  • Set bEnableUndefinedIdentifiedWarnings to false in UnrealBuildTool\Configuration\ModuleRules.cs. This was breaking compilation with Windows 10 SDK. (See gist for code).
  • Added an action to support ActionType.BuildProject in FASTBuild.cs. This may not work for everything. I've only seen this action type used for copying files so that is what it does in the BFF file. FASTbuild.cs also modified to work with modified VCEnvironment.
  • ActionGraph and BuildConfiguration required no changes compared to 4.19 .

View changes in code: https://gist.github.com/RiceKab/60d7dd434afaab295d1c21d2fe1981b0

Couldn't find response file when building game project after cleaning UE4 project

Currently using VS 19.5 and 4.21.2, if I clean only the UE4 project (right-click UE4 project -> project-only -> clean only UE4) then right-click and build the game project, I get the following for a whole bunch of engine files:

2>Looks like a response file in:  @"C:\_programming\UnrealEngine\Engine\Intermediate\Build\Win64\UE4Editor\Development\Engine\SharedPCH.Engine.h.pch.response", but we could not load it! Could not find file 'C:\_programming\UnrealEngine\Engine\Intermediate\Build\Win64\UE4Editor\Development\Engine\SharedPCH.Engine.h.pch.response'.
2>We failed to find /fo, which may be a problem.
2>Action.CommandArguments:  @"C:\_programming\UnrealEngine\Engine\Intermediate\Build\Win64\UE4Editor\Development\Engine\SharedPCH.Engine.h.pch.response"
2>We have no OutputObjectFileName. Bailing.
2>Looks like a response file in:  @"C:\_programming\UnrealEngine\Engine\Intermediate\Build\Win64\UE4Editor\Development\UnrealEd\SharedPCH.UnrealEd.h.pch.response", but we could not load it! Could not find file 'C:\_programming\UnrealEngine\Engine\Intermediate\Build\Win64\UE4Editor\Development\UnrealEd\SharedPCH.UnrealEd.h.pch.response'.
2>We failed to find /fo, which may be a problem.

And my game project complains about missing files:

fatal error C1083: Cannot open include file: 'C:\_programming\UnrealEngine\Engine\Intermediate\Build\Win64\UE4Editor\Development\UnrealEd\SharedPCH.UnrealEd.h': No such file or directory

Seems to be solved by cleaning the game project as well, but curious what this may be. Note: I am using caching.

Thanks!

Unable to find fbuild process

Hi there! I realize this is an issue with me, not this repo, but I wasn't sure how else to ask about this.

I've gone through ClxS' changes (apart from to FastBuild itself for now) from https://github.com/ClxS/FASTBuild-UE4, and have used your FASTBuild.cs, but I'm having the following error when I try to build a project compiling against/with the engine:

Exception launching fbuild process. Is it in your path?System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
3>     at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
3>     at UnrealBuildTool.FASTBuild.ExecuteBffFile(String BffFilePath) in L:\_Programming\Repositories\UnrealEngine\Engine\Source\Programs\UnrealBuildTool\System\FASTBuild.cs:line 823

I made sure to put FBuild.exe in the Engine/Intermediate/Build/ folder, which I'm sure it's checking (this is also where the fbuild.bff file ends up). Is there anything I should try/check?

Thanks for your work on this!

PS4 broken in 4.18

Hey Guys!

The PS4 build is broken in 4.18. From what I can see the dependcies seem to be broken. It looks like I have some modules depending on others that are trying to link before the second one is linked.

I've also tryed to only link the final exe and it looks like the dependencies to the SDK librairies are missing.

If you have any idea I can have a look at Fastbuild.cs but I'm not familiar with UBT system at all :(

Cheers,

Olivier

Is clui.dll necessary?

The file '$Root$/1033/clui.dll' is language-dependent and if the user installed Visual Studio in French it will be located in '$Root$/1036/clui.dll' instead. As FASTBuild does not have wildcards it might be necessary to discover that file manually in C#… but I also found out that everything works fine if I just get rid of the two lines mentioning it. So I’m wondering, is it absolutely necessary to reference it?

Have you considered upstreaming FASTBuild integration?

I'm sure you guys have been asked this before (hell, I may have been the one asking!), but how do you guys feel about upstreaming some kind of FASTBuild integration into UE4 proper? Have you tried before and received some kind of response?

If you don't feel that it's worth it, how do you feel about someone else using the work in this repository and trying to polish it up for Epic's criteria and get it in? I don't think the license could be maintained in the FASTBuild.cs file in that instance, so I figured I'd ask for your thoughts. This example is often referred to as how to integrate FASTBuild into UE4 (and I just did it again then in 4.21 thanks to your update), so it'd be a good source. I'd like to possibly pursue it if you are okay with that but don't want to do it yourselves.

Thanks again for this and for updating it :)

Have you checked the unreal 4.20?

Thanks for your job of this integration, i just tried it with unreal 4.20, but got a lot of error like below for only compiling UrealHeaderTool.

3>------ Rebuild All started: Project: UnrealHeaderTool, Configuration: Development_Program x64 ------ 3>Cleaning UnrealHeaderTool Binaries... 3>Creating makefile for UnrealHeaderTool (no existing makefile) 3>Performing full C++ include scan (no include cache file) 3>Using Visual Studio 2017 14.14.26428 toolchain (C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428) and Windows 10.0.16299.0 SDK (C:\Program Files (x86)\Windows Kits\10). 3>Create bff file in 0.0312991 seconds. 3>BFF file 'E:\UE4.20r\NEXT\Engine\Intermediate\Build\fbuild.bff' has changed (reparsing will occur). 3>Distributed Compilation : 7 Workers in pool 3>8> Obj: E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\PCLaunch.rc.res 3>3> Obj: E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\UnrealHeaderTool\PCLaunch.rc.res 3>5> Obj: E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\BuildSettings\Module.BuildSettings.cpp.obj 3>2> Obj: E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\CoreUObject\PCH.CoreUObject.h.pch 3>7> Obj: E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\Core\SharedPCH.Core.h.pch 3>6> Obj: E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\UnrealHeaderTool\Module.UnrealHeaderTool.cpp.obj 3>1> Obj: E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\Core\PCH.Core.h.pch 3>4> Obj: E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\BuildSettings\Module.BuildSettings.cpp.obj <LOCAL> 3>3> Lib: E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\BuildSettings\UnrealHeaderTool-BuildSettings.lib 3>8> Exe: E:\UE4.20r\NEXT\Engine\Binaries\Win64\UnrealHeaderTool-BuildSettings.dll 3>6> Failed to build Object (error 0x2) 'E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\UnrealHeaderTool\Module.UnrealHeaderTool.cpp.obj' 3>6> PROBLEM: E:\UE4.20r\NEXT\Engine\Intermediate\Build\Win64\UnrealHeaderTool\Development\UnrealHeaderTool\Module.UnrealHeaderTool.cpp.obj 3>Module.UnrealHeaderTool.cpp 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\shared\intsafe.h(66): error C4668: '__midl' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winnt.h(310): error C4668: '_M_HYBRID' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winnt.h(318): error C4668: '_M_HYBRID' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winnt.h(12901): error C4668: '_WIN32_WINNT_WIN10_RS3' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winnt.h(18578): error C4668: '_APISET_RTLSUPPORT_VER' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\minwinbase.h(204): error C4668: '_WIN32_WINNT_WIN10_RS1' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\interlockedapi.h(84): error C4668: '_APISET_INTERLOCKED_VER' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\processthreadsapi.h(1116): error C4668: '_WIN32_WINNT_WIN10_RS3' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\securitybaseapi.h(405): error C4668: '_APISET_SECURITYBASE_VER' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\securitybaseapi.h(548): error C4668: '_APISET_SECURITYBASE_VER' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\securitybaseapi.h(1532): error C4668: '_APISET_SECURITYBASE_VER' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\securitybaseapi.h(1568): error C4668: '_APISET_SECURITYBASE_VER' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\securitybaseapi.h(1589): error C4668: '_APISET_SECURITYBASE_VER' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winbase.h(8504): error C4668: '_WIN32_WINNT_WIN10_RS1' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winbase.h(8509): error C4668: '_WIN32_WINNT_WIN10_RS3' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winbase.h(8514): error C4668: '_WIN32_WINNT_WIN10_RS1' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winbase.h(8561): error C4668: '_WIN32_WINNT_WIN10_RS1' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' 3>C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winbase.h(8958): error C4668: 'NTDDI_WIN7SP1' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'

it seems it can't go through the preprocessor of some head code in Windows SDK 10...

No spaces in path to fbuild.bff allowed

When I used FastBuild I got an error: D:\Program(1,1): FASTBuild Error #1015 - Unknown Function.
After a while of investigating the error I found it. It is in the function:
ExecuteBffFile

this line of code:
string FBCommandLine = string.Format("-monitor -summary {0} {1} -ide -clean -config {2}", distArgument, cacheArgument, BffFilePath);

In my case the folder in BffFilePath contained spaces and since the path is not in quitation marks the path can never be found. Just replace the line with this code:
string FBCommandLine = string.Format("-monitor -summary {0} {1} -ide -clean -config "{2}"", distArgument, cacheArgument, BffFilePath);

Cheers Pascal

two issues

1 when build and cook linux server, there is lots warning like this:

[11:10:16][Step 5/6] UnrealBuildTool: We failed to find /fo, which may be a problem.
[11:10:16][Step 5/6] UnrealBuildTool: Action.CommandArguments: -c -pipe -nostdinc++ -IThirdParty/Linux/LibCxx/include/ -IThirdParty/Linux/LibCxx/include/c++/v1 -Wall -Werror -funwind-tables -Wsequence-point -fno-math-errno -fno-rtti -fdiagnostics-format=msvc -Wno-unused-private-field -Wno-tautological-compare -Wno-undefined-bool-conversion -Wno-unused-local-typedef -Wno-inconsistent-missing-override -Wno-undefined-var-template -Wno-unused-variable -Wno-unused-function -Wno-switch -Wno-unknown-pragmas -Wno-invalid-offsetof -Wno-gnu-string-literal-operator-template -Wshadow -Wno-error=shadow -Wundef -Wno-error=undef -Wno-unused-value -fomit-frame-pointer -gdwarf-3 -O2 -fno-exceptions -DPLATFORM_EXCEPTIONS_DISABLED=1 -D_LINUX64 -target x86_64-unknown-linux-gnu --sysroot="C:\v8_clang-3.9.0-centos7\x86_64-unknown-linux-gnu" -I"C:\BuildAgent\work\24c385fd8bd91eb\Engine\Source" -I"Runtime/RHI/Private" -I"Runtime/RHI/Public" -I"Runtime/RHI" -I"Runtime/Core/Public" -I"Runtime/Core/Public/Internationalization" -I"Runtime/Core/Public/Async" -I"Runtime/Core/Public/Containers" -I"Runtime/Core/Public/Delegates" -I"Runtime/Core/Public/GenericPlatform" -I"Runtime/Core/Public/HAL" -I"Runtime/Core/Public/Logging" -I"Runtime/Core/Public/Math" -I"Runtime/Core/Public/Misc" -I"Runtime/Core/Public/Modules" -I"Runtime/Core/Public/Modules/Boilerplate" -I"Runtime/Core/Public/ProfilingDebugging" -I"Runtime/Core/Public/Serialization" -I"Runtime/Core/Public/Serialization/Csv" -I"Runtime/Core/Public/Stats" -I"Runtime/Core/Public/Templates" -I"Runtime/Core/Public/UObject" -I"Runtime/Core/Public/Linux" -I"Runtime/Core" -x c++ -std=c++14 -include "C:\BuildAgent\work\24c385fd8bd91eb\Projects\Nova\Intermediate\Build\Linux\B4D820EA\NovaServer\Shipping\Core\SharedPCH.Core.h" -include "C:\BuildAgent\work\24c385fd8bd91eb\Projects\Nova\Intermediate\Build\Linux\B4D820EA\NovaServer\Shipping\RHI\Definitions.RHI.h" -o "C:\BuildAgent\work\24c385fd8bd91eb\Projects\Nova\Intermediate\Build\Linux\B4D820EA\NovaServer\Shipping\RHI\Module.RHI.cpp.o" "C:\BuildAgent\work\24c385fd8bd91eb\Projects\Nova\Intermediate\Build\Linux\B4D820EA\NovaServer\Shipping\RHI\Module.RHI.cpp"
[11:10:16][Step 5/6] UnrealBuildTool: We have no OutputObjectFileName. Bailing.

and
We failed to find /OUT:, which may be a problem.

then
UnrealBuildTool: FBuild: Error: BUILD FAILED: all

2 when build engine, sometimes failed to parse project header, like this:
[11:15:32][Step 5/8] UnrealBuildTool: Running UnrealHeaderTool "C:\BuildAgent\work\24c385fd8bd91eb\Projects\Nova\Nova.uproject" "C:\BuildAgent\work\24c385fd8bd91eb\Projects\Nova\Intermediate\Build\Win64\Nova\Development\Nova.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors
[11:15:33][Step 5/8] UnrealBuildTool: Error: UnrealHeaderTool failed for target 'Nova' (platform: Win64, module info: C:\BuildAgent\work\24c385fd8bd91eb\Projects\Nova\Intermediate\Build\Win64\Nova\Development\Nova.uhtmanifest, exit code: CrashOrAssert (3)).
[11:15:33][Step 5/8] CommandUtils.Run: Run: Took 2.5268628s to run UnrealBuildTool.exe, ExitCode=3

if I rebuild the engine, then it's OK.

thank for your help!

ignoring #pragma warning disable

Hello,
Compiling UE, I get the following error VisualStudioSourceCodeAccessor.cpp:
warning C4278: 'GetObject': identifier in type library '80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2' is already a macro; use the 'rename' qualifier

but looking at the code it has the following line just above it:
#pragma warning(disable: 4278)
which seems like it's somehow ignoring it?

Network distribution fails on copying files with spaces in the directory path

Not sure if this is specific to this implementation or FastBuild itself but when it tries to copy to a directory containing a space it fails.

The directory being:

C:\Pine Fire Studios\Project\Engine\Engine\Source\

It fails with one of two errors:
1)
3>Fire 3>c1xx : fatal error C1083: Cannot open source file: 'Fire': No such file or directory 3>c1xx : fatal error C1083: Cannot open source file: 'Studios\Project\Engine\Engine\Source\': No such file or directory 3>Fire 3>c1xx : fatal error C1083: Cannot open source file: 'Fire': No such file or directory 3>c1xx : fatal error C1083: Cannot open source file: 'Studios\Project\Engine\Engine\Source\': No such file or directory 3>Fire
`
2)
https://hastebin.com/axecavodaj.tex

I've tried changing how the copy action source and destination is handled but it seems to have no affect.
Any suggestions?

Thanks!

Long Distributed Build time Game module

Hey Guys!

We've run some test here and activating caching or distributed build on our game game, increases significantly the build times.

Do you see the same thing on your projects? Are you using distribution and caching all the time or only when working on the engine code?

I know that there is an overhead when using on or the other due to network etc but I was not expecting such bad results. I'm not sure that we gad the same issues when working on 4.18.

Cheers,

Olivier

warning LNK4042: object specified more than once

Hey Guys!

We are currently upgrading from 4.15 to 4.18 and with the lattest fastbuild we are seing this warning:

warning LNK4042: object specified more than once

Do you have the same behavior?

Cheers,

Olivier

is there a way to detect VC redist version?

I want to avoid using a fixed version string in code such as : AddText(string.Format("\t\t'{0}/Redist/MSVC/14.16.27012/x64/Microsoft.VC141.CRT/msvcp{1}.dll'\n", @"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC", platformVersionNumber));
the redist version is diffirent from ToolChainVersion.

Upgrade 4.22

Hi,

I know this is not particular a bug. But in 4.22 there are quiete a few changes in the UBT which are not yet in FastBuild. Some classes have changed completely. I will have a look into the code but it seems quite a bit of work which I am not sure I can handle on my own. Anybody worked through it so far?

Android/iOS support?

Hi @liamkf .

Does this class supports Android and iOS builds? Getting alot of errors like:
for Adnroid

UnrealBuildTool: We have no OutputObjectFileName. Bailing.
UnrealBuildTool: We failed to find /fo, which may be a problem.

for iOS

UnrealBuildTool: Failed to find output file. Bailing.
UnrealBuildTool: We failed to find /OUT:, which may be a problem.

iOS build compiled on remote Mac with xcode clang++ for example...

UE4.26 and later comes with FASTBuild integration

Just let you guys know that UE4.26 and later comes with it own FB integration, with souce code modification under UnrealEngine\Engine\Extras\ThirdPartyNotUE\FASTBuild, and the FASTBuild.cs configuration files is also written by Epic under the UBT folder.

Very long linking times

Hey guys,

Not sure if anyone is still following this, but after managing to hook it up with UBT, I've been carefully analyzing compile time and have noticed that I did not see any reduction in compile time by using this, even with distributed build and cache enabled. So I dug down a little deeper and the problem appears to be coming from very long linking times.

For our project, it took us about 10 minutes to build our project without fastbuild, 12 minutes with fastbuild. Of those 12 minutes with fastbuild, the linking time itself was about 8 - 9 minutes. I just get a feeling that this isn't right.

Could anyone provide any insight for this issue? That would be much appreciated!

concatenation of TEXT("XXX") error

Here is a sample:

class FASTBUILD413_API Afastbuild413GameMode : public AGameMode
{
	GENERATED_BODY()

		int a;
	
	void testx();
	void dfaf(const wchar_t* str);
};

void Afastbuild413GameMode::testx()
{
	dfaf( TEXT("\x5927\x9003\x6740\x6362\x88c5\x76f8\x5173")TEXT("BP\x7ed3\x6784\x6570\x636e"));
}

void Afastbuild413GameMode::dfaf(const wchar_t* str)
{

}

Environment:
Platform:windows7
Vs:vs2015 wiht update 1
Unreal:4.13
Win10sdk installed but no used

If i do not use fastbuild, it will be compiled ok with no error. But if using fastbuild, compiling fails with error:
2>C:\Work\Project\fastbuild413\Source\fastbuild413\fastbuild413GameMode.cpp(9): error C2022: '32467': too big for character 2>C:\Work\Project\fastbuild413\Source\fastbuild413\fastbuild413GameMode.cpp(9): error C2022: '26500': too big for character 2>C:\Work\Project\fastbuild413\Source\fastbuild413\fastbuild413GameMode.cpp(9): error C2022: '25968': too big for character 2>C:\Work\Project\fastbuild413\Source\fastbuild413\fastbuild413GameMode.cpp(9): error C2022: '25454': too big for character 2>C:\Work\Project\fastbuild413\Source\fastbuild413\fastbuild413GameMode.cpp(9): error C3688: invalid literal suffix 'L'; literal operator or literal operator template 'operator ""L' not found

From microsoft, we can see tihis is an known error. But without fastbuild, it builds succeeded. I guess vc do something when preprocessor process definitions. But i can not fix the problem.

Need your help, many thanks!

VS17 Support

I've attempted to add support for VS17 in the commit here:
jackknobel@e0d96cc

I'm currently testing it by building Shader Compile Worker. It begins to build and everything is A okay until it hits the ImageWrapper.PCH file where it spits out these errors:
https://hastebin.com/itukiyomuw.tex

Are you familiar with any of these issues?
I feel like its trying to compile with C++14 instead of '11, is there a way to enforce C++11?

Looks like you can enforce some compiler options here but they were not working for me when I tried; citing it was an unknown option.

I do appologise if this is the wrong place, am happy to remove this issue if need be 😄

Failed to Link due to .response file VS 2017 UE4.18

I've patched up this implementation to work with UE4.18 and VS2017.

However, if you disable

bUseUnityBuild = false
bUseSharedPCHs = false

You get this.

3>7> LINK : fatal error LNK1104: cannot open file '@C:\Work\UnrealEngine\Engine\Intermediate\Build\Win64\ShaderCompileWorker\Development\ShaderCompileWorker-Core.lib.response'
3>
3>7> Failed to build Library (error 1104) 'C:\Work\UnrealEngine\Engine\Intermediate\Build\Win64\ShaderCompileWorker\Development\ShaderCompileWorker-Core.lib'

The response file exists.

Our game module experiences the same issues.
I can compile the engine just fine, the game module just wont have it and fails to compile 100% of the time in the same place.

Any ideas?

error in buld Development

Hi, I using UE4.21.1 & FastBuild0.9.6, I can compile Engine(UE4Editor) correctly, however, it cannot build project exe. switch config to Development, Win64, the link exe eats much ram, ram totall used up to 99%.

Linkage fails on UE4 4.15 Xbox One

Hello,

I'm getting a link error with UE4.15 ThirdParty PhysX library, as if the .lib was missing.
Of course the file is there and compilation without FastBuild works fine.

I basicaly get this error :

`3>LINK : fatal error LNK1181: cannot open input file 'PhysX3PROFILE.lib'

....

3>ERROR : UBT error : Failed to produce item: .
...
`

Thanks for the help.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.