Commit Graph

83 Commits

Author SHA1 Message Date
Robert Manuszewski
f9cdeb96cd Copying //UE4/Dev-Core to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================

Change 2717513 on 2015/10/06 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1

	GC and WeakObjectPtr performance optimizations.

	- Moved some of the EObjectFlags to EInternalObjectFlags and merged them with FUObjectArray
	- Moved WeakObjectPtr serial numbersto FUObjectArray
	- Added pre-allocated UObject array

Change 2716517 on 2015/10/05 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1

	Make SavePackage thread safe UObject-wise so that StaticFindObject etc can't run in parallel when packages are being saved.

Change 2721142 on 2015/10/08 by Mikolaj.Sieluzycki@Dev-Core_D0920

	UHT will now use makefiles to speed up iterative runs.

Change 2726320 on 2015/10/13 by Jaroslaw.Palczynski@jaroslaw.palczynski_D1732_2963

	Hot-reload performance optimizations:
	1. Got rid of redundant touched BPs optimization (which was necessary before major HR fixes submitted earlier).
	2. Parallelized search for old CDOs referencers.

Change 2759032 on 2015/11/09 by Graeme.Thornton@GThornton_DesktopMaster

	Dependency preloading improvements
	 - Asset registry dependencies now resolve asset redirectors
	 - Rearrange runtime loading to put dependency preloads within BeginLoad/EndLoad for the source package

Change 2754342 on 2015/11/04 by Robert.Manuszewski@Robert_Manuszewski_Stream1

	Allow UnfocusedVolumeMultiplier to be set programmatically

Change 2764008 on 2015/11/12 by Robert.Manuszewski@Robert_Manuszewski_Stream1

	When cooking, don't add imports that are outers of objects excluded from the current cook target.

Change 2755562 on 2015/11/05 by Steve.Robb@Dev-Core

	Inline storage for TFunction.
	Fix for delegate inline storage on Win64.
	Some build fixes.
	Visualizer fixes for new TFunction format.

Change 2735084 on 2015/10/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec

	CrashReporter Web - Search by Platform
	Added initial support for streams (GetBranchesAsListItems, CopyToJira)

Change 2762387 on 2015/11/11 by Steve.Robb@Dev-Core

	Unnecessary allocation removed when loading empty files in FFileHelper::LoadFileToString.

Change 2762632 on 2015/11/11 by Steve.Robb@Dev-Core

	Some TSet function optimisations:

	Avoiding unnecessary hashing of function arguments if the container is empty (rather than the hash being empty, which is not necessarily equivalent).
	Taking local copies of HashSize during iterations.

Change 2762936 on 2015/11/11 by Steve.Robb@Dev-Core

	BulkData zero byte allocations are now handled by an RAII object which owns the memory.

Change 2765758 on 2015/11/13 by Steve.Robb@Dev-Core

	FName::operator== and != optimised to be a single comparison.

Change 2757195 on 2015/11/06 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec

	PR #1305: Improvements in CrashReporter for Symbol Server usage (Contributed by bozaro)

Change 2760778 on 2015/11/10 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec

	PR #1725: Fixed typos in ProfilerCommon.h; Added comments (Contributed by BGR360)

	Also fixed starting condition.

Change 2739804 on 2015/10/23 by Robert.Manuszewski@Robert_Manuszewski_Stream1

	PR #1470: [UObjectGlobals] Do not overwrite instanced subobjects with ones from CDO (Contributed by slonopotamus)

Change 2744733 on 2015/10/28 by Steve.Robb@Dev-Core

	PR #1540 - Specifying a different Saved folder at launch through a command line parameter

	Integrated and optimized.

#lockdown Nick.Penwarden

[CL 2772222 by Robert Manuszewski in Main branch]
2015-11-18 16:20:49 -05:00
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
Jeff Campeau
1388452b5b VS2015 now the default toolchain for Windows
Fallback to 2013 is automatic if 2015 is not installed or a platform SDK is detected that doesn't support the new IDE
Manual override is available via -2013
#platformnotify Josh.Adams

[CL 2709701 by Jeff Campeau in Main branch]
2015-09-29 13:17:32 -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
Lee Clark
7e82c793e5 Merging - cl# 2704196 - PS4 - Don't add PS4 c# projects if PS4 SDK is not installed
[CL 2704201 by Lee Clark in Main branch]
2015-09-24 08:16:36 -04:00
Ben Marsh
5a77694bbb Removing a bunch of static variables for the project file in UBT.
[CL 2695050 by Ben Marsh in Main branch]
2015-09-17 09:15:44 -04:00
Ben Marsh
d5f47b28ec Optimize searching for source files under a given directory, by constructing DirectoryReference and FileReference objects directly from the full paths returned by the system.
[CL 2680146 by Ben Marsh in Main branch]
2015-09-04 07:56:29 -04:00
Ben Marsh
8aec191675 Remove some esoteric options from the project file generator (for only showing public headers, and hiding NoRedist folders) to improve performance of directory scanning.
[CL 2679439 by Ben Marsh in Main branch]
2015-09-03 17:31:11 -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
Richard Fawcett
f0f7d3a513 Fix detection of automation projects when running UBT with -ProjectFiles.
#codereview Ben.Marsh

[CL 2676811 by Richard Fawcett in Main branch]
2015-09-02 08:09:16 -04:00
Ben Marsh
d06ce0c4a0 Compile rules for the engine into separate assemblies than rules for each project, so we aren't redundantly compiling them more than once. Also compile rules for each foreign plugin into its own assembly. Reduces time taken to generate project files by almost half (~40s to ~26s) in local testing.
#codereview Peter.Sauerbrei

[CL 2674225 by Ben Marsh in Main branch]
2015-08-31 12:39:51 -04:00
Ben Marsh
0a89383b5a Explicitly compile the rules assembly and pass it around as a parameter, rather than caching it as global state in RulesCompiler.
[CL 2674051 by Ben Marsh in Main branch]
2015-08-31 10:33:16 -04:00
Wes Hunt
d2a1b60eaa UE-18654 - Fix uses of GetExecutingAssembly in UAT/UBT
#codereview:ben.marsh

[CL 2624862 by Wes Hunt in Main branch]
2015-07-17 16:38:17 -04:00
Wes Hunt
a4210fbfa5 Change AutomationTool.csproj.References to use ToolsVersion = 4.0 instead of 12.0. Shot in the dark as to why the references don't seem to be working 100% of the time. But this should match the other project stuff anyway.
#codereview:ben.marsh

[CL 2616985 by Wes Hunt in Main branch]
2015-07-10 14:24:00 -04:00
Wes Hunt
7fa290bb33 Summary: running UAT from VS is simpler and faster.
UEB-261 - Ensure that compiling AutomationTool in VS will compile all other Automation Projects
* Just set AutomationTool as your startup project and pass the command to execute.
* VS will build the script modules at build time, instead of every time at runtime.
* To make this happen, "UBT.exe -ProjectFiles" now generates a companion AutomationTool.csproj.References that make AutomationTool depend on all Automation modules.
* AutomationTool.exe defaults to not building script modules at runtime. Pass -compile if you want to dynamically build them.
* Without the .references file, AutomationTool will only build itself and you will need to pass -compile.
* RunUAT.bat still works that same, defaulting to runtime compilation and supporting -nocompile flag. It then passes -compile (or nothing) to AutomationTool.

Other
* All Automation projects target .Net 4.5. Some already were and had hard dependencies on them (Rocket and SyncGithub -> Octokit). Now that AutomationTool directly depends on them, everything had to use .Net 4.5.
* Decoupled logic for -NoCompile and -NoCompileEditor. The flags are still confusing, but -NoCompile is no longer linked to -NoCompileEditor.
* Had to leave in stub support in UAT for -NoCompile else RunUAT.bat passes it along and UAT complains that it doesn't understand it.
* Added a CommandUtils.Run option to support run command, but still output the run duration.
* Reduced the verbosity when UAT.proj is run from dozens of lines per module to a single Module -> Output line. It was looking like there were problems, but it was just msbuild spew.
#codereview:ben.marsh

[CL 2615060 by Wes Hunt in Main branch]
2015-07-09 10:15:37 -04:00
Peter Sauerbrei
def97e7e35 fix for source files not showing up in the projects for games with source
#ubt

[CL 2612662 by Peter Sauerbrei in Main branch]
2015-07-07 14:10:24 -04:00
Peter Sauerbrei
fc35305c51 changes to allow two projects to have the same plugin name
UEB-258
#codereview ben.marsh

[CL 2611443 by Peter Sauerbrei in Main branch]
2015-07-06 15:22:45 -04:00
Matthew Griffin
2bbe9c6e78 Improved Intellisense for Rocket code projects
Allow Engine Projects to be created in Rocket but only as stub projects to generate intellisense paths
Add all excluded binaries to list of Precompiled Binaries so that plugin paths are included when it comes to adding intellisense paths

[CL 2588511 by Matthew Griffin in Main branch]
2015-06-16 09:13:37 -04:00
Steve Robb
a1e663d053 Unification of environment variable harvesting, GetExecutingAssembly* functions, GetShortPathName and CaselessDictionary from UBT into DotNETUtilities.
Fixing up of existing code which used these facilities - this fixes the 'You are attempting to compile on a machine that does not have a supported compiler!' UAT error on machines with really long PATH variables, and exceptions in envvars with non-ASCII characters.

#codereview robert.manuszewski

[CL 2572445 by Steve Robb in Main branch]
2015-06-01 10:14:54 -04:00
Ben Marsh
2c87e87a6b Remove receipts from project files.
[CL 2550693 by Ben Marsh in Main branch]
2015-05-14 10:15:16 -04:00
Mike Fricker
ca39745810 Renamed WinUAP platform to UWP
- Microsoft renamed Universal App Platform to Universal Windows Platform
- https://msdn.microsoft.com/en-us/library/dn894631.aspx

[CL 2547380 by Mike Fricker in Main branch]
2015-05-12 12:00:23 -04:00
Mike Fricker
65bbc0e732 Initial Unreal Build Tool support for Visual Studio 2015 and UAP (disabled by default)
- Merged in Microsoft's Unreal Build Tool changes for VS 2015 support, and Universal App Platform support
- VS 2015 support is disabled by default (the engine is not yet compiling with VS 2015)
- Use the new '-2015' option when generating project files to enable VS 2015 support
- Windows SDK 8.1 is used by default.  To use Windows SDK 10, enable WindowsPlatform.bUseWindowsSDK10
- UAP support is disabled (not supported yet, work in progress.)  Use WinUAPPlatform.bEnableUAPSupport to enable it.
- Various loose ends still remain (search for "@todo UAP" in Unreal Build Tool code)

[CL 2537920 by Mike Fricker in Main branch]
2015-05-05 15:32:10 -04:00
Peter Sauerbrei
e921bf8cf7 UE-11479 - fix for generating project files when project has a platform name in the directory structure
[CL 2527371 by Peter Sauerbrei in Main branch]
2015-04-27 16:00:30 -04:00
Ben Marsh
f4646cf08d Add plugins to projects without needing to reference the AllPlugins array.
[CL 2519703 by Ben Marsh in Main branch]
2015-04-21 15:04:41 -04:00
Justin Sargent
f5585eaed8 Added support for programs to specify their own Solution Directory.
#codereview Ben.Marsh
Merging using UE4-To-UE4-LauncherDev

[CL 2517984 by Justin Sargent in Main branch]
2015-04-20 14:30:37 -04:00