2016-12-08 08:52:44 -05:00
|
|
|
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
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
|
|
|
#include "CoreMinimal.h"
|
2014-03-14 14:13:41 -04:00
|
|
|
#include "ParserHelper.h"
|
|
|
|
|
#include "BaseParser.h"
|
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
|
|
|
#include "Misc/CompilationResult.h"
|
2015-04-10 06:02:22 -04:00
|
|
|
#include "Scope.h"
|
2014-03-14 14:13:41 -04:00
|
|
|
|
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
|
|
|
class UClass;
|
|
|
|
|
enum class EGeneratedCodeVersion : uint8;
|
|
|
|
|
class FFeedbackContext;
|
|
|
|
|
class UPackage;
|
|
|
|
|
struct FManifestModule;
|
|
|
|
|
class IScriptGeneratorPluginInterface;
|
|
|
|
|
class FStringOutputDevice;
|
|
|
|
|
class UProperty;
|
|
|
|
|
class FUnrealSourceFile;
|
|
|
|
|
class UFunction;
|
|
|
|
|
class UEnum;
|
|
|
|
|
class UScriptStruct;
|
|
|
|
|
class UDelegateFunction;
|
|
|
|
|
class UStruct;
|
2014-04-23 18:42:01 -04:00
|
|
|
class FClass;
|
|
|
|
|
class FClasses;
|
2015-04-10 06:02:22 -04:00
|
|
|
class FScope;
|
|
|
|
|
class FHeaderProvider;
|
2015-11-18 16:20:49 -05:00
|
|
|
class FUHTMakefile;
|
2014-04-23 18:42:01 -04:00
|
|
|
|
2015-03-27 17:16:51 -04:00
|
|
|
extern double GPluginOverheadTime;
|
|
|
|
|
extern double GHeaderCodeGenTime;
|
2014-06-12 23:22:18 -04:00
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
/*-----------------------------------------------------------------------------
|
|
|
|
|
Constants & types.
|
|
|
|
|
-----------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
enum {MAX_NEST_LEVELS = 16};
|
|
|
|
|
|
|
|
|
|
/* Code nesting types. */
|
2016-03-24 13:53:55 -04:00
|
|
|
enum class ENestType
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2016-03-24 13:53:55 -04:00
|
|
|
GlobalScope,
|
|
|
|
|
Class,
|
|
|
|
|
FunctionDeclaration,
|
|
|
|
|
Interface,
|
|
|
|
|
NativeInterface
|
2014-03-14 14:13:41 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** Types of statements to allow within a particular nesting block. */
|
2016-03-24 13:53:55 -04:00
|
|
|
enum class ENestAllowFlags
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2016-03-24 13:53:55 -04:00
|
|
|
None = 0,
|
|
|
|
|
Function = 1, // Allow Event declarations at this level.
|
|
|
|
|
VarDecl = 2, // Allow variable declarations at this level.
|
|
|
|
|
Class = 4, // Allow class definition heading.
|
|
|
|
|
Return = 8, // Allow 'return' within a function.
|
|
|
|
|
TypeDecl = 16, // Allow declarations which do not affect memory layout, such as structs, enums, and consts, but not implicit delegates
|
|
|
|
|
ImplicitDelegateDecl = 32, // Allow implicit delegates (i.e. those not decorated with UDELEGATE) to be declared
|
2014-03-14 14:13:41 -04:00
|
|
|
};
|
|
|
|
|
|
2016-03-24 13:53:55 -04:00
|
|
|
ENUM_CLASS_FLAGS(ENestAllowFlags)
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
namespace EDelegateSpecifierAction
|
|
|
|
|
{
|
|
|
|
|
enum Type
|
|
|
|
|
{
|
|
|
|
|
DontParse,
|
|
|
|
|
Parse
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
2015-03-19 13:27:48 -04:00
|
|
|
/** The category of variable declaration being parsed */
|
|
|
|
|
namespace EVariableCategory
|
|
|
|
|
{
|
|
|
|
|
enum Type
|
|
|
|
|
{
|
|
|
|
|
RegularParameter,
|
|
|
|
|
ReplicatedParameter,
|
|
|
|
|
Return,
|
|
|
|
|
Member
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
/** Information for a particular nesting level. */
|
2015-01-20 09:33:54 -05:00
|
|
|
class FNestInfo
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
|
|
|
|
/** Link to the stack node. */
|
2015-01-20 09:33:54 -05:00
|
|
|
FScope* Scope;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
/**
|
|
|
|
|
* Gets nesting scope.
|
|
|
|
|
*/
|
|
|
|
|
FScope* GetScope() const
|
|
|
|
|
{
|
|
|
|
|
return Scope;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Sets nesting scope.
|
|
|
|
|
*/
|
2015-04-22 14:15:56 -04:00
|
|
|
void SetScope(FScope* InScope)
|
2015-01-20 09:33:54 -05:00
|
|
|
{
|
2015-04-22 14:15:56 -04:00
|
|
|
this->Scope = InScope;
|
2015-01-20 09:33:54 -05:00
|
|
|
}
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
/** Statement that caused the nesting. */
|
|
|
|
|
ENestType NestType;
|
|
|
|
|
|
|
|
|
|
/** Types of statements to allow at this nesting level. */
|
2016-03-24 13:53:55 -04:00
|
|
|
ENestAllowFlags Allow;
|
2014-03-14 14:13:41 -04:00
|
|
|
};
|
|
|
|
|
|
2014-09-30 09:10:54 -04:00
|
|
|
struct FIndexRange
|
|
|
|
|
{
|
|
|
|
|
int32 StartIndex;
|
|
|
|
|
int32 Count;
|
|
|
|
|
};
|
|
|
|
|
|
2014-12-11 11:49:41 -05:00
|
|
|
|
|
|
|
|
struct ClassDefinitionRange
|
|
|
|
|
{
|
|
|
|
|
ClassDefinitionRange(const TCHAR* InStart, const TCHAR* InEnd)
|
|
|
|
|
: Start(InStart)
|
|
|
|
|
, End(InEnd)
|
|
|
|
|
, bHasGeneratedBody(false)
|
|
|
|
|
{ }
|
|
|
|
|
|
|
|
|
|
ClassDefinitionRange()
|
|
|
|
|
: Start(nullptr)
|
|
|
|
|
, End(nullptr)
|
|
|
|
|
, bHasGeneratedBody(false)
|
|
|
|
|
{ }
|
|
|
|
|
|
2015-07-15 13:24:05 -04:00
|
|
|
void Validate()
|
|
|
|
|
{
|
|
|
|
|
if (End <= Start)
|
|
|
|
|
{
|
|
|
|
|
FError::Throwf(TEXT("The class definition range is invalid. Most probably caused by previous parsing error."));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-11 11:49:41 -05:00
|
|
|
const TCHAR* Start;
|
|
|
|
|
const TCHAR* End;
|
|
|
|
|
bool bHasGeneratedBody;
|
|
|
|
|
};
|
|
|
|
|
|
2015-01-20 09:33:54 -05:00
|
|
|
extern TMap<UClass*, ClassDefinitionRange> ClassDefinitionRanges;
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
/////////////////////////////////////////////////////
|
|
|
|
|
// FHeaderParser
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Header parser class. Extracts metadata from annotated C++ headers and gathers enough
|
|
|
|
|
// information to autogenerate additional headers and other boilerplate code.
|
|
|
|
|
//
|
|
|
|
|
class FHeaderParser : public FBaseParser, public FContextSupplier
|
|
|
|
|
{
|
|
|
|
|
public:
|
2015-04-10 06:02:22 -04:00
|
|
|
// Default version of generated code. Defaults to oldest possible, unless specified otherwise in config.
|
|
|
|
|
static EGeneratedCodeVersion DefaultGeneratedCodeVersion;
|
|
|
|
|
|
2015-01-20 09:33:54 -05:00
|
|
|
// Compute the function parameter size and save the return offset
|
|
|
|
|
static void ComputeFunctionParametersSize(UClass* InClass);
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
// Parse all headers for classes that are inside LimitOuter.
|
2015-03-02 06:44:04 -05:00
|
|
|
static ECompilationResult::Type ParseAllHeadersInside(
|
|
|
|
|
FClasses& ModuleClasses,
|
|
|
|
|
FFeedbackContext* Warn,
|
|
|
|
|
UPackage* LimitOuter,
|
|
|
|
|
const FManifestModule& Module,
|
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3345728)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3315219 on 2017/02/21 by Steve.Robb
Fix for FObjectAndNameAsStringProxyArchive when serializing a TWeakObjectPtr.
Change 3315285 on 2017/02/21 by Steve.Robb
Explicitly pass string builder into code generation functions.
Change 3315341 on 2017/02/21 by Ben.Marsh
UAT: Clean up some formatting in StreamCopyDescription output - remove #fyi lines, exclude merge commits, and remove some blank lines.
Change 3315350 on 2017/02/21 by Ben.Marsh
Fix shared resource files not being rebuilt if the version header changes.
Change 3315823 on 2017/02/21 by Ben.Marsh
UAT: Use a class derived from AutomationException to return information specific to commandlets failing, rather than putting it in the base class.
Change 3315826 on 2017/02/21 by Ben.Marsh
UAT: Move Distiller class from general use in UAT; FileFilter provides a much safer and fully featured implementation of the same concepts.
Change 3315857 on 2017/02/21 by Ben.Marsh
UBT: Remove the StripBaseDirectory() and MakeRerootedFilePath() utility functions from UBT. These operations can now be done more safely with FileReference objects.
Change 3315942 on 2017/02/21 by Ben.Marsh
UBT: Convert FileFilter to use FileReference and DirectoryReference arguments everywhere.
Change 3316236 on 2017/02/22 by Maciej.Mroz
#jira UE-42045
Nativization
Fixed Warning: TEnumAsByte is not intended for use with enum
Change 3316253 on 2017/02/22 by Robert.Manuszewski
Fixes for the async log file writer hangs and crashes.
- potential fix for the logging system hang when running out of disk space while flushing log
- fix for unexpected concurrency assert when flushing the log buffer to disk
Change 3316293 on 2017/02/22 by Steve.Robb
GetTypeHash and lexicographical comparison operators (operator<() etc.) for TTuple.
Change 3316342 on 2017/02/22 by Maciej.Mroz
Nativization: Wrappers (stubs) required only by other wrappers are properly generated.
#codereview: Mike.Beach
Change 3316344 on 2017/02/22 by Maciej.Mroz
Fixed crash in nativized Odin
Async loading properly handles nativized structs.
Change 3316359 on 2017/02/22 by Steve.Robb
GitHub #3287 : Ignore #pragma in USTRUCTs
#jira UE-42248
Change 3316389 on 2017/02/22 by Matthew.Griffin
Switched Installed Engine Filters to multiline properties to make them more readable
Added Oodle to list of excluded plugins
#jira UE-42030
Change 3316392 on 2017/02/22 by Ben.Marsh
UBT: Split out FileReference/DirectoryReference classes into their own file.
Change 3316394 on 2017/02/22 by Ben.Marsh
UBT: Move FileReference/DirectoryReference extension methods into the appropriate file.
Change 3316411 on 2017/02/22 by Ben.Marsh
UAT: Remove file functions that take multiple arguments. There's not really a compelling use case for these to exist over looping from the calling code.
Change 3316446 on 2017/02/22 by Ben.Marsh
UAT: Try disabling function name prefix to log output from UAT, to see if it improves readability. Function names are still included in the log file for debugging.
Change 3316575 on 2017/02/22 by Ben.Marsh
UAT: Remove unused functionality for dealing with labels, and output a more human readable list of P4 settings at startup.
Change 3318481 on 2017/02/22 by Steve.Robb
Use of FMath::IsPowerOfTwo in check.
Static assert to ensure that an inline set allocator will have a hash size of a power of two.
Change 3318496 on 2017/02/22 by Steve.Robb
Fix for TSet visualizers.
Change 3318919 on 2017/02/23 by Steve.Robb
Fix for hot reloading UScriptStruct-derived objects in a module, where the CDOs of these objects haven't had PrepareCppStructOps() called on them.
#jira UE-42178
Change 3318942 on 2017/02/23 by Steve.Robb
Removal of a redundant insertion which can cause problems on reallocation of the map.
Change 3319010 on 2017/02/23 by Ben.Marsh
UBT: Fix exception when a file that was previously part of the working set is deleted.
Change 3319134 on 2017/02/23 by Robert.Manuszewski
Better fix for a deadlock when flushing log while it's already being flushed due to flush timer on the async log writer thread.
Change 3319249 on 2017/02/23 by Matthew.Griffin
Added a function to check if running with debug game libs instead of checking command line in multiple places
Added -RunConfig parameter, which has equivalent result to -debug if value of parameter starts with 'debug'
Added -RunConfig=$(Configuration) as a default commandline argument for Mac so that editor can use debug game libs
Removed -Shipping argument from VCProject generation as it's not used anymore
Change 3319253 on 2017/02/23 by Maciej.Mroz
#jira UE-41846
New mechanism to gather modules necessary for Nativized Assets. The modules are listed based on included headers. Previously the dependencies was gathered only in FBlueprintNativeCodeGenManifest::GatherModuleDependencies.
Change 3319591 on 2017/02/23 by Ben.Marsh
Don't strip prefixes beginning with WARNING: or ERROR: using the Postp filter.
Change 3320357 on 2017/02/23 by Steven.Hutton
Slight changes to Add Crash method - Returning select fields instead of entity objects in queries for perf reasons.
Change 3320361 on 2017/02/23 by Steven.Hutton
Performance improvements subsequent to the recent database changes.
Change 3320446 on 2017/02/23 by Steven.Hutton
adding my temporary performance tracker class - reports to a private slack channel with add crash performance data.
Change 3320479 on 2017/02/23 by Ben.Marsh
Fix CIS errors.
Change 3320576 on 2017/02/23 by Jin.Zhang
Update CrashReporter to use AWS
Change 3320742 on 2017/02/23 by Jin.Zhang
Merging crash caching
Change 3321119 on 2017/02/24 by Robert.Manuszewski
DLL injection protection support for non-monolithic builds
Change 3323308 on 2017/02/27 by Matthew.Griffin
Moved compilation of SwarmInterface after its dependencies so that we will see a build failure immediately if they change version in future
Change 3323423 on 2017/02/27 by Chad.Garyet
Adding a script to check and warn about csproj targeted .net versions being mismatched
#JIRA UE-39624
Change 3323442 on 2017/02/27 by Ben.Marsh
UBT: Output an error if an engine module references a game module.
Change 3323743 on 2017/02/27 by Ben.Marsh
PR #3303: Resolved PVS scan issues (Contributed by projectgheist)
Change 3323748 on 2017/02/27 by Ben.Marsh
Convert whitespace to tabs.
Change 3324851 on 2017/02/28 by Chris.Wood
Add Odin symbol locations to engine config for MDD on CR server.
NotForLicensees
Change 3324979 on 2017/02/28 by Gil.Gribb
Fixed bad merge of priority change in the EDL.
Change 3326889 on 2017/03/01 by Steven.Hutton
Update to buggs controller to generate faster queries.
Change 3326910 on 2017/03/01 by Robert.Manuszewski
Removing legacy #if from PackageFileSummary.
Change 3327118 on 2017/03/01 by Gil.Gribb
UE4 - Fixed race that resulted in a memory leak when reading compressed paks.
Change 3327633 on 2017/03/01 by Gil.Gribb
UE4 - Added a cvar to control the pak precacher thottle.
Change 3327674 on 2017/03/01 by Steve.Robb
Unified boilerplate between all generated code files.
Change 3328544 on 2017/03/01 by Chris.Wood
CrashReportProcess.config update (CRP v1.2.17)
Tweaks to a few values.
Update website URL to explicitly point to old, non-cloud site on devweb-02.
Change 3328714 on 2017/03/01 by Chris.Wood
Correct CRP config regression. Point website at new cloud site. Still v1.2.17
Change 3329192 on 2017/03/02 by Matthew.Griffin
Added Shared Build Id file to the list of Precompiled Build Dependencies in a target receipt so that it's brought into an installed build
Change 3329285 on 2017/03/02 by Ben.Marsh
UGS: Allow a project to specify a filters for the streams that should be displayed for fast-switching to. The QuickSelectStreamList seting in the [Options] section of the project settings references a depot path containing a list of strings used to filter the stream list. An option is shown to switch back to showing all available streams, if desired.
Change 3330636 on 2017/03/02 by Ben.Marsh
UBT: Bump version number of C++ include cache to force it to be rebuilt with additional include information for the default RC files.
Change 3331262 on 2017/03/03 by Robert.Manuszewski
Merging Dev-LoadTimes to Dev-Core (Garbage Collection performance improvements)
- Improved GC multithreading
- Improved BeginDestroy performance
- Introduced ULevelActorCluster for StaticMeshActor and ReflectionCapture actor clustering (can be toggled through project settings or console command gc.ActorClusterEnabled)
- A few improvements to AddReferencedObjects functions
- Misc improvements to GC code
- Garbage Collector now properly handles clusters which had their objects marked as pending kill
- Blueprints can now create clusters too (can be toggled through project settings or console command gc.BlueprintClusteringEnabled, defaults to disabled)
Change 3331285 on 2017/03/03 by Robert.Manuszewski
A few fixes for the previous check-in.
Change 3332001 on 2017/03/03 by Ben.Marsh
UBT: Add support for generating a UDN file containing the valid settings for BuildConfiguration.xml. Pass -configdoc=<filename> on the command line to generate such a file.
Change 3332022 on 2017/03/03 by Ben.Marsh
Update documentation for where to find the BuildConfiguration settings.
Change 3332031 on 2017/03/03 by Ben.Marsh
Remove documentation for Windows XP support; it has been removed in the 4.16 release.
Change 3332256 on 2017/03/03 by Ben.Marsh
UBT: Add support for generating a UDN page containing module and target settings.
Change 3332458 on 2017/03/03 by Ben.Marsh
UBT: Improvements to generated documentation.
Change 3332459 on 2017/03/03 by Ben.Marsh
Add generated documentation for .target.cs files, .build.cs files, and BuildConfiguration.xml files.
Change 3332460 on 2017/03/03 by Ben.Marsh
UBT: Make LinkTypePrivate actually private, so it doesn't show up in the docs.
Change 3332899 on 2017/03/06 by Robert.Manuszewski
Making sure actor clustering is not used in the editor (fix for actors being deleted when GC runs in the editor)
#jira UE-42548
Change 3332955 on 2017/03/06 by Maciej.Mroz
Nativization distinguishes client and server platform:
- Separated lists on additional assets, additional modules, excluded assets, excluded modules, excluded paths (in config)
- Context (compilation options, nativization options and platform) is deliveren to BPCOmpilerCppBackend in FCompilerNativizationOptions struct.
- Wrappers (for unconverted BPs) are created only when they are directly called.
- Fortnite dedicated server can be nativized
Change 3332990 on 2017/03/06 by Ben.Marsh
UBT: Add more comprehensive wrapper methods for System.IO.File and System.IO.Directory to FileReference and DirectoryReference.
Change 3333032 on 2017/03/06 by Ben.Marsh
Documentation for build tools
Change 3333037 on 2017/03/06 by Ben.Marsh
Add a build step to extract UAT and UBT documentation from XML comments.
Change 3333089 on 2017/03/06 by Ben.Marsh
UAT: Re-enable logging the calling function to the console in UAT. Needs a pass for readability first.
Change 3333651 on 2017/03/06 by Gil.Gribb
UE4 - Fix a werid recursive situation where StaticLoadObject could return an object that has not finished loading. Also produces a fatal error if this sometimes happens. EDL only.
Change 3335236 on 2017/03/07 by Ben.Marsh
UGS: Set the sync changelist separately to the compatibility changelist.
Change 3335261 on 2017/03/07 by Gil.Gribb
UE4 - Fixed batched render fences when BeginDestroy calls FlushRenderingCommands.
Change 3335740 on 2017/03/07 by Gil.Gribb
maybe fix static analysis warning
Change 3335945 on 2017/03/07 by Steve.Robb
Move FFindInstancedReferenceSubobjectHelper code out of header.
Add map/set property support to allow instanced members of these container types to be handled during CPFUO.
https://udn.unrealengine.com/questions/349232/tmap-with-instanced-object-as-value-gets-cleared-o.html
Change 3336693 on 2017/03/07 by Ben.Marsh
UBT: Use shared PCHs for game plugins by default, to reduce time spent generating individual PCHs.
Change 3336694 on 2017/03/07 by Steve.Robb
Static assert added to TMap to prevent the use of keys which don't implement a GetTypeHash.
Fixes to types which relied on implicit conversions when calling GetTypeHash.
Workaround in SAssetView.h and PropertyEditorModule.h for an apparent VC bug where the compiler wrongly instantiates TPointerIsConvertibleFromTo for certain forward-declared types, causing future TSharedPtr conversions to fail.
#jira UE-42441
Change 3336698 on 2017/03/07 by Steve.Robb
Hardcoded endpoint handling replaced with a generic string.
Obsolete .proto and .java code generation removed.
Change 3336811 on 2017/03/07 by Wes.Hunt
Add a game blacklist to the crash report processor. Fixed a syntax error in Config.cs, added a XML comment to shut up a warning.
Change 3336973 on 2017/03/08 by Steve.Robb
Fix for missing GetTypeHash in a plugin.
Change 3336996 on 2017/03/08 by Steve.Robb
Significant refactor of code generation, to try and make data flow more apparent.
Change 3337571 on 2017/03/08 by Steve.Robb
CIS fixes for missing GetTypeHash functions.
Non-unity fix.
Change 3337588 on 2017/03/08 by Gil.Gribb
UE4 - Fixed obscure check with flushing rhi resources.
Change 3337620 on 2017/03/08 by Steve.Robb
WITH_HOT_RELOAD_CTORS macros removed.
UseVTableConstructors config option removed.
Change 3339369 on 2017/03/09 by Steve.Robb
GetTypeHash overload for nn::account::Uid.
Change 3339464 on 2017/03/09 by Daniel.Lamb
Fixed assert in 4.15 to do with trying to gather dependency info from invalid packages.
#jira UE-42583
#test Editor + Cook + Run shootergame
Change 3339465 on 2017/03/09 by Maciej.Mroz
Fixed serialization issue, after UserDefinedEnum was used in EnumProperty.
Change 3339469 on 2017/03/09 by Maciej.Mroz
Fixed Nativization problem, when default value is passed as non-const reference.
Change 3340178 on 2017/03/09 by Daniel.Lamb
Added support for in memory only packages. The Cooker ignores these and added core functions to recognize these packages.
Other systems will need to add support where nessisary.
Change 3341002 on 2017/03/10 by Maciej.Mroz
Nativization: Fixed FFindHeadersToInclude. Headers necessary for owners of subobjects are properly included.
Change 3341076 on 2017/03/10 by Steve.Robb
Fix for FBakedTextureSourceInfo move semantics.
#jira UE-42658
Change 3341160 on 2017/03/10 by Gil.Gribb
UE4 - Fix hazard with SetMaterialUsage from a thread.
Change 3341409 on 2017/03/10 by Steve.Robb
Reduction of the generated code size for StaticRegisterNatives functions.
Change 3341523 on 2017/03/10 by Steve.Robb
Code generation simplified.
Change 3341800 on 2017/03/10 by Ben.Marsh
UnrealVS: Fix UnrealVS compatibility with RTM version of Visual Studio 2017. 2017 toolchain for extensions is no longer able to build <= 2015 extensions due to validation of the VSIX manifest, so create a separate solution for it.
Change 3342034 on 2017/03/10 by Ben.Marsh
Fix compiler setting not being loaded correctly into the Windows target settings dialog.
#jira UE-42746
Change 3342041 on 2017/03/10 by Ben.Marsh
Fix -ErrorOnEngineContentUse not being set in the cooker options correctly.
Change 3342094 on 2017/03/10 by Steve.Robb
Fix to deteministic name order during code generation.
Change 3342251 on 2017/03/10 by Daniel.Lamb
Integrate fix for resave lightmaps commandlet when upgrading from no mapbuilddatapackages to mapbuilddatapackages.
#thanks Tim.Hagberg
#test None
Change 3342961 on 2017/03/13 by Robert.Manuszewski
Fixing memory leak when playing while running -nullrhi on the commandline in cooked games caused by shader resources not being destroyed.
#jira FORT-38977
Change 3343022 on 2017/03/13 by Steve.Robb
GetTypeHash fixes for FUniqueNetIdLive.
#jira UE-42788
Change 3343448 on 2017/03/13 by Steve.Robb
Compiled-in defer object order fixed.
Debuggability of the deferred registration map improved.
#jira UE-42828
[CL 3345747 by Ben Marsh in Main branch]
2017-03-14 15:48:33 -04:00
|
|
|
TArray<class IScriptGeneratorPluginInterface*>& ScriptPlugins,
|
|
|
|
|
FUHTMakefile& UHTMakefile
|
2015-03-02 06:44:04 -05:00
|
|
|
);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
// Performs a preliminary parse of the text in the specified buffer, pulling out:
|
|
|
|
|
// Class name and parent class name
|
|
|
|
|
// Is it an interface
|
|
|
|
|
// The list of other classes/interfaces it is dependent on
|
|
|
|
|
//
|
|
|
|
|
// It also splits the buffer up into:
|
|
|
|
|
// ScriptText (text outside of #if CPP and #if DEFAULTS blocks)
|
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3049602)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2946506 on 2016/04/18 by Steven.Hutton
Update to Crash Reporter buggs table to add new search fields and inclusion of packages needed for e-mail reports.
Change 3017807 on 2016/06/17 by Chris.Wood
Improved Crash Report Process folder delete code as it could sometimes fail.
[UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue
Also added logging to Slack when stop request received instead of just when stop is complete.
Change 3019367 on 2016/06/20 by Chris.Wood
Improve Crash Report Process logging to track bad reads from S3.
Also, better logging when CleanReport fails to delete folders.
Change 3019376 on 2016/06/20 by Steve.Robb
Clarification of assert message and comments which talk about 'null' TFunctions.
Tidy-up of dead code.
Change 3019409 on 2016/06/20 by Steve.Robb
New Find and FindByPredicate algorithms for finding stuff in arbitrary containers.
Change 3022658 on 2016/06/22 by Chris.Wood
Discarding duplicated crash reports earlier in read from Data Router process to avoid clashes in the landing zone (CRP v1.1.11)
[UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue
Also improved logging to Slack with better layout, fixed event ordering and counting duplicates.
Change 3022840 on 2016/06/22 by Steve.Robb
Skipped UHT attributes removed.
Change 3022907 on 2016/06/22 by Robert.Manuszewski
Fixing crash when adding a new C++ class to project
#jira UE-32333
Change 3023169 on 2016/06/22 by Steve.Robb
Checks for UTHINGs in skipped preprocessor blocks.
Fixes for skipped UTHINGs and some other parsing accidents.
#jira UE-31627
Change 3023239 on 2016/06/22 by Steve.Robb
Fix for JSON date parsing reported here: https://udn.unrealengine.com/questions/299342/fdatetime-json-serialization-bug.html
Change 3026812 on 2016/06/24 by Mieszko.Zielinski
Marked FEnvQueryInstance::AddItemData UEnvQueryItemType_Point specialization as AIMODULE_API #UE4
Change 3028235 on 2016/06/27 by Robert.Manuszewski
PR #2535: BUGFIX: FPS pop-up updates when loading new stat file (Contributed by projectgheist)
Change 3028282 on 2016/06/27 by Steve.Robb
Fix for missing UFUNCTION check in skipped preprocessor blocks.
#jira UE-31627
Change 3028284 on 2016/06/27 by Steve.Robb
Debuggability improvements and coding standards changes.
Change 3028343 on 2016/06/27 by Steve.Robb
Fix for UHT error in WEX.
#jira UE-32464
Change 3028393 on 2016/06/27 by Steve.Robb
Fix for hot reload of enums finding the old enum.
Fix to stop SPropertyEditorNumeric caching the enum flags.
#jira UE-31658
Change 3030362 on 2016/06/28 by Robert.Manuszewski
Fixing hang when cooking.
Change 3030462 on 2016/06/28 by Steve.Robb
Assert added to PackageTools::GetFilteredPackageList() to help with catching a bug reported in the wild.
#jira UE-32001
Change 3034341 on 2016/06/30 by Robert.Manuszewski
Modified crash handling code (on Windows) to handle two threads crashing at the same time properly. Previously the second crash would force the process to exit before generating the crash report.
Added 'debug twothreadsgpf' command to test the functionality.
Change 3034342 on 2016/06/30 by John.Mahoney
Fix for crash when loading an empty cached asset registry.
#jira UE-32232
Change 3035599 on 2016/07/01 by Chris.Wood
Added support for CrashType string to Crash Report Process. CRP v1.1.12
[UE-30592] - Crash Reporter should determine crash type on client and pass string to server
Also fixes problem with reports falling back on the legacy WER metadata when a crash context exists. They now only read the error message from metadata if available and keep crash context data when possible.
Added in missing crash context parameters that have been added to clients but not known by the server.
Change 3035787 on 2016/07/01 by John.Mahoney
Fix for crash when DuplicateRedirects does not contain the DependentObject when saving dependencies. It will still fall through to the assertion below, but it will now fail with a useful error message instead of a generic 'Pair != nullptr' from Map.h.
#jira UE-30189
Change 3036933 on 2016/07/04 by Steve.Robb
Proper forwarding constructor for FAsyncTask.
Change 3036938 on 2016/07/04 by Steve.Robb
Fix for CDO hot reload corrupting memory when replacing references inside structs.
#jira UE-29335
Change 3036960 on 2016/07/04 by Steve.Robb
Fix for FAnsiAllocator::ResizeAllocation when resizing to zero.
Change 3037423 on 2016/07/05 by Steve.Robb
FModuleManager::UnloadOrAbandonModuleWithCallback split into two instead of switching behavior with a bool.
Change 3037464 on 2016/07/05 by Steve.Robb
HotReload.cpp cleanup:
Deep nesting flattened.
Linear array searches replaced with maps.
FHotReloadModule::GetGameModules made into a non-member function and split into two.
Comment and coding standard fixes.
Change 3037741 on 2016/07/05 by John.Mahoney
Fix for COTF not checking the correct timestamps on startup.
#jira UE-31023
Change 3037846 on 2016/07/05 by Steve.Robb
Fix for compile button disappearing on a bad compile.
#jira UE-31575
Change 3037994 on 2016/07/05 by Steve.Robb
Static analysis fixes:
warning C6308: 'realloc' might return null pointer: assigning null pointer to 'Data', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
Change 3039186 on 2016/07/06 by Robert.Manuszewski
Enabling crash callstack logging by default.
Change 3039220 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C28159: Consider using 'InitiateSystemShutdownEx' instead of 'ExitWindowsEx'. Reason: Legacy API. Rearchitect to avoid Reboot
warning C6001: Using uninitialized memory 'UserNameLength'
warning C6001: Using uninitialized memory 'DomainNameLength'
Change 3039230 on 2016/07/06 by Steve.Robb
Fix for VC internal compiler errors.
Change 3039237 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6385: Reading invalid data from 'Path': the readable size is '400' bytes, but 'PathCurrentDepth' bytes may be read.
Change 3039287 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6509: Invalid annotation: 'return' cannot be referenced in some contexts
warning C6101: Returning uninitialized memory '*lpdwExitCode'. A successful path through the function does not set the named _Out_ parameter.
warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToStorage'.
warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToObject'.
warning C6031: Return value ignored: 'CoCreateInstance'.
Change 3039359 on 2016/07/06 by Graeme.Thornton
Compile error fix for FAsyncTask, courtesy of SteveR
Change 3039534 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6319: Use of the comma-operator in a tested expression causes the left argument to be ignored when it has no side-effects.
Change 3039545 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value.
Change 3039578 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6263: Using _alloca in a loop: this can quickly overflow stack.
Change 3039623 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'
warning C6308:'realloc' might return null pointer: assigning null pointer to 'X', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
warning C6385: Reading invalid data from 'X': the readable size is 'Y' bytes, but 'Z' bytes may be read.
warning C6386: Buffer overrun while writing to 'X': the writable size is 'Y' bytes, but 'Z' bytes might be written.
warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did.
Change 3039630 on 2016/07/06 by John.Mahoney
Fix for crash when spawning an actor using a template object that has instance components. UActorComponent::PostInitProperties was adding itself to the owner's InstanceComponents array, resulting in a realloc of that array and invalidating the reference that the owner's ObjectInitializer was trying to replace while instantiating that property. The new instance component will be added to the array as part of the owner's initialization anyway, so it is not necessary to do it here.
#jira UE-29123
Change 3039664 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6386: Buffer overrun while writing to 'NewKeys': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written.
warning C6386: Buffer overrun while writing to 'NewHeapIndexes': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written.
Change 3039673 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'v'.
Change 3039690 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'.
warning C6246: Local declaration of 'X' hides declaration of the same name in outer scope.
warning C6262: Function uses '121180' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap.
warning C6263: Using _alloca in a loop: this can quickly overflow stack.
Change 3040868 on 2016/07/07 by Graeme.Thornton
Config based class stripping for server builds
Change 3040872 on 2016/07/07 by Graeme.Thornton
Remove "return false" NeedsLoadForServer functions from engine code
Change 3040997 on 2016/07/07 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Landscape'.
warning C6011: Dereferencing NULL pointer 'rhs.Allocation.LayerInfo'.
warning C6011: Dereferencing NULL pointer 'lhs.Allocation.LayerInfo'.
Change 3041004 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6336: Arithmetic operator has precedence over question operator, use parentheses to clarify intent.
Change 3041014 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6287: Redundant code: the left and right sub-expressions are identical.
Change 3041111 on 2016/07/07 by Steve.Robb
Removal of an obsolete error message about INI file case sensitivity.
Change 3041150 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use && instead?
Change 3041274 on 2016/07/07 by Steve.Robb
Static analysis fixes: warning C6001: Using uninitialized memory 'X'.
Change 3041294 on 2016/07/07 by Chris.Wood
Fixed protocol buffer and decompression errors in Crash Report Process (v.1.1.14)
[UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack
Size of buffer received from S3 is incorrect for some records. Fixed read problems by using size header value instead of stream length.
Increased buffer size for decompression as this was sometimes too small.
Modified S3 reading code to look for multiple records in each downloaded file.
Change 3041472 on 2016/07/07 by Steve.Robb
Static analysis fixes:
warning C6294: Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed.
warning C6201: Index '1' is out of valid index range '0' to '0' for possibly stack allocated buffer 'NewHistory.Nodes'.
Change 3043074 on 2016/07/08 by John.Mahoney
Fix for COTF incorrectly reconstructing the original asset path based on the sandbox path when the game name differs from the game folder name.
Fix for COTF GetFiles not handling absolute GameDir paths properly.
#jira UE-31023
Change 3044461 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6386: Buffer overrun while writing to 'Attributes': the writable size is '16384' bytes, but '-8' bytes might be written.
Change 3044470 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'Node.Sequence'.
Change 3044476 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'Property'.
Change 3044551 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'KeyAreaNode' did.
Change 3044664 on 2016/07/11 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'ToLandscape->SplineComponent'.
warning C28182: Dereferencing NULL pointer. 'SplinesComponent' contains the same NULL value as 'Landscape->SplineComponent' did.
warning C6011: Dereferencing NULL pointer 'Landscape->SplineComponent'.
warning C6385: Reading invalid data from 'out': the readable size is 'sizeof(kiss_fft_cpx)*Dims[0]*Dims[1]' bytes, but '16' bytes may be read.
Change 3044716 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6385: Reading invalid data from 'this->ScreenSize': the readable size is '32' bytes, but '-4' bytes may be read.
Change 3044717 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Window' contains the same NULL value as 'ElementType * Window=AllWindows.FindByPredicate((*FStaticMeshEditorTest::RunTest::<lambda_46fd0093f3912289e870263afe1fcb2e>(ExpectedTitle)))' did.
This appears to be a false positive.
Change 3044787 on 2016/07/11 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'FbxObject'.
warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'RigidMeshNode' did.
warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'Result' did.
Change 3045933 on 2016/07/12 by Steve.Robb
Overloading support for TSharedPtr, TSharedRef and TWeakPtr.
Change 3045960 on 2016/07/12 by Robert.Manuszewski
Fixing a crash in Portal (and any other program that uses UObjects and GCs, with the exception of UHT) caused by classes not having their token stream assembled.
Change 3045963 on 2016/07/12 by Steve.Robb
PLATFORM_COMPILER_HAS_EXPLICIT_OPERATORS, FORCEINLINE_EXPLICIT_OPERATOR_BOOL and SAFE_BOOL_OPERATORS macros removed.
THasOperatorEquals and THasOperatorNotEquals traits moved to their own header.
Change 3045967 on 2016/07/12 by Steve.Robb
Initializer list support for TArray and TSet.
Change 3045968 on 2016/07/12 by Robert.Manuszewski
Fixing an ensure after typing 'stat dumphitches' in console.
Change 3045992 on 2016/07/12 by Robert.Manuszewski
Making sure CoreUObject headers are included for programs that don't include the engine (fixing MinidumpDiagnostics CIS failure)
Change 3047870 on 2016/07/13 by Steven.Hutton
Updated CRW to entity framework with repository models. #rb none
Change 3047871 on 2016/07/13 by Steven.Hutton
Add repository models #rb none
Change 3049468 on 2016/07/14 by Steven.Hutton
Fix broken project files. #rb none
#lockdown Nick.Penwarden
[CL 3050320 by Robert Manuszewski in Main branch]
2016-07-14 14:54:00 -04:00
|
|
|
static void SimplifiedClassParse(const TCHAR* Filename, const TCHAR* Buffer, TArray<FSimplifiedParsingClassInfo>& OutParsedClassArray, TArray<FHeaderProvider>& DependentOn, FStringOutputDevice& ScriptText);
|
2015-01-20 09:33:54 -05:00
|
|
|
|
|
|
|
|
/**
|
2014-03-14 14:13:41 -04:00
|
|
|
* Returns True if the given class name includes a valid Unreal prefix and matches up with the given original class Name.
|
|
|
|
|
*
|
|
|
|
|
* @param InNameToCheck - Name w/ potential prefix to check
|
|
|
|
|
* @param OriginalClassName - Name of class w/ no prefix to check against
|
|
|
|
|
*/
|
|
|
|
|
static bool ClassNameHasValidPrefix(const FString InNameToCheck, const FString OriginalClassName);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Tries to convert the header file name to a class name (with 'U' prefix)
|
|
|
|
|
*
|
|
|
|
|
* @param HeaderFilename Filename.
|
|
|
|
|
* @param OutClass The resulting class name (if successfull)
|
|
|
|
|
* @return true if the filename was a header filename (.h), false otherwise (in which case OutClassName is unmodified).
|
|
|
|
|
*/
|
|
|
|
|
static bool DependentClassNameFromHeader(const TCHAR* HeaderFilename, FString& OutClassName);
|
|
|
|
|
|
|
|
|
|
/**
|
2014-06-12 23:22:18 -04:00
|
|
|
* Transforms CPP-formated string containing default value, to inner formated string
|
|
|
|
|
* If it cannot be transformed empty string is returned.
|
2014-03-14 14:13:41 -04:00
|
|
|
*
|
2014-06-12 23:22:18 -04:00
|
|
|
* @param Property The property that owns the default value.
|
|
|
|
|
* @param CppForm A CPP-formated string.
|
|
|
|
|
* @param out InnerForm Inner formated string
|
|
|
|
|
* @return true on success, false otherwise.
|
2014-03-14 14:13:41 -04:00
|
|
|
*/
|
|
|
|
|
static bool DefaultValueStringCppFormatToInnerFormat(const UProperty* Property, const FString& CppForm, FString &InnerForm);
|
|
|
|
|
|
2015-01-20 09:33:54 -05:00
|
|
|
/**
|
|
|
|
|
* Parse Class's annotated headers and optionally its child classes. Marks the class as CLASS_Parsed.
|
|
|
|
|
*
|
|
|
|
|
* @param AllClasses the class tree containing all classes in the current package
|
|
|
|
|
* @param HeaderParser the header parser
|
|
|
|
|
* @param SourceFile Source file info.
|
|
|
|
|
*
|
|
|
|
|
* @return Result enumeration.
|
|
|
|
|
*/
|
Copying //UE4/Dev-Frame to //UE4/Main
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2775736 on 2015/11/20 by Richard.Hinckley
Fix for Paper2D issue with repeated imports in one edutor session. Paper2D import process now creates a new importer at the end. This prevents the sprite sheet import process from leaving frame data around, causing subsequent imports (including imports of different sprite sheets) to include this data inappropriately.
#codereview michael.noland
Change 2776352 on 2015/11/20 by Zak.Middleton
#ue4 - Avoid useless DetachFromParent() for the same pending AttachParent during registration. Added missing UpdateOverlaps() when detaching from object simulating physics.
#rb Marc.Audy, Ori.Cohen
#codereview James.Golding
Change 2776401 on 2015/11/20 by Mieszko.Zielinski
Implemented a way to do batched points projection to navmesh, where every point can declare a custom projection box #UE4
The biggest advantage here is that projection box is independent from projected point - no more manual offsetting of projected point to achieve "100uu up and 500uu down"-like functionality
#jira UE-23705
#rb Lukasz.Furman
Change 2777450 on 2015/11/23 by Martin.Wilson
Bake additive data into animations during cooking to avoid doing additive calculations and extra pose extraction and blending at runtime
#rb Thomas.Sarkanen
Change 2777698 on 2015/11/23 by Mieszko.Zielinski
Gameplay debugging tools fixes #UE4
Fixes:
- made newly added logs respect Log Visualizer's filters
- added handling of invalid data when trying to draw EGameplayDebuggerShapeElement::Cylinder in AGameplayDebuggingHUDComponent::DrawPerception. This is a patch, root cause to be found.
- fixed Log Visualizer resetting it's data while trying to serialize invalid objects. This is a patch, root cause to be addressed.
In addition
- while at it removed bunch of 'auto' and 'class' keywords from the files I've touched
#rb Lukasz.Furman
Change 2777762 on 2015/11/23 by Mieszko.Zielinski
Removed BlackboardComponent's functionality deprecated since 4.7 #UE4
#rb Lukasz.Furman
Change 2777839 on 2015/11/23 by Zak.Middleton
#ue4 - Wrap all vector library calls to math functions through our FMath versions, so they benefit from fixes or improvements therein. Added Exp2() function.
#rb Laurent.Delayen
Change 2777840 on 2015/11/23 by Zak.Middleton
#ue4 - Fix up uses of library math functions to go through our FMath namespace.
#rb Laurent.Delayen
Change 2778287 on 2015/11/23 by Stan.Melax
deprecation of FCollisionQueryParams(bool)
See 2774707 description for the whole story
#OR-9936
#codereview marc.audy
Changes to kite will have to be in a separate check-in
I couldn't submit to all files from the framework branch addition fixes have their files are shelved in cl 2778299
Change 2778507 on 2015/11/23 by Marc.Audy
Eliminate spurious cook warnings for known missing packages
#rb Michael.Noland
Change 2778546 on 2015/11/23 by Aaron.McLeran
Moving occlusion feature settings from audio component to sound attenuation settings struct.
- Sound attenuation setting struct is used for all sounds that do 3d spatialization so it make sense for the occlusion feature settings to be there.
- Kept old low-pass frequency filter setting values on audio component (where HighFrequencyAttenuation used to be)
#rb Zak.Middleton
Change 2778664 on 2015/11/23 by Zak.Middleton
#ue4 - Clarify some comparison functions (IsZero, IsNearlyZero, Equals) in FRotator to explain that they compare as orientations, not other interpretations such as rotational speed, winding, etc.
#rb Aaron.Mcleran
#codereview Frank.Gigliotti
Change 2779335 on 2015/11/24 by Mieszko.Zielinski
Another VisualLog patch to avoid crashing due to a core bug that remains to be investigated #UE4
Again, the core bug here is related visual log trying to serialize invalid objects on a regular basis.
#rb Lukasz.Furman
Change 2779338 on 2015/11/24 by Benn.Gallagher
Fixed crash in Persona when focus is taken from a different window
#jira UE-22516
#rb Ben.Cosh
Change 2779375 on 2015/11/24 by Benn.Gallagher
Fix for deadlock in destructibles. Aquiring actor buffer without releasing causes an infinite wait on next aquire.
#rb Ori.Cohen
Change 2779753 on 2015/11/24 by Zak.Middleton
#ue4 - FMath::Atan2() no longer calls atan2f() because of some compiler or library bugs causing it to randomly return NaN for valid input. It now uses a high-precision minimax approximation instead, measured to be 2x faster than the stock C version.
#rb Brian.Karis
Change 2779853 on 2015/11/24 by Marc.Audy
2015-12-02 16:42:06 -05:00
|
|
|
static ECompilationResult::Type ParseHeaders(FClasses& AllClasses, FHeaderParser& HeaderParser, FUnrealSourceFile* SourceFile, FUHTMakefile& UHTMakefile);
|
2015-01-20 09:33:54 -05:00
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
protected:
|
|
|
|
|
friend struct FScriptLocation;
|
|
|
|
|
|
|
|
|
|
// For compiling messages and errors.
|
|
|
|
|
FFeedbackContext* Warn;
|
|
|
|
|
|
|
|
|
|
// Filename currently being parsed
|
|
|
|
|
FString Filename;
|
|
|
|
|
|
2015-11-18 16:20:49 -05:00
|
|
|
// Makefile to which parsing intermediate data will be saved.
|
|
|
|
|
FUHTMakefile& UHTMakefile;
|
|
|
|
|
|
2014-06-12 23:22:18 -04:00
|
|
|
// Was the first include in the file a validly formed auto-generated header include?
|
2014-03-14 14:13:41 -04:00
|
|
|
bool bSpottedAutogeneratedHeaderInclude;
|
|
|
|
|
|
|
|
|
|
// Current nest level, starts at 0.
|
|
|
|
|
int32 NestLevel;
|
|
|
|
|
|
|
|
|
|
// Top nesting level.
|
|
|
|
|
FNestInfo* TopNest;
|
|
|
|
|
|
2015-01-20 09:33:54 -05:00
|
|
|
/**
|
|
|
|
|
* Gets current nesting scope.
|
|
|
|
|
*/
|
|
|
|
|
FScope* GetCurrentScope() const
|
|
|
|
|
{
|
|
|
|
|
return TopNest->GetScope();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets current file scope.
|
|
|
|
|
*/
|
|
|
|
|
FFileScope* GetCurrentFileScope() const
|
|
|
|
|
{
|
|
|
|
|
int32 Index = 0;
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3042808)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3026763 on 2016/06/24 by Phillip.Kavan
[UE-32259] Fix missing heat map coloration on pure nodes.
change summary:
- modified FScriptExecutionNode::RefreshStats() to ensure that child nodes are updated for 'standard' exec node types.
#jira UE-32259
Change 3026829 on 2016/06/24 by Mike.Beach
Mirroring CL 3025832 from Release-4.12
Guarding GetClassDefault nodes against asserts while loading cyclically dependent content. Regenerating one Blueprint could trigger a ReconstructNode() in a separate Blueprint (that had already been regenerated). However, not all objects in that Blueprint's package have been post-loaded, so object Rename() will assert is you try to reset loaders with it.
#jira UE-32356
Change 3026888 on 2016/06/24 by Mike.Beach
PR #2460: Functionality to flag blueprint as abstract (Contributed by Pierdek)
Change 3027245 on 2016/06/24 by Phillip.Kavan
[UEBP-180] Alternate treatment for Blueprint profiler tree view node expander icon (to differentiate from exec pin icons).
change summary:
- added SProfilerStatExpander (from BenC)
- modified original to replace indicator icons w/ FontAwesome glyphs (they're a bit clearer) - see screenshot attached to JIRA
#jira UEBP-180
Change 3027279 on 2016/06/24 by Ryan.Rauschkolb
Fixed issue where unsupported pins could be added to custom Event nodes which can lead to a crash
#jira UE-31148
Change 3027606 on 2016/06/25 by Dan.Oconnor
Back out changelist 3027279, this change breaks custom events coupled to multicast delegate nodes (see ProjRocket.uasset in shooter game for an example)
Change 3028731 on 2016/06/27 by Ben.Cosh
Minor change to the spacing around the new expander icons for the blueprint profiler.
#Jira UEBP-180 - Pin icons are too similar to the tree expander icons in the node execution graph display.
#Proj Kismet
Change 3028740 on 2016/06/27 by Ben.Cosh
This change modifies the way the blueprint profiler detects and maps delegate events that are created at blueprint compile time.
#Jira UE-32055 - Assert when profiling timelines in the blueprint profiler
#Proj BlueprintProfiler, KismetCompiler, BlueprintGraph, LiveEditor, Kismet, Engine
Change 3028844 on 2016/06/27 by Maciej.Mroz
#jira UE-32470 Nativized Orion: Sparrow has no Rentless ability.
Better way to find Placeholder classes in BlueprintNativeCodeGenModule.
Change 3029573 on 2016/06/27 by Ryan.Rauschkolb
Fixed issue where Preview Connection would be drawn incorrectly when an input and output pin share the same name
#jira UE-32211
Change 3030335 on 2016/06/28 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
List of AssetRegistrySearchable properties, that should be stored for DynamicClasses in moved to .ini file.
Added SearchDynamicClassCues function in GameplayCueManager.cpp
Change 3030492 on 2016/06/28 by Ben.Cosh
CIS Mac Build fix
Change 3030494 on 2016/06/28 by Ben.Cosh
This change reworks the way the blueprint profiler maps latent re-entry points to address problems that could be triggered when multiple re-entries happenned within close proximity.
#Jira UE-32452 - Blueprint profiler asserts when a second latent entry is triggered
#Proj BlueprintProfiler, CoreUObject, Engine, Kismet
Change 3030612 on 2016/06/28 by Maciej.Mroz
typo fixed
Change 3031461 on 2016/06/28 by Dan.Oconnor
Fixed for crash involving a stale UEdGraphPin after performing an undo/redo operation inolving UEdGraphNode(s)
#jira UE-32553
Change 3031537 on 2016/06/28 by Ben.Cosh
Fix for a problem introduced in CL 3030494 and recent graph pin changes that caused problems uniquely naming tunnel entry/exit pins.
#Jira UE-32578 - Crash when profiling blueprint containing a for-loop
#Proj BlueprintProfiler
Change 3031556 on 2016/06/28 by Ben.Cosh
This fixes a problem with the profiler tracking of PIE actor instances adding a mechanism to refresh the actor references when a subsequent PIE session is started.
#Jira UE-32595 - Running two subsequent PIE sessions with a latent entry point causes an assert.
#Proj BlueprintProfiler, Kismet
Change 3031588 on 2016/06/28 by Ryan.Rauschkolb
Fixed issue where unsupported pins could be added to custom Event nodes which can lead to a crash
#jira UE-31148
Change 3031887 on 2016/06/28 by Dan.Oconnor
Fix for crash caused by stale pin access in SGraphPin, also fixes 'double opacity' effect when ctrl+dragging off of a macro
#jira UE-32604
Change 3031932 on 2016/06/28 by Dan.Oconnor
Fix for major regression in pin value visibility
#jira UE-32614
Change 3032568 on 2016/06/29 by Phillip.Kavan
[UE-31681] Ensure that cached component data cache template objects are referenced during garbage collection.
change summary:
- modified AActor::AddReferencedObjects() to include CurrentTransactionAnnotation
- added UChildActorComponent::AddReferencedObjects() to include CachedInstanceData
- also added FChildActorComponentInstanceData::AddReferencedObjects() to include ComponentInstanceData (just in case some future task happens to trigger a reference gather during its lifetime)
additional notes:
- should also resolve UE-32558
#jira UE-31681
Change 3032998 on 2016/06/29 by Dan.Oconnor
Fixing shutdown crash after LinkedTo lists are corrupted. An ensure couldn't fire when a node had already been destroyed. UE-32631 tracks the actual ensure.
#jira UE-32634
Change 3033448 on 2016/06/29 by Ryan.Rauschkolb
Discard Return Nodes that have no outputs when collapsing to function
#jira UE-23381
Change 3034407 on 2016/06/30 by Phillip.Kavan
[UE-32675] Fix no-editor compile issue.
Change 3034691 on 2016/06/30 by Ryan.Rauschkolb
Fixed issue where Macro nodes with ambiguous links could be collapsed into a function
Change 3034701 on 2016/06/30 by Ryan.Rauschkolb
Cleaned up UEdGraphSchema_K2::GetVariableTypeTree to use a filter rather than several booleans
Change 3035093 on 2016/06/30 by Maciej.Mroz
#jira UE-32683 BP_Hero Blueprint failing to compile in Orion - K2Node_CustomEvent_1050 is out of date
Temporary fix.
Change 3035440 on 2016/07/01 by Maciej.Mroz
#jira UE-32706 Nativized Orion crash - Cannot find "Root" subobject in ABP_HeroPedestal_C...
Make sure, the CDO of DynamicClass (and its subobjects) have AsyncLoading flag cleared.
Change 3035442 on 2016/07/01 by Maciej.Mroz
Added UDynamicClass::FindArchetype
#jira UE-30667 Ground material in Agora incorrect in Nativized Orion
Change 3036233 on 2016/07/01 by Dan.Oconnor
Proper handling of null pin references in compiler results logs
Change 3036541 on 2016/07/01 by Dan.Oconnor
Fix for more assymetry in LinkedTo after undo/redo. This solution addresses both UE-32645 and UE-32553. The key to correct behavior is to explictly detect the case where only one of the two nodes in a peer (LinkedTo) relationship are in the transaction buffer. Added IsObjectTransacting to transaction interface to detect this.
#jira UE-32645
Change 3036581 on 2016/07/02 by Dan.Oconnor
Non-editor fix
Change 3036632 on 2016/07/02 by Maciej.Mroz
Removed too strict check in BlueprintNativeCodeGenModule
Change 3036715 on 2016/07/02 by Maciej.Mroz
#jira UE-32612 Odin emits a error when nativized - attempting to access a hidden boolean bitfield property
- Private bitfield can be used as LHS expression in generated code.
- Refactoring. Introduced ENativizedTermUsage.
Change 3037014 on 2016/07/04 by Maciej.Mroz
#jira UE-32729 Orion failing to package for PS4 with Nativization
Make sure that temporary variable used in ternary operator: "context ? context->variable : temp-variable", has exactly the same type as the wanted variable.
Change 3037300 on 2016/07/05 by Maciej.Mroz
#jira UE-31756 Fixup hardcoded function names in BP=>Cpp backend
Change 3037303 on 2016/07/05 by Maciej.Mroz
#jira UE-31756
Nativization - fixed hardcoded string.
Change 3037307 on 2016/07/05 by Maciej.Mroz
AutomationTool:
Fixed issue: A nativized client was compiled with both client and server NativizedAssets plugins.
Paths to nativized BP plugin is stored in a map.
Change 3037712 on 2016/07/05 by Mike.Beach
Adding a non-const version of MultiFindPointer() for TMultiMap.
Change 3037790 on 2016/07/05 by Mike.Beach
Fixing a bug where overridden components in Blueprints could load with cleared properties - this could happen in cyclically dependent parent/child Blueprints (where the child's component would be zeroed). In this case, the Blueprint's CDO would be deferred, so to solve this new issue we now defer the Blueprint's sub-object overrides as well.
#jira UE-32693
Change 3038014 on 2016/07/05 by Ben.Cosh
Refactor of the blueprint profiler tunnel mapping and playback to address issues blocking MVP
#Jira UE-32056 - The blueprint profiler can still get hung up with cyclic links in the graph
#Proj Kismet, BlueprintProfiler, KismetCompiler, BlueprintGraph, UnrealEd
Change 3038533 on 2016/07/05 by Mike.Beach
PR #2558: Stopping Zoom-to-Fit On User Input (Fixed) (Contributed by MichaelSchoell)
Change 3038608 on 2016/07/05 by Dan.Oconnor
Fix for crash when altering ConstructObjectFromClass nodes, removed now unused InvalidateAndTrash function from UEdGraphPin, removed subpin leak counter
#jira FORT-26495
Change 3038770 on 2016/07/05 by Dan.Oconnor
Hiding TThreadSingleton<FBlueprintExceptionTracker>::Get() to fix clang for windows link error
#jira UE-31935
Change 3038841 on 2016/07/05 by Dan.Oconnor
Simple null check to prevent crash after loading a blueprint to diff. The diff'd blueprint is ending up in other blueprint's DependentBlueprintsToRecompile, for now this is the safest fix
#jira UE-31115
Change 3039179 on 2016/07/06 by Maciej.Mroz
#jira UE-31987 Editor crashes when transforming actor after applying instances changes
Selected (in Level editor) instance components are still selected after they are converted to regular components.
Change 3039216 on 2016/07/06 by Maciej.Mroz
#jira UE-31767 [CrashReport] UE4Editor_Engine!AActor::GetLevel() [actor.cpp:1663]
FIxed unsafe code.
Change 3040046 on 2016/07/06 by Ben.Cosh
This fixes a problem found where tunnel instances inside tunnel graphs fail to map correctly in the blueprint profiler
#Jira UE-32862 - Tunnel instances inside tunnels do not map correctly in the blueprint profiler
#Proj BlueprintProfiler
Change 3040061 on 2016/07/06 by Ben.Cosh
fix for bad unshelve before submit in CL 3040046
- Phillip already reviewed this version of the file and not what was actually submitted.
Change 3040346 on 2016/07/06 by Maciej.Mroz
#jira UE-32840 //UE4/Dev-Blueprints: UE4_StaticAnalysis completed with Warnings - 2 Warnings
Fix(?) for warning C28182
Change 3040349 on 2016/07/06 by Dan.Oconnor
Updating test data
Change 3040473 on 2016/07/06 by Dan.Oconnor
Fix SMyBlueprint in blueprint diff tool so that kismet inspector is updated with the object selected in SMyBlueprint, needed to investigate UE-18200
Change 3040536 on 2016/07/06 by Dan.Oconnor
Call to APITestFunction
Change 3040565 on 2016/07/06 by Dan.Oconnor
Clone saved GeneratedClass when not doing COL. Groundwork to fix for UE-17268.
Change 3040603 on 2016/07/06 by Dan.Oconnor
PR #2539: Option to disable Grid in the blueprint and material editor and change grid colors (Contributed by CelPlays)
#jira UE-32497
Change 3040798 on 2016/07/07 by Maciej.Mroz
Fixed warning C6011: Dereferencing NULL pointer 'Object'.
Added some comments.
#jira UE-32840
Change 3041185 on 2016/07/07 by Ben.Cosh
This fixes problems with the blueprint profiler with name collisions for nodes in different graphs and improves nested tunnel detection.
#Jira UE-32862 - Tunnel instances inside tunnels do not map correctly in the blueprint profiler
#Jira UE-32889 - Name collisions can now occur in the blueprint profiler for stat nodes.
#Proj BlueprintProfiler, Kismet
Notes:
This attempts to continue to address fall out from CL 3040046 to improve stability.
Previously execution nodes were patched into the function contexts that called a tunnel instance. However this proved problematic after spotting a rare case where node names collide between
between event and tunnel graphs and caused havok in the node mapping. This change moves to an approach that patches in tunnel contexts and any dependent contexts and instead attempts
to locate critical path nodes using a new node search system making use of these child function contexts.
CL 3040046 also modified TunnelContext's to be actually more representative of a tunnel instance context, I have updated naming conventions to reflect this for clarity.
The changes here also add a single function context for tunnel graphs which contain the bulk of the nodes in the graph and the tunnel instance contexts reference this and make use of it to create
non boundary / tunnel instance nodes so they are located in a single place for all instances of that tunnel graph.
Change 3041603 on 2016/07/07 by Dan.Oconnor
Fix for check failure: PreviousCDO != nullptr, when loading blueprints that have circularly dependent interfaces
#jira UE-31639
Change 3042058 on 2016/07/07 by Dan.Oconnor
Ensures that the correct ComponentClass is assigned to our template node. This pins are normally allocated lazilly in BlueprintActionFilterImpl::HasMatchingPin, so not a huge change
#jira UE-32769
Change 3042468 on 2016/07/08 by Maciej.Mroz
#jira UE-32882, UE-32887
Fixed Crash in UHT.
Fixed "Ambiguous search" error, when delegate has owner class declared.
Change 3042739 on 2016/07/08 by Maciej.Mroz
Nativization. Included headers for native subobjects.
Change 3042747 on 2016/07/08 by Maciej.Mroz
Minor changes in Orion code, necessary to compile the project with nativized Blueprints
Change 3042758 on 2016/07/08 by Maciej.Mroz
"OrionGame.h" is included in NativizedAssets module.
[CL 3043181 by Mike Beach in Main branch]
2016-07-08 14:59:19 -04:00
|
|
|
if (!TopNest)
|
|
|
|
|
{
|
|
|
|
|
check(!NestLevel);
|
|
|
|
|
return nullptr;
|
|
|
|
|
}
|
2016-03-24 13:53:55 -04:00
|
|
|
while (TopNest[Index].NestType != ENestType::GlobalScope)
|
2015-01-20 09:33:54 -05:00
|
|
|
{
|
|
|
|
|
--Index;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (FFileScope*)TopNest[Index].GetScope();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets current source file.
|
|
|
|
|
*/
|
|
|
|
|
FUnrealSourceFile* GetCurrentSourceFile() const
|
|
|
|
|
{
|
2015-11-18 16:20:49 -05:00
|
|
|
return CurrentSourceFile;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SetCurrentSourceFile(FUnrealSourceFile* UnrealSourceFile)
|
|
|
|
|
{
|
|
|
|
|
CurrentSourceFile = UnrealSourceFile;
|
2015-01-20 09:33:54 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets current class scope.
|
|
|
|
|
*/
|
|
|
|
|
FStructScope* GetCurrentClassScope() const
|
|
|
|
|
{
|
2016-03-24 13:53:55 -04:00
|
|
|
check(TopNest->NestType == ENestType::Class || TopNest->NestType == ENestType::Interface || TopNest->NestType == ENestType::NativeInterface);
|
2015-01-20 09:33:54 -05:00
|
|
|
|
|
|
|
|
return (FStructScope*)TopNest->GetScope();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Tells if parser is currently in a class.
|
|
|
|
|
*/
|
|
|
|
|
bool IsInAClass() const
|
|
|
|
|
{
|
|
|
|
|
int32 Index = 0;
|
2016-03-24 13:53:55 -04:00
|
|
|
while (TopNest[Index].NestType != ENestType::GlobalScope)
|
2015-01-20 09:33:54 -05:00
|
|
|
{
|
2016-03-24 13:53:55 -04:00
|
|
|
if (TopNest[Index].NestType == ENestType::Class || TopNest->NestType == ENestType::Interface || TopNest->NestType == ENestType::NativeInterface)
|
2015-01-20 09:33:54 -05:00
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
--Index;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets current class.
|
|
|
|
|
*/
|
|
|
|
|
UClass* GetCurrentClass() const
|
|
|
|
|
{
|
|
|
|
|
return (UClass*)GetCurrentClassScope()->GetStruct();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets current class's metadata.
|
|
|
|
|
*/
|
|
|
|
|
FClassMetaData* GetCurrentClassData()
|
|
|
|
|
{
|
|
|
|
|
return GScriptHelper.FindClassData(GetCurrentClass());
|
|
|
|
|
}
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
// Information about all nesting levels.
|
|
|
|
|
FNestInfo Nest[MAX_NEST_LEVELS];
|
|
|
|
|
|
|
|
|
|
// enum for complier directives used to build up the directive stack
|
|
|
|
|
struct ECompilerDirective
|
|
|
|
|
{
|
|
|
|
|
enum Type
|
|
|
|
|
{
|
2014-06-12 23:22:18 -04:00
|
|
|
// this directive is insignificant and does not change the code generation at all
|
2014-03-14 14:13:41 -04:00
|
|
|
Insignificant = 0,
|
|
|
|
|
// this indicates we are in a WITH_EDITOR #if-Block
|
|
|
|
|
WithEditor = 1<<0,
|
|
|
|
|
// this indicates we are in a WITH_EDITORONLY_DATA #if-Block
|
|
|
|
|
WithEditorOnlyData = 1<<1,
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Compiler directive nest in which the parser currently is
|
|
|
|
|
* NOTE: compiler directives are combined when more are added onto the stack, so
|
|
|
|
|
* checking the only the top of stack is enough to determine in which #if-Block(s) the current code
|
|
|
|
|
* is.
|
|
|
|
|
*
|
|
|
|
|
* ex. Stack.Num() == 1 while entering #if WITH_EDITOR:
|
|
|
|
|
* CompilerDirectiveStack[1] == CompilerDirectiveStack[0] | ECompilerDirective::WithEditor ==
|
|
|
|
|
* CompilerDirecitveStack[1] == CompilerDirectiveStack.Num()-1 | ECompilerDirective::WithEditor
|
|
|
|
|
*
|
|
|
|
|
* ex. Stack.Num() == 2 while entering #if WITH_EDITOR:
|
|
|
|
|
* CompilerDirectiveStack[3] == CompilerDirectiveStack[0] | CompilerDirectiveStack[1] | CompilerDirectiveStack[2] | ECompilerDirective::WithEditor ==
|
|
|
|
|
* CompilerDirecitveStack[3] == CompilerDirectiveStack.Num()-1 | ECompilerDirective::WithEditor
|
|
|
|
|
*/
|
|
|
|
|
TArray<uint32> CompilerDirectiveStack;
|
|
|
|
|
|
|
|
|
|
// Pushes the Directive specified to the CompilerDirectiveStack according to the rules described above
|
|
|
|
|
void FORCEINLINE PushCompilerDirective(ECompilerDirective::Type Directive)
|
|
|
|
|
{
|
|
|
|
|
CompilerDirectiveStack.Push(CompilerDirectiveStack.Num()>0 ? (CompilerDirectiveStack[CompilerDirectiveStack.Num()-1] | Directive) : Directive);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The starting class flags (i.e. the class flags that were set before the
|
|
|
|
|
* CLASS_RecompilerClear mask was applied) for the class currently being compiled
|
|
|
|
|
*/
|
|
|
|
|
uint32 PreviousClassFlags;
|
|
|
|
|
|
|
|
|
|
// For new-style classes, used to keep track of an unmatched {} pair
|
|
|
|
|
bool bEncounteredNewStyleClass_UnmatchedBrackets;
|
|
|
|
|
|
|
|
|
|
// Indicates that UCLASS/USTRUCT/UINTERFACE has already been parsed in this .h file..
|
|
|
|
|
bool bHaveSeenUClass;
|
|
|
|
|
|
2014-10-10 04:34:56 -04:00
|
|
|
// Indicates that a GENERATED_UCLASS_BODY or GENERATED_BODY has been found in the UClass.
|
2014-03-14 14:13:41 -04:00
|
|
|
bool bClassHasGeneratedBody;
|
|
|
|
|
|
2015-03-13 08:17:47 -04:00
|
|
|
// Indicates that a GENERATED_UINTERFACE_BODY has been found in the UClass.
|
|
|
|
|
bool bClassHasGeneratedUInterfaceBody;
|
|
|
|
|
|
|
|
|
|
// Indicates that a GENERATED_IINTERFACE_BODY has been found in the UClass.
|
|
|
|
|
bool bClassHasGeneratedIInterfaceBody;
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
// public, private, etc at the current parse spot
|
|
|
|
|
EAccessSpecifier CurrentAccessSpecifier;
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// Special parsed struct names that do not require a prefix
|
|
|
|
|
TArray<FString> StructsWithNoPrefix;
|
|
|
|
|
|
|
|
|
|
// Special parsed struct names that have a 'T' prefix
|
|
|
|
|
TArray<FString> StructsWithTPrefix;
|
|
|
|
|
|
|
|
|
|
// Mapping from 'human-readable' macro substring to # of parameters for delegate declarations
|
|
|
|
|
// Index 0 is 1 parameter, Index 1 is 2, etc...
|
|
|
|
|
TArray<FString> DelegateParameterCountStrings;
|
|
|
|
|
|
|
|
|
|
// List of all used identifiers for net service function declarations (every function must be unique)
|
|
|
|
|
TMap<int32, FString> UsedRPCIds;
|
|
|
|
|
// List of all net service functions with undeclared response functions
|
|
|
|
|
TMap<int32, FString> RPCsNeedingHookup;
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
// Constructor.
|
2015-11-18 16:20:49 -05:00
|
|
|
FHeaderParser(FFeedbackContext* InWarn, FUHTMakefile& InUHTMakefile);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
~FHeaderParser()
|
|
|
|
|
{
|
|
|
|
|
if ( FScriptLocation::Compiler == this )
|
|
|
|
|
{
|
|
|
|
|
FScriptLocation::Compiler = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Returns true if the token is a dynamic delegate declaration
|
|
|
|
|
bool IsValidDelegateDeclaration(const FToken& Token) const;
|
|
|
|
|
|
|
|
|
|
// Returns true if the current token is a bitfield type
|
|
|
|
|
bool IsBitfieldProperty();
|
|
|
|
|
|
|
|
|
|
// Parse the parameter list of a function or delegate declaration
|
2014-04-23 18:42:01 -04:00
|
|
|
void ParseParameterList(FClasses& AllClasses, UFunction* Function, bool bExpectCommaBeforeName = false, TMap<FName, FString>* MetaData = NULL);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2015-04-21 05:03:44 -04:00
|
|
|
public:
|
2014-03-14 14:13:41 -04:00
|
|
|
// Throws if a specifier value wasn't provided
|
2015-03-10 06:14:19 -04:00
|
|
|
static void RequireSpecifierValue(const FPropertySpecifier& Specifier, bool bRequireExactlyOne = false);
|
|
|
|
|
static FString RequireExactlyOneSpecifierValue(const FPropertySpecifier& Specifier);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2015-04-21 05:03:44 -04:00
|
|
|
protected:
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
/**
|
2015-01-20 09:33:54 -05:00
|
|
|
* Parse rest of the module's source files.
|
2014-03-14 14:13:41 -04:00
|
|
|
*
|
2015-11-18 16:20:49 -05:00
|
|
|
* @param AllClasses The class tree containing all classes in the current package.
|
|
|
|
|
* @param ModulePackage Current package.
|
|
|
|
|
* @param HeaderParser The header parser.
|
|
|
|
|
* @param UHTMakefile Makefile to which parsing data is saved.
|
2014-03-14 14:13:41 -04:00
|
|
|
*
|
2014-04-23 18:36:17 -04:00
|
|
|
* @return Result enumeration.
|
2014-03-14 14:13:41 -04:00
|
|
|
*/
|
2015-11-18 16:20:49 -05:00
|
|
|
static ECompilationResult::Type ParseRestOfModulesSourceFiles(FClasses& AllClasses, UPackage* ModulePackage, FHeaderParser& HeaderParser, FUHTMakefile& UHTMakefile);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
//@TODO: Remove this method
|
|
|
|
|
static void ParseClassName(const TCHAR* Temp, FString& ClassName);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param Input An input string, expected to be a script comment.
|
|
|
|
|
* @return The input string, reformatted in such a way as to be appropriate for use as a tooltip.
|
|
|
|
|
*/
|
|
|
|
|
static FString FormatCommentForToolTip(const FString& Input);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Begins the process of exporting C++ class declarations for native classes in the specified package
|
|
|
|
|
*
|
2015-11-18 16:20:49 -05:00
|
|
|
* @param CurrentPackage The package being compiled.
|
|
|
|
|
* @param AllClasses The class tree for CurrentPackage.
|
|
|
|
|
* @param UHTMakefile Makefile to which parsing data is saved.
|
|
|
|
|
* @param Module Currently exported module.
|
2014-03-14 14:13:41 -04:00
|
|
|
*/
|
2015-03-02 06:44:04 -05:00
|
|
|
static void ExportNativeHeaders(
|
|
|
|
|
UPackage* CurrentPackage,
|
|
|
|
|
FClasses& AllClasses,
|
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3345728)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3315219 on 2017/02/21 by Steve.Robb
Fix for FObjectAndNameAsStringProxyArchive when serializing a TWeakObjectPtr.
Change 3315285 on 2017/02/21 by Steve.Robb
Explicitly pass string builder into code generation functions.
Change 3315341 on 2017/02/21 by Ben.Marsh
UAT: Clean up some formatting in StreamCopyDescription output - remove #fyi lines, exclude merge commits, and remove some blank lines.
Change 3315350 on 2017/02/21 by Ben.Marsh
Fix shared resource files not being rebuilt if the version header changes.
Change 3315823 on 2017/02/21 by Ben.Marsh
UAT: Use a class derived from AutomationException to return information specific to commandlets failing, rather than putting it in the base class.
Change 3315826 on 2017/02/21 by Ben.Marsh
UAT: Move Distiller class from general use in UAT; FileFilter provides a much safer and fully featured implementation of the same concepts.
Change 3315857 on 2017/02/21 by Ben.Marsh
UBT: Remove the StripBaseDirectory() and MakeRerootedFilePath() utility functions from UBT. These operations can now be done more safely with FileReference objects.
Change 3315942 on 2017/02/21 by Ben.Marsh
UBT: Convert FileFilter to use FileReference and DirectoryReference arguments everywhere.
Change 3316236 on 2017/02/22 by Maciej.Mroz
#jira UE-42045
Nativization
Fixed Warning: TEnumAsByte is not intended for use with enum
Change 3316253 on 2017/02/22 by Robert.Manuszewski
Fixes for the async log file writer hangs and crashes.
- potential fix for the logging system hang when running out of disk space while flushing log
- fix for unexpected concurrency assert when flushing the log buffer to disk
Change 3316293 on 2017/02/22 by Steve.Robb
GetTypeHash and lexicographical comparison operators (operator<() etc.) for TTuple.
Change 3316342 on 2017/02/22 by Maciej.Mroz
Nativization: Wrappers (stubs) required only by other wrappers are properly generated.
#codereview: Mike.Beach
Change 3316344 on 2017/02/22 by Maciej.Mroz
Fixed crash in nativized Odin
Async loading properly handles nativized structs.
Change 3316359 on 2017/02/22 by Steve.Robb
GitHub #3287 : Ignore #pragma in USTRUCTs
#jira UE-42248
Change 3316389 on 2017/02/22 by Matthew.Griffin
Switched Installed Engine Filters to multiline properties to make them more readable
Added Oodle to list of excluded plugins
#jira UE-42030
Change 3316392 on 2017/02/22 by Ben.Marsh
UBT: Split out FileReference/DirectoryReference classes into their own file.
Change 3316394 on 2017/02/22 by Ben.Marsh
UBT: Move FileReference/DirectoryReference extension methods into the appropriate file.
Change 3316411 on 2017/02/22 by Ben.Marsh
UAT: Remove file functions that take multiple arguments. There's not really a compelling use case for these to exist over looping from the calling code.
Change 3316446 on 2017/02/22 by Ben.Marsh
UAT: Try disabling function name prefix to log output from UAT, to see if it improves readability. Function names are still included in the log file for debugging.
Change 3316575 on 2017/02/22 by Ben.Marsh
UAT: Remove unused functionality for dealing with labels, and output a more human readable list of P4 settings at startup.
Change 3318481 on 2017/02/22 by Steve.Robb
Use of FMath::IsPowerOfTwo in check.
Static assert to ensure that an inline set allocator will have a hash size of a power of two.
Change 3318496 on 2017/02/22 by Steve.Robb
Fix for TSet visualizers.
Change 3318919 on 2017/02/23 by Steve.Robb
Fix for hot reloading UScriptStruct-derived objects in a module, where the CDOs of these objects haven't had PrepareCppStructOps() called on them.
#jira UE-42178
Change 3318942 on 2017/02/23 by Steve.Robb
Removal of a redundant insertion which can cause problems on reallocation of the map.
Change 3319010 on 2017/02/23 by Ben.Marsh
UBT: Fix exception when a file that was previously part of the working set is deleted.
Change 3319134 on 2017/02/23 by Robert.Manuszewski
Better fix for a deadlock when flushing log while it's already being flushed due to flush timer on the async log writer thread.
Change 3319249 on 2017/02/23 by Matthew.Griffin
Added a function to check if running with debug game libs instead of checking command line in multiple places
Added -RunConfig parameter, which has equivalent result to -debug if value of parameter starts with 'debug'
Added -RunConfig=$(Configuration) as a default commandline argument for Mac so that editor can use debug game libs
Removed -Shipping argument from VCProject generation as it's not used anymore
Change 3319253 on 2017/02/23 by Maciej.Mroz
#jira UE-41846
New mechanism to gather modules necessary for Nativized Assets. The modules are listed based on included headers. Previously the dependencies was gathered only in FBlueprintNativeCodeGenManifest::GatherModuleDependencies.
Change 3319591 on 2017/02/23 by Ben.Marsh
Don't strip prefixes beginning with WARNING: or ERROR: using the Postp filter.
Change 3320357 on 2017/02/23 by Steven.Hutton
Slight changes to Add Crash method - Returning select fields instead of entity objects in queries for perf reasons.
Change 3320361 on 2017/02/23 by Steven.Hutton
Performance improvements subsequent to the recent database changes.
Change 3320446 on 2017/02/23 by Steven.Hutton
adding my temporary performance tracker class - reports to a private slack channel with add crash performance data.
Change 3320479 on 2017/02/23 by Ben.Marsh
Fix CIS errors.
Change 3320576 on 2017/02/23 by Jin.Zhang
Update CrashReporter to use AWS
Change 3320742 on 2017/02/23 by Jin.Zhang
Merging crash caching
Change 3321119 on 2017/02/24 by Robert.Manuszewski
DLL injection protection support for non-monolithic builds
Change 3323308 on 2017/02/27 by Matthew.Griffin
Moved compilation of SwarmInterface after its dependencies so that we will see a build failure immediately if they change version in future
Change 3323423 on 2017/02/27 by Chad.Garyet
Adding a script to check and warn about csproj targeted .net versions being mismatched
#JIRA UE-39624
Change 3323442 on 2017/02/27 by Ben.Marsh
UBT: Output an error if an engine module references a game module.
Change 3323743 on 2017/02/27 by Ben.Marsh
PR #3303: Resolved PVS scan issues (Contributed by projectgheist)
Change 3323748 on 2017/02/27 by Ben.Marsh
Convert whitespace to tabs.
Change 3324851 on 2017/02/28 by Chris.Wood
Add Odin symbol locations to engine config for MDD on CR server.
NotForLicensees
Change 3324979 on 2017/02/28 by Gil.Gribb
Fixed bad merge of priority change in the EDL.
Change 3326889 on 2017/03/01 by Steven.Hutton
Update to buggs controller to generate faster queries.
Change 3326910 on 2017/03/01 by Robert.Manuszewski
Removing legacy #if from PackageFileSummary.
Change 3327118 on 2017/03/01 by Gil.Gribb
UE4 - Fixed race that resulted in a memory leak when reading compressed paks.
Change 3327633 on 2017/03/01 by Gil.Gribb
UE4 - Added a cvar to control the pak precacher thottle.
Change 3327674 on 2017/03/01 by Steve.Robb
Unified boilerplate between all generated code files.
Change 3328544 on 2017/03/01 by Chris.Wood
CrashReportProcess.config update (CRP v1.2.17)
Tweaks to a few values.
Update website URL to explicitly point to old, non-cloud site on devweb-02.
Change 3328714 on 2017/03/01 by Chris.Wood
Correct CRP config regression. Point website at new cloud site. Still v1.2.17
Change 3329192 on 2017/03/02 by Matthew.Griffin
Added Shared Build Id file to the list of Precompiled Build Dependencies in a target receipt so that it's brought into an installed build
Change 3329285 on 2017/03/02 by Ben.Marsh
UGS: Allow a project to specify a filters for the streams that should be displayed for fast-switching to. The QuickSelectStreamList seting in the [Options] section of the project settings references a depot path containing a list of strings used to filter the stream list. An option is shown to switch back to showing all available streams, if desired.
Change 3330636 on 2017/03/02 by Ben.Marsh
UBT: Bump version number of C++ include cache to force it to be rebuilt with additional include information for the default RC files.
Change 3331262 on 2017/03/03 by Robert.Manuszewski
Merging Dev-LoadTimes to Dev-Core (Garbage Collection performance improvements)
- Improved GC multithreading
- Improved BeginDestroy performance
- Introduced ULevelActorCluster for StaticMeshActor and ReflectionCapture actor clustering (can be toggled through project settings or console command gc.ActorClusterEnabled)
- A few improvements to AddReferencedObjects functions
- Misc improvements to GC code
- Garbage Collector now properly handles clusters which had their objects marked as pending kill
- Blueprints can now create clusters too (can be toggled through project settings or console command gc.BlueprintClusteringEnabled, defaults to disabled)
Change 3331285 on 2017/03/03 by Robert.Manuszewski
A few fixes for the previous check-in.
Change 3332001 on 2017/03/03 by Ben.Marsh
UBT: Add support for generating a UDN file containing the valid settings for BuildConfiguration.xml. Pass -configdoc=<filename> on the command line to generate such a file.
Change 3332022 on 2017/03/03 by Ben.Marsh
Update documentation for where to find the BuildConfiguration settings.
Change 3332031 on 2017/03/03 by Ben.Marsh
Remove documentation for Windows XP support; it has been removed in the 4.16 release.
Change 3332256 on 2017/03/03 by Ben.Marsh
UBT: Add support for generating a UDN page containing module and target settings.
Change 3332458 on 2017/03/03 by Ben.Marsh
UBT: Improvements to generated documentation.
Change 3332459 on 2017/03/03 by Ben.Marsh
Add generated documentation for .target.cs files, .build.cs files, and BuildConfiguration.xml files.
Change 3332460 on 2017/03/03 by Ben.Marsh
UBT: Make LinkTypePrivate actually private, so it doesn't show up in the docs.
Change 3332899 on 2017/03/06 by Robert.Manuszewski
Making sure actor clustering is not used in the editor (fix for actors being deleted when GC runs in the editor)
#jira UE-42548
Change 3332955 on 2017/03/06 by Maciej.Mroz
Nativization distinguishes client and server platform:
- Separated lists on additional assets, additional modules, excluded assets, excluded modules, excluded paths (in config)
- Context (compilation options, nativization options and platform) is deliveren to BPCOmpilerCppBackend in FCompilerNativizationOptions struct.
- Wrappers (for unconverted BPs) are created only when they are directly called.
- Fortnite dedicated server can be nativized
Change 3332990 on 2017/03/06 by Ben.Marsh
UBT: Add more comprehensive wrapper methods for System.IO.File and System.IO.Directory to FileReference and DirectoryReference.
Change 3333032 on 2017/03/06 by Ben.Marsh
Documentation for build tools
Change 3333037 on 2017/03/06 by Ben.Marsh
Add a build step to extract UAT and UBT documentation from XML comments.
Change 3333089 on 2017/03/06 by Ben.Marsh
UAT: Re-enable logging the calling function to the console in UAT. Needs a pass for readability first.
Change 3333651 on 2017/03/06 by Gil.Gribb
UE4 - Fix a werid recursive situation where StaticLoadObject could return an object that has not finished loading. Also produces a fatal error if this sometimes happens. EDL only.
Change 3335236 on 2017/03/07 by Ben.Marsh
UGS: Set the sync changelist separately to the compatibility changelist.
Change 3335261 on 2017/03/07 by Gil.Gribb
UE4 - Fixed batched render fences when BeginDestroy calls FlushRenderingCommands.
Change 3335740 on 2017/03/07 by Gil.Gribb
maybe fix static analysis warning
Change 3335945 on 2017/03/07 by Steve.Robb
Move FFindInstancedReferenceSubobjectHelper code out of header.
Add map/set property support to allow instanced members of these container types to be handled during CPFUO.
https://udn.unrealengine.com/questions/349232/tmap-with-instanced-object-as-value-gets-cleared-o.html
Change 3336693 on 2017/03/07 by Ben.Marsh
UBT: Use shared PCHs for game plugins by default, to reduce time spent generating individual PCHs.
Change 3336694 on 2017/03/07 by Steve.Robb
Static assert added to TMap to prevent the use of keys which don't implement a GetTypeHash.
Fixes to types which relied on implicit conversions when calling GetTypeHash.
Workaround in SAssetView.h and PropertyEditorModule.h for an apparent VC bug where the compiler wrongly instantiates TPointerIsConvertibleFromTo for certain forward-declared types, causing future TSharedPtr conversions to fail.
#jira UE-42441
Change 3336698 on 2017/03/07 by Steve.Robb
Hardcoded endpoint handling replaced with a generic string.
Obsolete .proto and .java code generation removed.
Change 3336811 on 2017/03/07 by Wes.Hunt
Add a game blacklist to the crash report processor. Fixed a syntax error in Config.cs, added a XML comment to shut up a warning.
Change 3336973 on 2017/03/08 by Steve.Robb
Fix for missing GetTypeHash in a plugin.
Change 3336996 on 2017/03/08 by Steve.Robb
Significant refactor of code generation, to try and make data flow more apparent.
Change 3337571 on 2017/03/08 by Steve.Robb
CIS fixes for missing GetTypeHash functions.
Non-unity fix.
Change 3337588 on 2017/03/08 by Gil.Gribb
UE4 - Fixed obscure check with flushing rhi resources.
Change 3337620 on 2017/03/08 by Steve.Robb
WITH_HOT_RELOAD_CTORS macros removed.
UseVTableConstructors config option removed.
Change 3339369 on 2017/03/09 by Steve.Robb
GetTypeHash overload for nn::account::Uid.
Change 3339464 on 2017/03/09 by Daniel.Lamb
Fixed assert in 4.15 to do with trying to gather dependency info from invalid packages.
#jira UE-42583
#test Editor + Cook + Run shootergame
Change 3339465 on 2017/03/09 by Maciej.Mroz
Fixed serialization issue, after UserDefinedEnum was used in EnumProperty.
Change 3339469 on 2017/03/09 by Maciej.Mroz
Fixed Nativization problem, when default value is passed as non-const reference.
Change 3340178 on 2017/03/09 by Daniel.Lamb
Added support for in memory only packages. The Cooker ignores these and added core functions to recognize these packages.
Other systems will need to add support where nessisary.
Change 3341002 on 2017/03/10 by Maciej.Mroz
Nativization: Fixed FFindHeadersToInclude. Headers necessary for owners of subobjects are properly included.
Change 3341076 on 2017/03/10 by Steve.Robb
Fix for FBakedTextureSourceInfo move semantics.
#jira UE-42658
Change 3341160 on 2017/03/10 by Gil.Gribb
UE4 - Fix hazard with SetMaterialUsage from a thread.
Change 3341409 on 2017/03/10 by Steve.Robb
Reduction of the generated code size for StaticRegisterNatives functions.
Change 3341523 on 2017/03/10 by Steve.Robb
Code generation simplified.
Change 3341800 on 2017/03/10 by Ben.Marsh
UnrealVS: Fix UnrealVS compatibility with RTM version of Visual Studio 2017. 2017 toolchain for extensions is no longer able to build <= 2015 extensions due to validation of the VSIX manifest, so create a separate solution for it.
Change 3342034 on 2017/03/10 by Ben.Marsh
Fix compiler setting not being loaded correctly into the Windows target settings dialog.
#jira UE-42746
Change 3342041 on 2017/03/10 by Ben.Marsh
Fix -ErrorOnEngineContentUse not being set in the cooker options correctly.
Change 3342094 on 2017/03/10 by Steve.Robb
Fix to deteministic name order during code generation.
Change 3342251 on 2017/03/10 by Daniel.Lamb
Integrate fix for resave lightmaps commandlet when upgrading from no mapbuilddatapackages to mapbuilddatapackages.
#thanks Tim.Hagberg
#test None
Change 3342961 on 2017/03/13 by Robert.Manuszewski
Fixing memory leak when playing while running -nullrhi on the commandline in cooked games caused by shader resources not being destroyed.
#jira FORT-38977
Change 3343022 on 2017/03/13 by Steve.Robb
GetTypeHash fixes for FUniqueNetIdLive.
#jira UE-42788
Change 3343448 on 2017/03/13 by Steve.Robb
Compiled-in defer object order fixed.
Debuggability of the deferred registration map improved.
#jira UE-42828
[CL 3345747 by Ben Marsh in Main branch]
2017-03-14 15:48:33 -04:00
|
|
|
bool bAllowSaveExportedHeaders,
|
|
|
|
|
FUHTMakefile& UHTMakefile,
|
|
|
|
|
const FManifestModule& Module
|
2015-03-02 06:44:04 -05:00
|
|
|
);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
// FContextSupplier interface.
|
2014-06-13 06:14:46 -04:00
|
|
|
virtual FString GetContext() override;
|
2014-03-14 14:13:41 -04:00
|
|
|
// End of FContextSupplier interface.
|
|
|
|
|
|
|
|
|
|
// High-level compiling functions.
|
2015-01-20 09:33:54 -05:00
|
|
|
/**
|
|
|
|
|
* Parses given source file.
|
|
|
|
|
*
|
|
|
|
|
* @param AllClasses The class tree for current package.
|
|
|
|
|
* @param SourceFile Source file to parse.
|
|
|
|
|
*
|
|
|
|
|
* @returns Compilation result enum.
|
|
|
|
|
*/
|
2015-11-18 16:20:49 -05:00
|
|
|
ECompilationResult::Type ParseHeader(FClasses& AllClasses, FUnrealSourceFile* SourceFile);
|
|
|
|
|
void CompileDirective(FClasses& AllClasses);
|
2014-03-14 14:13:41 -04:00
|
|
|
void FinalizeScriptExposedFunctions(UClass* Class);
|
2015-11-18 16:20:49 -05:00
|
|
|
UEnum* CompileEnum();
|
|
|
|
|
UScriptStruct* CompileStructDeclaration(FClasses& AllClasses);
|
Copying //UE4/Release-Staging-4.11 to //UE4/Main (Source: //UE4/Release-Staging-4.11 @ 2941426, //UE4/Release-4.11 @ 2927265)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2910079 on 2016/03/15 by Taizyd.Korambayil
#jira UE-28293 Reworded some Sentences
Change 2910157 on 2016/03/15 by Taizyd.Korambayil
#jira UE-28240 Rebuilt Lighting for Sanctuary
Change 2910317 on 2016/03/15 by Ben.Marsh
Fix crash trying to print out a message explaining that you need to install the Visual Studio 2015 toolchain, if the Visual Studio 2015 toolchain is not installed!
Change 2910425 on 2016/03/15 by Ori.Cohen
Fix crash and incorrect behavior when setting physical material on a welded body.
#JIRA UE-28399
#rb Marc.Audy
Change 2910525 on 2016/03/15 by Ori.Cohen
Fix player capsule not spawning at the right place due to float precision issues.
#JIRA UE-28438
#rb Zak.Middleton
Change 2910595 on 2016/03/15 by Chris.Babcock
Fixed issue with missing event location paired with IE_Pressed if IE_DoubleClick generated
#jira UE-28051
#ue4
#codereview Marc.Audy
Change 2911442 on 2016/03/16 by Andrew.Rodham
Sequencer: Fixed frame grabbers where hardware mapped surfaces to memory of a different stride
#jira UE-28434
Change 2911596 on 2016/03/16 by andrew.porter
Test content for blueprint vertex painting
#jira UE-24473
Change 2911860 on 2016/03/16 by Jamie.Dale
Allowed SViewport to (once again) be able to use non-pre-multiplied alpha blending
SViewport now has an PreMultipliedAlpha argument (default true), which can control whether to use pre-multiplied alpha when blending is enabled (blending is disabled by default). Note: This is a change in behavior from 4.10, as non-pre-multiplied alpha blending used to be the default, but pre-multiplied alpha blending better supports the pipeline used through Slate.
This change also cleans up the use of bool parameters in the FSlateDrawElement::MakeX functions to control the render behavior, instead favoring use of advanced ESlateDrawEffect flags.
API Breaking Changes
- FSlateDrawElement::MakeGradient no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction.
- FSlateDrawElement::MakeViewport no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction.
- FSlateDrawElement::MakeViewport no longer takes a bInAllowBlending bool, instead pass ESlateDrawEffect::NoBlending as part of InDrawEffects to disable blending.
#jira UE-26797
Change 2912345 on 2016/03/16 by Olaf.Piesche
Removing the check that causes UE-28441, duplicating beam type data module from highest LOD in Cascade causes crash. The beam data module is the only one that explicitly checks to make sure it's always shared across LOD levels; there's no obvious reasons why duplicating beam data modules shouldn't be possible.
#codereview simon.tovey
#jira UE-28441
Change 2912526 on 2016/03/16 by Steve.Robb
Fix uninitialized variables.
#codereview robert.manuszewski
#jira UE-28391
Change 2913114 on 2016/03/17 by Steve.Robb
Fixed some private properties which caused UHT errors.
#codereview robert.manuszewski
#jira UE-28059
Change 2913295 on 2016/03/17 by Richard.TalbotWatkin
Replicated from Dev-Editor CL 2913224
Disallow assets from being deleted if PIE is active. This prevents various troubles which can occur when PIE is referencing asset objects.
#jira UE-12387 - [CrashReport] Crash when deleting assets needed for template
#RB Nick.Darnell, Frank.Fella
Change 2913310 on 2016/03/17 by Nick.Shin
merging from //UE4/Dev-Platform to //UE4/Release-4.11
--- original commit CL: #2913300 message ---
corrected VS 2015 websocket lib to look at the right offset
it is currently a high risk change to just update the libwebsocket wholesale for release-4.11.
this change is the most minimum invasive change with a lot of deep analysis (details will be put in jira: # UEPLAT-1221).
this fix will also be pushed up to release-4.11
#jira UE-22166 - HTML5 Cook on the fly will launch and then close browser
#jira UE-22513 - HTTP Network File System crashes randomly.
#jira UE-28003 - Fail to QuickLaunch HTML5 through UnrealFrontEnd
Change 2913593 on 2016/03/17 by Mark.Satterthwaite
For non-debug builds silence the warning about no deth/stencil when shader writes to depth in MetalRHI - the RHI implementation will create a temporary D/S buffer to cope but really this needs to be properly addressed elsewhere.
#jira UE-28491
Change 2913655 on 2016/03/17 by Taizyd.Korambayil
#jira UE-28492 Rebuilt Lighting For the Samples Listed
Change 2914025 on 2016/03/17 by Olaf.Piesche
Make sure ST primitives are added to NST draw list if in shader complexity mode
#codereview simon.tovey
#jira UE-28471
Change 2914027 on 2016/03/17 by Nick.Shin
[CL 2941462 by Ben Marsh in Main branch]
2016-04-12 17:04:39 -04:00
|
|
|
bool CompileDeclaration(FClasses& AllClasses, TArray<UDelegateFunction*>& DelegatesToFixup, FToken& Token);
|
2014-10-10 04:34:56 -04:00
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
/** Skip C++ (noexport) declaration. */
|
|
|
|
|
bool SkipDeclaration(FToken& Token);
|
|
|
|
|
/** Similar to MatchSymbol() but will return to the exact location as on entry if the symbol was not found. */
|
|
|
|
|
bool SafeMatchSymbol(const TCHAR* Match);
|
2015-01-20 09:33:54 -05:00
|
|
|
void HandleOneInheritedClass(FClasses& AllClasses, UClass* Class, FString InterfaceName);
|
|
|
|
|
FClass* ParseClassNameDeclaration(FClasses& AllClasses, FString& DeclaredClassName, FString& RequiredAPIMacroIfPresent);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
/** The property style of a variable declaration being parsed */
|
|
|
|
|
struct EPropertyDeclarationStyle
|
|
|
|
|
{
|
|
|
|
|
enum Type
|
|
|
|
|
{
|
|
|
|
|
None,
|
|
|
|
|
UPROPERTY
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2015-01-20 09:33:54 -05:00
|
|
|
/**
|
|
|
|
|
* Resets current class data back to its defaults.
|
|
|
|
|
*/
|
|
|
|
|
void ResetClassData();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Create new function object based on given info structure.
|
|
|
|
|
*/
|
|
|
|
|
UFunction* CreateFunction(const FFuncInfo &FuncInfo) const;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Create new delegate function object based on given info structure.
|
|
|
|
|
*/
|
2015-03-10 06:14:19 -04:00
|
|
|
UDelegateFunction* CreateDelegateFunction(const FFuncInfo &FuncInfo) const;
|
2015-01-20 09:33:54 -05:00
|
|
|
|
|
|
|
|
void CompileClassDeclaration(FClasses& AllClasses);
|
Copying //UE4/Release-Staging-4.11 to //UE4/Main (Source: //UE4/Release-Staging-4.11 @ 2941426, //UE4/Release-4.11 @ 2927265)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2910079 on 2016/03/15 by Taizyd.Korambayil
#jira UE-28293 Reworded some Sentences
Change 2910157 on 2016/03/15 by Taizyd.Korambayil
#jira UE-28240 Rebuilt Lighting for Sanctuary
Change 2910317 on 2016/03/15 by Ben.Marsh
Fix crash trying to print out a message explaining that you need to install the Visual Studio 2015 toolchain, if the Visual Studio 2015 toolchain is not installed!
Change 2910425 on 2016/03/15 by Ori.Cohen
Fix crash and incorrect behavior when setting physical material on a welded body.
#JIRA UE-28399
#rb Marc.Audy
Change 2910525 on 2016/03/15 by Ori.Cohen
Fix player capsule not spawning at the right place due to float precision issues.
#JIRA UE-28438
#rb Zak.Middleton
Change 2910595 on 2016/03/15 by Chris.Babcock
Fixed issue with missing event location paired with IE_Pressed if IE_DoubleClick generated
#jira UE-28051
#ue4
#codereview Marc.Audy
Change 2911442 on 2016/03/16 by Andrew.Rodham
Sequencer: Fixed frame grabbers where hardware mapped surfaces to memory of a different stride
#jira UE-28434
Change 2911596 on 2016/03/16 by andrew.porter
Test content for blueprint vertex painting
#jira UE-24473
Change 2911860 on 2016/03/16 by Jamie.Dale
Allowed SViewport to (once again) be able to use non-pre-multiplied alpha blending
SViewport now has an PreMultipliedAlpha argument (default true), which can control whether to use pre-multiplied alpha when blending is enabled (blending is disabled by default). Note: This is a change in behavior from 4.10, as non-pre-multiplied alpha blending used to be the default, but pre-multiplied alpha blending better supports the pipeline used through Slate.
This change also cleans up the use of bool parameters in the FSlateDrawElement::MakeX functions to control the render behavior, instead favoring use of advanced ESlateDrawEffect flags.
API Breaking Changes
- FSlateDrawElement::MakeGradient no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction.
- FSlateDrawElement::MakeViewport no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction.
- FSlateDrawElement::MakeViewport no longer takes a bInAllowBlending bool, instead pass ESlateDrawEffect::NoBlending as part of InDrawEffects to disable blending.
#jira UE-26797
Change 2912345 on 2016/03/16 by Olaf.Piesche
Removing the check that causes UE-28441, duplicating beam type data module from highest LOD in Cascade causes crash. The beam data module is the only one that explicitly checks to make sure it's always shared across LOD levels; there's no obvious reasons why duplicating beam data modules shouldn't be possible.
#codereview simon.tovey
#jira UE-28441
Change 2912526 on 2016/03/16 by Steve.Robb
Fix uninitialized variables.
#codereview robert.manuszewski
#jira UE-28391
Change 2913114 on 2016/03/17 by Steve.Robb
Fixed some private properties which caused UHT errors.
#codereview robert.manuszewski
#jira UE-28059
Change 2913295 on 2016/03/17 by Richard.TalbotWatkin
Replicated from Dev-Editor CL 2913224
Disallow assets from being deleted if PIE is active. This prevents various troubles which can occur when PIE is referencing asset objects.
#jira UE-12387 - [CrashReport] Crash when deleting assets needed for template
#RB Nick.Darnell, Frank.Fella
Change 2913310 on 2016/03/17 by Nick.Shin
merging from //UE4/Dev-Platform to //UE4/Release-4.11
--- original commit CL: #2913300 message ---
corrected VS 2015 websocket lib to look at the right offset
it is currently a high risk change to just update the libwebsocket wholesale for release-4.11.
this change is the most minimum invasive change with a lot of deep analysis (details will be put in jira: # UEPLAT-1221).
this fix will also be pushed up to release-4.11
#jira UE-22166 - HTML5 Cook on the fly will launch and then close browser
#jira UE-22513 - HTTP Network File System crashes randomly.
#jira UE-28003 - Fail to QuickLaunch HTML5 through UnrealFrontEnd
Change 2913593 on 2016/03/17 by Mark.Satterthwaite
For non-debug builds silence the warning about no deth/stencil when shader writes to depth in MetalRHI - the RHI implementation will create a temporary D/S buffer to cope but really this needs to be properly addressed elsewhere.
#jira UE-28491
Change 2913655 on 2016/03/17 by Taizyd.Korambayil
#jira UE-28492 Rebuilt Lighting For the Samples Listed
Change 2914025 on 2016/03/17 by Olaf.Piesche
Make sure ST primitives are added to NST draw list if in shader complexity mode
#codereview simon.tovey
#jira UE-28471
Change 2914027 on 2016/03/17 by Nick.Shin
[CL 2941462 by Ben Marsh in Main branch]
2016-04-12 17:04:39 -04:00
|
|
|
UDelegateFunction* CompileDelegateDeclaration(FClasses& AllClasses, const TCHAR* DelegateIdentifier, EDelegateSpecifierAction::Type SpecifierAction = EDelegateSpecifierAction::DontParse);
|
2015-11-18 16:20:49 -05:00
|
|
|
void CompileFunctionDeclaration(FClasses& AllClasses);
|
2015-01-28 09:41:47 -05:00
|
|
|
void CompileVariableDeclaration (FClasses& AllClasses, UStruct* Struct);
|
2014-04-23 18:42:01 -04:00
|
|
|
void CompileInterfaceDeclaration(FClasses& AllClasses);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2015-01-20 09:33:54 -05:00
|
|
|
FClass* ParseInterfaceNameDeclaration(FClasses& AllClasses, FString& DeclaredInterfaceName, FString& RequiredAPIMacroIfPresent);
|
|
|
|
|
bool TryParseIInterfaceClass(FClasses& AllClasses);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
Copying //UE4/Release-Staging-4.11 to //UE4/Main (Source: //UE4/Release-Staging-4.11 @ 2941426, //UE4/Release-4.11 @ 2927265)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2910079 on 2016/03/15 by Taizyd.Korambayil
#jira UE-28293 Reworded some Sentences
Change 2910157 on 2016/03/15 by Taizyd.Korambayil
#jira UE-28240 Rebuilt Lighting for Sanctuary
Change 2910317 on 2016/03/15 by Ben.Marsh
Fix crash trying to print out a message explaining that you need to install the Visual Studio 2015 toolchain, if the Visual Studio 2015 toolchain is not installed!
Change 2910425 on 2016/03/15 by Ori.Cohen
Fix crash and incorrect behavior when setting physical material on a welded body.
#JIRA UE-28399
#rb Marc.Audy
Change 2910525 on 2016/03/15 by Ori.Cohen
Fix player capsule not spawning at the right place due to float precision issues.
#JIRA UE-28438
#rb Zak.Middleton
Change 2910595 on 2016/03/15 by Chris.Babcock
Fixed issue with missing event location paired with IE_Pressed if IE_DoubleClick generated
#jira UE-28051
#ue4
#codereview Marc.Audy
Change 2911442 on 2016/03/16 by Andrew.Rodham
Sequencer: Fixed frame grabbers where hardware mapped surfaces to memory of a different stride
#jira UE-28434
Change 2911596 on 2016/03/16 by andrew.porter
Test content for blueprint vertex painting
#jira UE-24473
Change 2911860 on 2016/03/16 by Jamie.Dale
Allowed SViewport to (once again) be able to use non-pre-multiplied alpha blending
SViewport now has an PreMultipliedAlpha argument (default true), which can control whether to use pre-multiplied alpha when blending is enabled (blending is disabled by default). Note: This is a change in behavior from 4.10, as non-pre-multiplied alpha blending used to be the default, but pre-multiplied alpha blending better supports the pipeline used through Slate.
This change also cleans up the use of bool parameters in the FSlateDrawElement::MakeX functions to control the render behavior, instead favoring use of advanced ESlateDrawEffect flags.
API Breaking Changes
- FSlateDrawElement::MakeGradient no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction.
- FSlateDrawElement::MakeViewport no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction.
- FSlateDrawElement::MakeViewport no longer takes a bInAllowBlending bool, instead pass ESlateDrawEffect::NoBlending as part of InDrawEffects to disable blending.
#jira UE-26797
Change 2912345 on 2016/03/16 by Olaf.Piesche
Removing the check that causes UE-28441, duplicating beam type data module from highest LOD in Cascade causes crash. The beam data module is the only one that explicitly checks to make sure it's always shared across LOD levels; there's no obvious reasons why duplicating beam data modules shouldn't be possible.
#codereview simon.tovey
#jira UE-28441
Change 2912526 on 2016/03/16 by Steve.Robb
Fix uninitialized variables.
#codereview robert.manuszewski
#jira UE-28391
Change 2913114 on 2016/03/17 by Steve.Robb
Fixed some private properties which caused UHT errors.
#codereview robert.manuszewski
#jira UE-28059
Change 2913295 on 2016/03/17 by Richard.TalbotWatkin
Replicated from Dev-Editor CL 2913224
Disallow assets from being deleted if PIE is active. This prevents various troubles which can occur when PIE is referencing asset objects.
#jira UE-12387 - [CrashReport] Crash when deleting assets needed for template
#RB Nick.Darnell, Frank.Fella
Change 2913310 on 2016/03/17 by Nick.Shin
merging from //UE4/Dev-Platform to //UE4/Release-4.11
--- original commit CL: #2913300 message ---
corrected VS 2015 websocket lib to look at the right offset
it is currently a high risk change to just update the libwebsocket wholesale for release-4.11.
this change is the most minimum invasive change with a lot of deep analysis (details will be put in jira: # UEPLAT-1221).
this fix will also be pushed up to release-4.11
#jira UE-22166 - HTML5 Cook on the fly will launch and then close browser
#jira UE-22513 - HTTP Network File System crashes randomly.
#jira UE-28003 - Fail to QuickLaunch HTML5 through UnrealFrontEnd
Change 2913593 on 2016/03/17 by Mark.Satterthwaite
For non-debug builds silence the warning about no deth/stencil when shader writes to depth in MetalRHI - the RHI implementation will create a temporary D/S buffer to cope but really this needs to be properly addressed elsewhere.
#jira UE-28491
Change 2913655 on 2016/03/17 by Taizyd.Korambayil
#jira UE-28492 Rebuilt Lighting For the Samples Listed
Change 2914025 on 2016/03/17 by Olaf.Piesche
Make sure ST primitives are added to NST draw list if in shader complexity mode
#codereview simon.tovey
#jira UE-28471
Change 2914027 on 2016/03/17 by Nick.Shin
[CL 2941462 by Ben Marsh in Main branch]
2016-04-12 17:04:39 -04:00
|
|
|
bool CompileStatement(FClasses& AllClasses, TArray<UDelegateFunction*>& DelegatesToFixup);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
// Checks to see if a particular kind of command is allowed on this nesting level.
|
2016-03-24 13:53:55 -04:00
|
|
|
bool IsAllowedInThisNesting(ENestAllowFlags AllowFlags);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
// Make sure that a particular kind of command is allowed on this nesting level.
|
|
|
|
|
// If it's not, issues a compiler error referring to the token and the current
|
|
|
|
|
// nesting level.
|
2016-03-24 13:53:55 -04:00
|
|
|
void CheckAllow(const TCHAR* Thing, ENestAllowFlags AllowFlags);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
UStruct* GetSuperScope( UStruct* CurrentScope, const FName& SearchName );
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Find a field in the specified context. Starts with the specified scope, then iterates
|
|
|
|
|
* through the Outer chain until the field is found.
|
|
|
|
|
*
|
|
|
|
|
* @param InScope scope to start searching for the field in
|
|
|
|
|
* @param InIdentifier name of the field we're searching for
|
|
|
|
|
* @param bIncludeParents whether to allow searching in the scope of a parent struct
|
|
|
|
|
* @param FieldClass class of the field to search for. used to e.g. search for functions only
|
|
|
|
|
* @param Thing hint text that will be used in the error message if an error is encountered
|
|
|
|
|
*
|
|
|
|
|
* @return a pointer to a UField with a name matching InIdentifier, or NULL if it wasn't found
|
|
|
|
|
*/
|
|
|
|
|
UField* FindField( UStruct* InScope, const TCHAR* InIdentifier, bool bIncludeParents=true, UClass* FieldClass=UField::StaticClass(), const TCHAR* Thing=NULL );
|
|
|
|
|
void SkipStatements( int32 SubCount, const TCHAR* ErrorTag );
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Parses a variable or return value declaration and determines the variable type and property flags.
|
|
|
|
|
*
|
2014-04-23 18:42:01 -04:00
|
|
|
* @param AllClasses the class tree for CurrentPackage
|
2014-03-14 14:13:41 -04:00
|
|
|
* @param Scope struct to create the property in
|
|
|
|
|
* @param VarProperty will be filled in with type and property flag data for the property declaration that was parsed
|
|
|
|
|
* @param Disallow contains a mask of variable modifiers that are disallowed in this context
|
|
|
|
|
* @param OuterPropertyType only specified when compiling the inner properties for arrays or maps. corresponds to the FToken for the outer property declaration.
|
|
|
|
|
* @param PropertyDeclarationStyle if the variable is defined with a UPROPERTY
|
|
|
|
|
* @param VariableCategory what kind of variable is being parsed
|
2014-09-30 09:10:54 -04:00
|
|
|
* @param ParsedVarIndexRange The source text [Start, End) index range for the parsed type.
|
2014-03-14 14:13:41 -04:00
|
|
|
*/
|
2015-03-19 13:42:08 -04:00
|
|
|
void GetVarType(
|
2014-04-23 18:42:01 -04:00
|
|
|
FClasses& AllClasses,
|
2015-01-20 09:33:54 -05:00
|
|
|
FScope* Scope,
|
2014-04-23 18:42:01 -04:00
|
|
|
FPropertyBase& VarProperty,
|
|
|
|
|
uint64 Disallow,
|
|
|
|
|
FToken* OuterPropertyType,
|
|
|
|
|
EPropertyDeclarationStyle::Type PropertyDeclarationStyle,
|
2014-09-30 09:10:54 -04:00
|
|
|
EVariableCategory::Type VariableCategory,
|
|
|
|
|
FIndexRange* ParsedVarIndexRange = nullptr);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Parses a variable name declaration and creates a new UProperty object.
|
|
|
|
|
*
|
2015-03-19 11:33:15 -04:00
|
|
|
* @param Scope struct to create the property in
|
|
|
|
|
* @param VarProperty type and propertyflag info for the new property (inout)
|
|
|
|
|
* @param VariableCategory what kind of variable is being created
|
2014-03-14 14:13:41 -04:00
|
|
|
*
|
|
|
|
|
* @return a pointer to the new UProperty if successful, or NULL if there was no property to parse
|
|
|
|
|
*/
|
|
|
|
|
UProperty* GetVarNameAndDim(
|
|
|
|
|
UStruct* Struct,
|
|
|
|
|
FToken& VarProperty,
|
2015-03-19 11:33:15 -04:00
|
|
|
EVariableCategory::Type VariableCategory);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2015-01-20 09:33:54 -05:00
|
|
|
/**
|
|
|
|
|
* Returns whether the specified class can be referenced from the class currently being compiled.
|
|
|
|
|
*
|
|
|
|
|
* @param Scope The scope we are currently parsing.
|
|
|
|
|
* @param CheckClass The class we want to reference.
|
|
|
|
|
*
|
|
|
|
|
* @return true if the specified class is an intrinsic type or if the class has successfully been parsed
|
|
|
|
|
*/
|
|
|
|
|
bool AllowReferenceToClass(UStruct* Scope, UClass* CheckClass) const;
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return true if Scope has UProperty objects in its list of fields
|
|
|
|
|
*/
|
|
|
|
|
static bool HasMemberProperties( const UStruct* Scope );
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Parses optional metadata text.
|
|
|
|
|
*
|
|
|
|
|
* @param MetaData the metadata map to store parsed metadata in
|
|
|
|
|
* @param FieldName the field being parsed (used for logging)
|
|
|
|
|
*
|
|
|
|
|
* @return true if metadata was specified
|
|
|
|
|
*/
|
|
|
|
|
void ParseFieldMetaData(TMap<FName, FString>& MetaData, const TCHAR* FieldName);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Formats the current comment, if any, and adds it to the metadata as a tooltip.
|
|
|
|
|
*
|
|
|
|
|
* @param MetaData the metadata map to store the tooltip in
|
|
|
|
|
*/
|
|
|
|
|
void AddFormattedPrevCommentAsTooltipMetaData(TMap<FName, FString>& MetaData);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Tries to parse the token as an access protection specifier (public:, protected:, or private:)
|
|
|
|
|
*
|
|
|
|
|
* @return EAccessSpecifier this is, or zero if it is none
|
|
|
|
|
*/
|
|
|
|
|
EAccessSpecifier ParseAccessProtectionSpecifier(FToken& Token);
|
|
|
|
|
|
|
|
|
|
const TCHAR* NestTypeName( ENestType NestType );
|
|
|
|
|
|
2014-04-23 18:42:01 -04:00
|
|
|
FClass* GetQualifiedClass(const FClasses& AllClasses, const TCHAR* Thing);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2015-01-20 09:33:54 -05:00
|
|
|
/**
|
|
|
|
|
* Increase the nesting level, setting the new top nesting level to
|
|
|
|
|
* the one specified. If pushing a function or state and it overrides a similar
|
|
|
|
|
* thing declared on a lower nesting level, verifies that the override is legal.
|
|
|
|
|
*
|
|
|
|
|
* @param NestType the new nesting type
|
|
|
|
|
* @param InNode @todo
|
|
|
|
|
*/
|
|
|
|
|
void PushNest(ENestType NestType, UStruct* InNode, FUnrealSourceFile* SourceFile = nullptr);
|
|
|
|
|
void PopNest(ENestType NestType, const TCHAR* Descr);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Tasks that need to be done after popping function declaration
|
|
|
|
|
* from parsing stack.
|
|
|
|
|
*
|
|
|
|
|
* @param AllClasses The class tree for current package.
|
|
|
|
|
* @param PoppedFunction Function that have just been popped.
|
|
|
|
|
*/
|
|
|
|
|
void PostPopFunctionDeclaration(FClasses& AllClasses, UFunction* PoppedFunction);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Tasks that need to be done after popping interface definition
|
|
|
|
|
* from parsing stack.
|
|
|
|
|
*
|
|
|
|
|
* @param AllClasses The class tree for current package.
|
|
|
|
|
* @param CurrentInterface Interface that have just been popped.
|
|
|
|
|
*/
|
|
|
|
|
void PostPopNestInterface(FClasses& AllClasses, UClass* CurrentInterface);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Tasks that need to be done after popping class definition
|
|
|
|
|
* from parsing stack.
|
|
|
|
|
*
|
|
|
|
|
* @param CurrentClass Class that have just been popped.
|
|
|
|
|
*/
|
|
|
|
|
void PostPopNestClass(UClass* CurrentClass);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Binds all delegate properties declared in ValidationScope the delegate functions specified in the variable declaration, verifying that the function is a valid delegate
|
|
|
|
|
* within the current scope. This must be done once the entire class has been parsed because instance delegate properties must be declared before the delegate declaration itself.
|
|
|
|
|
*
|
|
|
|
|
* @todo: this function will no longer be required once the post-parse fixup phase is added (TTPRO #13256)
|
|
|
|
|
*
|
2014-04-23 18:42:01 -04:00
|
|
|
* @param AllClasses the class tree for CurrentPackage
|
2015-01-20 09:33:54 -05:00
|
|
|
* @param Struct the struct to validate delegate properties for
|
|
|
|
|
* @param Scope the current scope
|
2014-03-14 14:13:41 -04:00
|
|
|
* @param DelegateCache cached map of delegates that have already been found; used for faster lookup.
|
|
|
|
|
*/
|
2015-01-20 09:33:54 -05:00
|
|
|
void FixupDelegateProperties(FClasses& AllClasses, UStruct* ValidationScope, FScope& Scope, TMap<FName, UFunction*>& DelegateCache);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Verifies that all specified class's UProperties with CFG_RepNotify have valid callback targets with no parameters nor return values
|
|
|
|
|
*
|
|
|
|
|
* @param TargetClass class to verify rep notify properties for
|
|
|
|
|
*/
|
|
|
|
|
void VerifyRepNotifyCallbacks( UClass* TargetClass );
|
|
|
|
|
|
|
|
|
|
// Retry functions.
|
|
|
|
|
void InitScriptLocation( FScriptLocation& Retry );
|
|
|
|
|
void ReturnToLocation( const FScriptLocation& Retry, bool Binary=1, bool Text=1 );
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* If the property has already been seen during compilation, then return add. If not,
|
|
|
|
|
* then return replace so that INI files don't mess with header exporting
|
|
|
|
|
*
|
|
|
|
|
* @param PropertyName the string token for the property
|
|
|
|
|
*
|
|
|
|
|
* @return FNAME_Replace_Not_Safe_For_Threading or FNAME_Add
|
|
|
|
|
*/
|
|
|
|
|
EFindName GetFindFlagForPropertyName(const TCHAR* PropertyName);
|
|
|
|
|
|
|
|
|
|
static void ValidatePropertyIsDeprecatedIfNecessary(FPropertyBase& VarProperty, FToken* OuterPropertyType);
|
2014-10-10 04:34:56 -04:00
|
|
|
|
|
|
|
|
private:
|
2015-11-18 16:20:49 -05:00
|
|
|
// Source file currently parsed by UHT.
|
|
|
|
|
FUnrealSourceFile* CurrentSourceFile;
|
|
|
|
|
|
2015-04-10 06:02:22 -04:00
|
|
|
// Module currently parsed by UHT.
|
|
|
|
|
const FManifestModule* CurrentlyParsedModule;
|
|
|
|
|
|
2014-10-10 04:34:56 -04:00
|
|
|
/**
|
|
|
|
|
* Tries to match constructor parameter list. Assumes that constructor
|
|
|
|
|
* name is already matched.
|
|
|
|
|
*
|
|
|
|
|
* If fails it reverts all parsing done.
|
|
|
|
|
*
|
|
|
|
|
* @param Token Token to start parsing from.
|
|
|
|
|
*
|
|
|
|
|
* @returns True if matched. False otherwise.
|
|
|
|
|
*/
|
|
|
|
|
bool TryToMatchConstructorParameterList(FToken Token);
|
2014-10-24 02:59:18 -04:00
|
|
|
void SkipDeprecatedMacroIfNecessary();
|
2014-12-11 11:49:41 -05:00
|
|
|
|
2015-04-10 06:02:22 -04:00
|
|
|
// Parses possible version declaration in generated code, e.g. GENERATED_BODY(<some_version>).
|
2015-11-18 16:20:49 -05:00
|
|
|
void CompileVersionDeclaration(UStruct* Struct);
|
2014-03-14 14:13:41 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////
|
|
|
|
|
// FHeaderPreParser
|
|
|
|
|
|
|
|
|
|
class FHeaderPreParser : public FBaseParser
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
FHeaderPreParser()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
|
|
|
void ParseClassDeclaration(
|
|
|
|
|
const TCHAR* Filename,
|
|
|
|
|
const TCHAR* InputText,
|
|
|
|
|
int32 InLineNumber,
|
|
|
|
|
const TCHAR*
|
|
|
|
|
StartingMatchID,
|
|
|
|
|
FName& out_StrippedClassName,
|
|
|
|
|
FString& out_ClassName,
|
|
|
|
|
FString& out_BaseClassName,
|
|
|
|
|
TArray<FHeaderProvider>& out_ClassNames,
|
|
|
|
|
const TArray<FSimplifiedParsingClassInfo>& ParsedClassArray
|
|
|
|
|
);
|
2014-03-14 14:13:41 -04:00
|
|
|
};
|