Ben Marsh
1cc0be0a06
Separate all the project specific settings for a platform into a separate class (derived from UEBuildPlatformContext), and remove the last few references to the global .uproject file path. Checks for SupportsWindowsXP() are now done inside the toolchain.
...
#codereview Peter.Sauerbrei
[CL 2711835 by Ben Marsh in Main branch]
2015-09-30 16:40:04 -04:00
Ben Marsh
a1bfbcd0d5
Split the ModifyModuleRules() method into two parts; one which is called only for the active platform (ModifyModuleRulesForActivePlatform), and one which is called on all platforms for a host platform (ModifyModuleRulesForOtherPlatform).
...
[CL 2709436 by Ben Marsh in Main branch]
2015-09-29 10:44:49 -04:00
Ben Marsh
69546a4c63
Disable the compiler toolchain log message when we're generating project files on Linux; we're not actually compiling anything (just creating a large number of targets), so it's not helpful.
...
#codereview Dmitry.Rekman
[CL 2709255 by Ben Marsh in Main branch]
2015-09-29 08:57:36 -04:00
Ben Marsh
1adc540d76
Instance UEBuildPlatform for each supported platform so we don't have to keep passing an UnrealTargetPlatform back into it, and separate the SDK logic for each group of platforms into a separate class (UEBuildPlatformSDK). Add a new factory class (UEBuildPlatformFactory) for creating them and binding them together.
...
[CL 2709253 by Ben Marsh in Main branch]
2015-09-29 08:56:10 -04:00
Ben Marsh
291c6dd533
Merge UEBuildPlatform.GetExtraModules() and UEBuildPlatform.SetupBinaries(), because they were being used for the same purpose.
...
[CL 2707277 by Ben Marsh in Main branch]
2015-09-27 14:50:58 -04:00
Ben Marsh
b2acdadf67
Remove unnecessary UEBuildTarget parameter being passed to build platforms.
...
[CL 2707256 by Ben Marsh in Main branch]
2015-09-27 13:10:21 -04:00
Ben Marsh
0aa484bda0
Toolchains are now instanced to allow storing project and target specific configuration details. Required for UBT to support multiple targets. Removed IUEToolChain, which wasn't being used directly.
...
[CL 2707252 by Ben Marsh in Main branch]
2015-09-27 13:05:49 -04:00
Ben Marsh
385dcb4a3d
Instance deployment handlers, rather than having a single shared instance. Required to support multiple build targets in UBT. Creation is through a method on the UEBuildPlatform.
...
[CL 2706031 by Ben Marsh in Main branch]
2015-09-25 08:37:49 -04:00
Ben Marsh
2802f43c08
Convert everything in UBT to use standard C# XML comments, so IntelliSense can display useful information in tooltips.
...
[CL 2704759 by Ben Marsh in Main branch]
2015-09-24 13:47:13 -04:00
Ben Marsh
df83418aeb
Auto-format UBT for consistent spacing. All default Visual Studio settings, but tabs instead of spaces.
...
[CL 2704665 by Ben Marsh in Main branch]
2015-09-24 12:37:21 -04:00
Dmitry Rekman
41f110f4f2
UBT: Remove unused compiler arguments in Linux builds.
...
- Also fix a shell script for incremental rebuilds.
[CL 2692663 by Dmitry Rekman in Main branch]
2015-09-15 19:02:34 -04:00
Ben Marsh
511af0caa7
Only add shader format and target platform modules as dependencies of the TargetPlatform module. Adding them for every single module in a target has a huge effect on the number of modules we need to resolve (UEBuildTarget.FindOrCreateModuleByName() was being called 200,000 times when generating project files, thanks to SCW and UFE triggering these code paths).
...
#codereview Peter.Sauerbrei
[CL 2684709 by Ben Marsh in Main branch]
2015-09-09 11:03:25 -04:00
Ben Marsh
9610023ca5
Use FileReference and DirectoryReference classes instead of strings for paths. Massively reduces the amount of paranoid calls to GetFullPath(), CleanDirectorySeparators() et al., and improves performance for really common UBT operations like making relative paths or checking if files are under a directory. Strong typing ensures that intention of parameters is explicit.
...
[CL 2678429 by Ben Marsh in Main branch]
2015-09-03 08:47:24 -04:00
Ben Marsh
42c53cf179
Change IUEBuildPlatform.ModifyNewlyLoadedModule to IUEBuildPlatform.ModifyModuleRules(). Only modifying the rules object rather than the implementation itself makes it easier to optimize caching module references.
...
[CL 2672146 by Ben Marsh in Main branch]
2015-08-28 07:27:26 -04:00
Dmitry Rekman
3874b31cff
Linux: do not compile ICU for server targets.
...
- Saves memory/code size, and servers shouldn't need that (by default at least).
(Merging CL 2665433 to main)
[CL 2669117 by Dmitry Rekman in Main branch]
2015-08-26 08:49:08 -04:00
Dmitry Rekman
3d4c157110
Revert the previous change and disable XGE again.
...
- Modular builds (editor, UT server) seem to be broken by this since FixDeps step probably is not listing its prerequisites correctly.
#codereview Ben.Marsh
[CL 2644331 by Dmitry Rekman in Main branch]
2015-08-04 19:39:07 -04:00
Dmitry Rekman
85c1194619
Enabling XGE for Linux in hopes that the crashes are gone.
...
#codereview Ben.Marsh
[CL 2643908 by Dmitry Rekman in Main branch]
2015-08-04 15:22:37 -04:00
Dmitry Rekman
cc2bb0b833
UBT: switch to a clang 3.6.0 Linux cross-toolchain (again).
...
[CL 2592250 by Dmitry Rekman in Main branch]
2015-06-18 13:43:54 -04:00
Josh Adams
01c4d45e38
- Renamed Desktop target platform to AllDesktop to reduce conflicts with Desktop directories [UEPLAT-894]
...
#codereview peter.sauerbrei,ben.marsh
[CL 2588676 by Josh Adams in Main branch]
2015-06-16 11:09:27 -04:00
Peter Sauerbrei
882f79f039
Changes to reduce log spew in stdout for UAT and GUBP
...
UEB-156
#uat
#codereview ben.marsh, robert.manuszewski
[CL 2588630 by Peter Sauerbrei in Main branch]
2015-06-16 10:42:46 -04:00
Ben Marsh
e0a010415b
Treat shadow variable warnings as errors in non-unity builds.
...
[CL 2582001 by Ben Marsh in Main branch]
2015-06-09 18:14:52 -04:00
nakosung
6366f1bdef
PR #1135 : Support enabling exceptions in a Linux build.
...
- Contributed by nakosung.
[CL 2563680 by Dmitry Rekman in Main branch]
2015-05-22 19:57:14 -04:00
Ben Marsh
16473b93ed
Turn shadow variable warnings back into warnings; they are breaking too many builds.
...
#codereview Marc.Audy
[CL 2561102 by Ben Marsh in Main branch]
2015-05-21 13:59:00 -04:00
Dmitry Rekman
c22c949712
Linux: fix line numbers and source file info missing in callstacks.
...
- Forcing DWARF3 since libdwarf (from MIT-licensed elftoolchain) doesn't support DWARF4 (which clang 3.5+ defaults to). Can cause binary size regression.
- Extended TestPAL to test crashes/fatal logs.
- Rearranged switches so deoptimizing switches are only applied to debug builds (development still have meaningful info in debugger).
#coderview Bob.Tellez, Josh.Markiewicz
[CL 2559036 by Dmitry Rekman in Main branch]
2015-05-20 13:02:57 -04:00
Bob Tellez
1804e139d2
[AUTOMERGE]
...
#UE4 Re-enabling debugging symbols for development linux builds. These are needed to debug crashes in development executables.
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2556071 by Bob.Tellez on 2015/05/18 18:43:00.
[CL 2558927 by Bob Tellez in Main branch]
2015-05-20 11:53:37 -04:00