Commit Graph

231 Commits

Author SHA1 Message Date
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
Steve Robb
07b1559496 Improved error message for missing UHT types.
#codereview robert.manuszewski

[CL 2547263 by Steve Robb in Main branch]
2015-05-12 10:49: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
Mikolaj Sieluzycki
1d9f070cb1 Fix for inheriting show/hide categories from parent class.
#codereview Robert.Manuszewski
#lockdown Zachary.EdgertonJones

[CL 2522495 by Mikolaj Sieluzycki in Main branch]
2015-04-23 05:02:17 -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
bbfd1b466f Shadowed variable fix.
#codereview robert.manuszewski

[CL 2521593 by Steve Robb in Main branch]
2015-04-22 15:48:01 -04:00
Marc Audy
6b9642b23a Fix UHT shadow variables
#codereview Steve.Robb, Dmitry.Rekman, Terence.Burns

[CL 2521443 by Marc Audy in Main branch]
2015-04-22 14:47:12 -04:00
Dmitry Rekman
ceeeac094f Shadowing fixes.
#codereview Steve.Robb, Marc.Audy, Jaroslaw.Palczynski

[CL 2521402 by Dmitry Rekman in Main branch]
2015-04-22 14:31:04 -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
3adc5f8c15 Function with a TArray<UClass*> return value added to test, to check for bad generated code in exec function.
#codereview robert.manuszewski

[CL 2520776 by Steve Robb in Main branch]
2015-04-22 05:58:59 -04:00
Marc Audy
734e40c910 Temporarily disable warning since UHT turns it in to an error
[CL 2519961 by Marc Audy in Main branch]
2015-04-21 16:40:14 -04:00
Marc Audy
ccf62f558f Warn that virtual BlueprintImplementableEvents are not allowed, will remove support in a future release.
[CL 2519475 by Marc Audy in Main branch]
2015-04-21 12:46:26 -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
Robert Manuszewski
119baff841 Removing debug code
[CL 2519074 by Robert Manuszewski in Main branch]
2015-04-21 08:47:21 -04:00
Robert Manuszewski
b80cbe68e2 Fixing non-unity build.
[CL 2519011 by Robert Manuszewski in Main branch]
2015-04-21 06:48:55 -04:00
Robert Manuszewski
d80262a45e Fixing UHT not propagating class flags/properties properly
- Small refactor of how and where class flags are parsed
- 'Placeable' is no longer deprecated (it never really was)
- Restoring 'Placeable' keyword on ALandscape

UE-14035

[CL 2518912 by Robert Manuszewski in Main branch]
2015-04-21 05:03:44 -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
Michael Noland
36e8025b9c UnrealHeaderTool: Added support for FColor default values in reflected methods
[CL 2515150 by Michael Noland in Main branch]
2015-04-16 18:43:00 -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