Commit Graph

34 Commits

Author SHA1 Message Date
Ben Marsh
20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00
Ben Marsh
4ba423868f Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3209340 on 2016/11/23 by Ben.Marsh

	Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.

	Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.

	  * Every header now includes everything it needs to compile.
	        * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
	        * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
	  * Every .cpp file includes its matching .h file first.
	        * This helps validate that each header is including everything it needs to compile.
	  * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
	        * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
	        * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
	  * No engine code explicitly includes a precompiled header any more.
	        * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
	        * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.

	Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.

[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
Matthew Griffin
bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00
Ben Marsh
9be95b3c51 Add a function to IDesktopPlatform to query the version of an engine (either from the new JSON build.version file, or from Version.h if that fails). Make UE4Build.cs update it during builds.
[CL 2617067 by Ben Marsh in Main branch]
2015-07-10 15:21:32 -04:00
Andrew Brown
59c10c5f50 [INTEGRATE] merge ue4<-ue4-launcherDev cl 2582631
#change Rollback of accidental merge 2581810. Discussed alternate solution with Ben.Marsh

#platformnotify Josh.Adams

[CL 2582768 by Andrew Brown in Main branch]
2015-06-10 11:14:19 -04:00
Justin Sargent
273cde1704 Merging using UE4-To-UE4-LauncherDev
#platformnotify Josh.Adams

[CL 2581810 by Justin Sargent in Main branch]
2015-06-09 16:41:53 -04:00
Justin Sargent
75f4981862 Merging using UE4-To-UE4-LauncherDev
[CL 2517983 by Justin Sargent in Main branch]
2015-04-20 14:30:09 -04:00
Richard TalbotWatkin
0eac4346bf Added code to abort opening a project if the project's PackageFileUE4Version is higher than the current engine's.
#jira UE-8407 - Trying to open project from Newer version to older version of the Editor
#reviewedby Ben.Marsh

[CL 2515634 by Richard TalbotWatkin in Main branch]
2015-04-17 06:35:39 -04:00
Mike Fricker
114458bf0f Clang warning fixes: Fixed missing 'override' specifiers
- Also removed some unreferenced functions that adding 'override' revealed

PR #1002 -- Thank you, Omar007!

[CL 2498415 by Mike Fricker in Main branch]
2015-04-01 07:20:55 -04:00
Jaroslaw Palczynski
6c305898e0 UE-8578: Slate Widget fails to compile once added to a new project
Slate Widget was failing, because of missing Slate dependencies. Testing introduced a couple of problems which all was fixed by this CL:
1. I introduced AdditionalDependencies in .uproject file and change "Add Code To Project..." procedure to fill this array if needed. UBT reads this field and builds the project with required modules. Needed for Slate classes.
2. Changed UHT to #include missing headers in generated.h files if it was missing an include for it's super class. It was causing problems if we were trying to add a subclass of BrushShape -- BrushShape.h didn't have #include "Brush.h" and UBrushShape was inheriting from UBrush.
3. Above problems also occured for Slate classes, but not all of them was UCLASSes, so I had to fixed that manually.
4. "Add Code To Project..." functionality was not invalidating UBT makefiles, which lead to omitting new source files during hot-reloading (even thought it was reporting a success). This change also should improve a bit performance, cause right now there is no "gathering" step -- there is only invalidate step which is a lot quicker.
5. Fixed "Selected Class Source" link to source class in Slate Widget and Slate Widget Style class.

#codereview Robert.Manuszewski

[CL 2481488 by Jaroslaw Palczynski in Main branch]
2015-03-17 09:34:18 -04:00
Jamie Dale
7a631aa939 Added support for "gathering" project files via the editor
This is needed for UBT to update its makefiles when we add new code via the editor.

Updating UBT makefiles is more typically handled by re-generating project files, however on Windows we use DTE to inject new files directly into Visual Studio in an attempt to avoid re-generating project files (as it produces modal popups that block operations), so we need to perform a gather instead so that UBT knows things have changed.

ReviewedBy Mike.Fricker

[CL 2446903 by Jamie Dale in Main branch]
2015-02-16 07:53:59 -05:00
Ben Marsh
0c9614b56a Fixes for UnrealVersionSelector:
* Only try to build UBT if it's not present in the *target* engine directory (as opposed to the running engine directory). Fixes problems with running from launcher installation.
* Fix building UBT from paths that contain spaces.
* Better logging of what's going on when trying to build UBT (and possible failure points)
* Remove duplicate entries in installation list, and make sure that every path is stored in the same way. Was allowing a number of paths to contain relative portions.

#codereview Carlos.Cuello

[CL 2424385 by Ben Marsh in Main branch]
2015-01-29 16:15:16 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Max Preussner
6510058ee7 Core: Moved Json out of Core and into its own module
The main changes are as follows:

1. moved Json out of Core into own module 'Json'
2. moved 3 i10n classes (Json serializers) from Core into a new module 'Internationalization' *
3. fixed up 2 i10n classes in Core to not instantiate the 3 Json-based classes. instead they are now passed in as a dependency

*) (2) and (3) were required to decouple the I10n code in Core from Json. Much of the i10n code probably doesn't belong into Core in the first place, but there is no time to fix this right now.

The following cosmetic changes were also made:

- NULL to nullptr
- namespaced enums to enum classes
- renamed the three i10n Json serializer classes to comply with naming conventions
- removed file header comments (not used)
- documentation, spelling, spacing etc,

#UpgradeNotes: If your module is including Json.h then you have to add 'Json' to your Build.cs module dependencies.

#ReviewedBy: justin.sargent, saul.abreu

[CL 2310420 by Max Preussner in Main branch]
2014-09-25 18:03:04 -04:00
Robert Manuszewski
74916e7d9a CIS Fix (missing file from previous check-in).
[CL 2303015 by Robert Manuszewski in Main branch]
2014-09-18 16:44:32 -04:00
Ben Marsh
bb17aef300 Move functionality to invoke UBT into DesktopPlatform.
[CL 2286483 by Ben Marsh in Main branch]
2014-09-05 13:31:22 -04:00
Jaroslaw Surowiec
28f90c3553 Core - Moved GetMachineId/GetEpicAccountId to FGenericPlatformMisc
CrashReport - Restored missing functionality on Linux

#codereview Robert.Manuszewski

[CL 2284252 by Jaroslaw Surowiec in Main branch]
2014-09-04 05:58:33 -04:00
Ben Marsh
abd570b7a9 Move GetSolutionFilepath() out of Core and into DesktopPlatform.
[CL 2278050 by Ben Marsh in Main branch]
2014-08-29 15:31:27 -04:00
Ben Marsh
3bac51e396 Provide a proper error message if a file cannot be deleted during project upgrade, and fix offering to checkout the project file if necessary.
[CL 2227462 by Ben Marsh in Main branch]
2014-07-22 15:58:02 -04:00
Jamie Dale
0da4c45a14 The editor now sends a Machine ID and the last used Epic Account ID when started
TTP# 337511 - ANALYTICS: Store Epic Account ID and Machine Unique GUIDs on Users Machine. Send with Every Event.

This works differently to what the TTP originally asked for, but I've checked with MaxP/MattK/WesH and we're okay with the way this works, as it avoids an annoyingly tight dependency between the analytics and the editor.

On the request of MattK, I also changed FPlatformMisc::GetRegistryString to be FPlatformMisc::GetStoredValue and added a corresponding FPlatformMisc::SetStoredValue. These will store generic key->value pairs using a platform specific store (the registry on Windows, and an INI file on other platforms).

DesktopPlatform uses these to provide access to the Machine ID and Epic Account ID (the Epic Account ID is set when the user logs into the Launcher).

The Editor sends an "Editor.ProgramStarted" event containing this data. This can then be tied to the current analytics session via the analytics session ID.

Tested on Windows and OS X.

ReviewedBy Thomas.Sarkanen, Max.Preussner

[CL 2113818 by Jamie Dale in Main branch]
2014-06-23 05:11:34 -04:00
Ben Marsh
dbe3af585d Add a function to open a project file using the shell. Always opens as an Unreal.ProjectFile, preventing the user's default program selection from overriding it.
#codereview Nicholas.Davies

[CL 2109482 by Ben Marsh in Main branch]
2014-06-18 13:42:01 -04:00
Jaroslaw Palczynski
ebce413232 UE4 Refactoring. Changed OVERRIDE and FINAL macros to keywords override and final.
[CL 2104397 by Jaroslaw Palczynski in Main branch]
2014-06-13 06:14:46 -04:00
Ben Marsh
2778867d5c Add a utility function for getting an engine's description from its identifier.
[CL 2095104 by Ben Marsh in Main branch]
2014-06-04 19:07:11 -04:00
Ben Marsh
034f01c732 Add a single codepath to enumerate projects for an engine installation, which can be shared with the launcher.
#codereview Nicholas.Davies

[CL 2095028 by Ben Marsh in Main branch]
2014-06-04 18:06:57 -04:00
Ben Marsh
89668b5397 [INTEGRATE] Everything from 4.2 branch back into main.
[CL 2088526 by Ben Marsh in Main branch]
2014-05-29 17:45:17 -04:00