Commit Graph

367 Commits

Author SHA1 Message Date
Mikolaj Sieluzycki
a53cf2e072 Make UEnums store values as uint8 instead of int8.
#codereview Robert.Manuszewski

[CL 2643276 by Mikolaj Sieluzycki in Main branch]
2015-08-04 08:20:16 -04:00
Maciej Mroz
ae93f71eb4 CodeGenerator sets CppType in Enum
UByteProperty::GetCPPType returns proper type

#codereview Steve.Robb

[CL 2641863 by Maciej Mroz in Main branch]
2015-08-03 09:58:36 -04:00
Martin Mittring
fcffaa7884 better %f seconds printout
[CL 2624557 by Martin Mittring in Main branch]
2015-07-17 13:48:35 -04:00
Jaroslaw Palczynski
98611dbff9 UHT: Added class range validation in exporting code to prevent crashes when they occur during bad parsing.
#codereview Robert.Manuszewski

[CL 2622001 by Jaroslaw Palczynski in Main branch]
2015-07-15 13:24:05 -04:00
Steve Robb
4e1172d62b Prevent UHT crash when looking up parent types during code generation.
#codereview robert.manuszewski

[CL 2619876 by Steve Robb in Main branch]
2015-07-14 06:27:34 -04:00
Mikolaj Sieluzycki
993cdb271f Make UHT parse TSubclassOf<USomeClass>& parameters to RPC without compilation error.
[CL 2616553 by Mikolaj Sieluzycki in Main branch]
2015-07-10 08:56:36 -04:00
Steve Robb
fab3d634d9 Forward declarations of DelegateWrapper functions removed from generated headers.
#codereview robert.manuszewski

[CL 2587625 by Steve Robb in Main branch]
2015-06-15 14:06:46 -04:00
Jaroslaw Palczynski
3901c239a4 UE-16079: Creating Factory in Runtime Module is not possible and has strange error.
Fixed UHT to detect that a parent class hasn't been parsed before it's child and display a better error message.

[CL 2573515 by Jaroslaw Palczynski in Main branch]
2015-06-02 02:12:11 -04:00
Robert Manuszewski
f26442b5f7 Fixing UHT not finding ScriptGeneratorPlugin
[CL 2566688 by Robert Manuszewski in Main branch]
2015-05-27 11:12:26 -04:00
Mikolaj Sieluzycki
ac339b4bbb Make UEnums tightly packed.
[CL 2564612 by Mikolaj Sieluzycki in Main branch]
2015-05-26 03:36:08 -04:00
Jaroslaw Palczynski
86fb0d52a1 UE-12916: Attempting to use the GameplayTags module in a binary code project will result in build failures in Visual Studio.
[CL 2562196 by Jaroslaw Palczynski in Main branch]
2015-05-22 02:54:27 -04:00
Marc Audy
64c7f7dbd5 Use PRAGMA_ENABLE_DEPRECATION_WARNINGS instead of PRAGMA_POP in generated code
[CL 2548037 by Marc Audy in Main branch]
2015-05-12 17:44:46 -04:00
Robert Manuszewski
cff51abde4 Fixing hot-reload not updating derived classes if the base class layout changed resulting in the derived class layout changes without changing the overall class size.
[CL 2540792 by Robert Manuszewski in Main branch]
2015-05-07 05:55:26 -04:00
Mike Fricker
290f5e6d82 Miscellaneous fixes for Clang on windows
These changes allow UE4 to compile and run (in Debug) on Clang 3.7 alpha (r231657 only!)
  - Disabled editor source file discovery (crashes with Clang currently)
  - Disabled FThreadIdleStats in UnrealHeaderTool with Clang on Windows (causes link errors due to inlining bugs with Clang and DLL imports)
  - Use MSVC linker by default, even when compiling with Clang (can be tweaked with bAllowClangLinker)
  - Enabled shadow variable warnings on Windows with Clang
  - Limited max size of reflection code source files (Clang on Windows crashes with huge source files)
  - Fixed UE4 deprecation warnings not showing up when using Clang on Windows
  - Make sure initialization list order only triggers a warning on Clang for Windows

Other changes:
  - Fixed issues with pushed pragmas not getting popped (PRAGMA_ENABLE_DEPRECATION_WARNINGS)
  - Removed EMIT_DEPRECATED_WARNING_MESSAGE, wasn't used
  - Fixed various third party library includes not being treated as system headers (prevents compiler warnings)

To test Clang on Windows (beta!!):

- Get latest UE4 main branch (4.9)

- Install LLVM+Clang for Windows version r231657.  It's a quick install, you don't need to compile anything yourself.

- Open UEBuildWindows.cs, and change bCompileWithClang to true.  Be careful not to check that in.  We'll probably make this config-driven later, after the Clang toolchain gets more mature.

- Switch to Debug Editor configuration.  (See below for more info.)

- Rebuild the game or engine

Notes:

- You must use Clang r231657 (3.7.0 alpha).  There are no other releases that I've found that are able to compile UE4 successfully.  Most of the newer releases crash during compiling, and older releases aren't able to digest Windows header files well enough.

- Compiling in Development currently will not work due to bugs with Clangs handling of inlining and DLL exports.  Monolithic builds should work, though.

- Occasionally you may see runtime crashes (stack overflows or access violations) when running UE4 compiled with Clang on Windows.  These may very well be bugs in Clang (remember, we're using an alpha release of Clang 3.7.0.)  Unfortunately without better debugger support, it can be difficult to workaround these

- When debugging, you will only have functions and line numbers, no variables or parameters.  Clang only has preliminary support for Microsoft's PDB format currently.
XGE is fully supported with Clang on Windows.  Best case rebuild times I've seen are 3.5 minutes in Debug.

- Shared PCHs aren't supported yet (similar to on Mac and Linux), so iterative compile times may be slower compared to Visual C++.  However the Clang compiler is actually quite fast for rebuilds, probably because of missing debug info though.

- There may be some compiler warnings that are different between Mac/Linux and Windows.  We haven't done a line-by-line comparison yet.

- Build products and executables for Clang and VC++ overlap on disk.  So you have to rebuild to switch back and forth.  Sorry.

- Clang on Windows has a few bugs that we've had to work around.  You might see some strange things from time to time.  Every new release of Clang has different behavior on Windows.

- We still use the VC++ Linker, even when compiling using Clang.  The new Clang linker (lld.exe) can be enabled with bAllowClangLinker but it will crash when linking some modules.  It also doesn't produce usable debug symbols by Visual Studio (yet).

#codereview mikolaj.sieluzycki

[CL 2532260 by Mike Fricker in Main branch]
2015-04-30 14:24:21 -04:00
Steve Robb
1421ef3d6f Fix for the skipping of DECLARE_MULTICAST_DELEGATE declarations.
Bunch of extra checks for this kind of failure in future.
Some scope bracing fixes.

#codereview robert.manuszewski

[CL 2531944 by Steve Robb in Main branch]
2015-04-30 10:25:31 -04:00
Ben Marsh
8be8504edc Remove some of the tedious layers of indirection from the plugin manager.
[CL 2521707 by Ben Marsh in Main branch]
2015-04-22 16:41:13 -04:00
Steve Robb
83203b555a Shadowed variables fixed.
#codereview robert.manuszewski,terence.burns,marc.audy

[CL 2521372 by Steve Robb in Main branch]
2015-04-22 14:15:56 -04:00
Steve Robb
7147a13be2 TMap properties.
#codereview robert.manuszewski

[CL 2519223 by Steve Robb in Main branch]
2015-04-21 10:25:59 -04:00
Jaroslaw Palczynski
d9e4f8f862 UE-8954: Update commonly-subclassed actor and component classes to take a default FObjectInitializer constructor argument.
[CL 2518882 by Jaroslaw Palczynski in Main branch]
2015-04-21 04:37:32 -04:00
Mikolaj Sieluzycki
a342337136 UHT enforces user defined _Validate and _Implementation functions to be "virtual".
[CL 2517391 by Mikolaj Sieluzycki in Main branch]
2015-04-20 06:19:21 -04:00
Mikolaj Sieluzycki
d77f990644 Back out changelist 2515530
[CL 2515554 by Mikolaj Sieluzycki in Main branch]
2015-04-17 04:37:38 -04:00
Mikolaj Sieluzycki
9574020014 Add missing file.
[CL 2515551 by Mikolaj Sieluzycki in Main branch]
2015-04-17 04:32:11 -04:00
Mikolaj Sieluzycki
cf4bc20014 UHT enforces user defined _Validate and _Implementation functions to be "virtual".
#codereview Robert.Manuszewski

[CL 2515530 by Mikolaj Sieluzycki in Main branch]
2015-04-17 04:04:20 -04:00
Jaroslaw Surowiec
1e12abcfd8 UHT Fix
#codereview steve.robb

[CL 2511512 by Jaroslaw Surowiec in Main branch]
2015-04-14 08:03:34 -04:00
Marc Audy
ee362038bb Avoid shadow variable warnings when a class has a UFUNCTION with a parameter with the same name as a member
Avoid shadow variable warnings when a class has a member named Result

[CL 2510514 by Marc Audy in Main branch]
2015-04-13 13:43:58 -04:00