Commit Graph

62 Commits

Author SHA1 Message Date
Ben Marsh
0aa484bda0 Toolchains are now instanced to allow storing project and target specific configuration details. Required for UBT to support multiple targets. Removed IUEToolChain, which wasn't being used directly.
[CL 2707252 by Ben Marsh in Main branch]
2015-09-27 13:05:49 -04:00
Ben Marsh
2802f43c08 Convert everything in UBT to use standard C# XML comments, so IntelliSense can display useful information in tooltips.
[CL 2704759 by Ben Marsh in Main branch]
2015-09-24 13:47:13 -04:00
Ben Marsh
df83418aeb Auto-format UBT for consistent spacing. All default Visual Studio settings, but tabs instead of spaces.
[CL 2704665 by Ben Marsh in Main branch]
2015-09-24 12:37:21 -04:00
Ben Marsh
5a0150033b Remove calls to UEToolChain.GetPlatformToolChain(). iOS and Mac deployment for remote tool chains is now done through UEToolChain.PostBuildSync() rather than UEBuildDeploy.PrepTargetForDeploy().
#codereview Peter.Sauerbrei

[CL 2704192 by Ben Marsh in Main branch]
2015-09-24 08:08:38 -04:00
Ben Marsh
5a77694bbb Removing a bunch of static variables for the project file in UBT.
[CL 2695050 by Ben Marsh in Main branch]
2015-09-17 09:15:44 -04:00
Ben Marsh
9610023ca5 Use FileReference and DirectoryReference classes instead of strings for paths. Massively reduces the amount of paranoid calls to GetFullPath(), CleanDirectorySeparators() et al., and improves performance for really common UBT operations like making relative paths or checking if files are under a directory. Strong typing ensures that intention of parameters is explicit.
[CL 2678429 by Ben Marsh in Main branch]
2015-09-03 08:47:24 -04:00
Ben Marsh
7f9774d740 Make it clearer that TargetReceipt.Read can fail if the file doesn't exist or is formatted incorrectly.
[CL 2649965 by Ben Marsh in Main branch]
2015-08-10 16:07:05 -04:00
Mike Fricker
ff488db20f Fixed UHT compiled with older compiler when targeting Visual Studio 2015
#codereview jeff.campeau

[CL 2649768 by Mike Fricker in Main branch]
2015-08-10 14:28:15 -04:00
Steve Robb
062ba9412f Makefiles enabled on Mac.
Explicit serialization functions used instead of reflection, to avoid deserialization problems on Mono.
Version number added to makefiles to allow versioning in future.
Makefiles still disabled if the host platform differs from the built platform, to continue to avoid any problems 'when building with RPCUtility'.

#codereview robert.manuszewski,michael.trepka

[CL 2643502 by Steve Robb in Main branch]
2015-08-04 11:20:50 -04:00
Peter Sauerbrei
dc1d815f84 refactored the logging system for UAT/UBT to be more like UE4
we now use an enum similar to UE4 with Fatal, Error, Warning, Display, Log, Verbose, and VeryVerbose
Log will only go to the log file unless -verbose is passed on the command line
reduced some of the output from UAT to be Log only

[CL 2631062 by Peter Sauerbrei in Main branch]
2015-07-23 14:51:46 -04:00
Ben Marsh
fd048fa54e Handle cases where TargetReceipt.Read() returns null instead of throwing now.
[CL 2629608 by Ben Marsh in Main branch]
2015-07-22 17:06:29 -04:00
Ben Marsh
dd08437233 Rename BuildReceipt to TargetReceipt, to clarify its purpose.
[CL 2629145 by Ben Marsh in Main branch]
2015-07-22 13:10:12 -04:00
Michael Noland
09e384f8af Core: Added logging about the command line used to invoke UHT and the duration
[CL 2619364 by Michael Noland in Main branch]
2015-07-13 22:19:09 -04:00
Steve Robb
8f97ba4709 Changes integrated from CL# 2417785, which was not merged back to Main from UE4-Releases/4.7. Original changelist description:
> UnrealBuildTool: No longer needs to run UnrealHeaderTool unless you actually changed a source file with UObjects in it
> - This makes it much faster to iterate on source files that UCLASS's or USTRUCT's aren't declared in
> - UBT now keeps track of the set of UObject module files (inside it's per-module Timestamp file)
> - UHT only neesd to run if a UObject file was added/deleted or changed
> - Directory timestamp checking is no longer needed by UBT for generated code
> - Added new diagnostic logging for generated code outdatedness checking (with '-verbose' option)

#codereview robert.manuszewski,mike.fricker

[CL 2612602 by Steve Robb in Main branch]
2015-07-07 13:42:33 -04:00
Ben Marsh
469830559c Fix a problem running UnrealHeaderTool when there are stale binaries from another configuration locally. Now uses the UHT receipt to determine which binaries to check instead, and deletes them all if there's a mismatch.
Code previously searched for any UnrealHeaderTool*.dll binaries, which would pick up things like a stale UnrealHeaderTool-ScriptGenerator-Win64-Debug.dll. If that file was the first found, and chosen as the API version to compare everything else to, all the up-to-date DLLs would be deleted. Using UBT makefiles was preventing UHT being rebuilt, which would leave users in a situation where they would only be able to do one good build after generating project files.

[CL 2602486 by Ben Marsh in Main branch]
2015-06-26 12:44:48 -04:00
Steve Robb
0144ad9af6 Makefile fix for UHT types being added to or removed from existing headers.
CaselessDictionary made serializable.
New FileContentsCacheType for enabling simple lookup and caching of file contents.
Fix for module references differing in case from module definitions e.g. Http and HTTP.
Some general refactoring.

#codereview robert.manuszewski

[CL 2581357 by Steve Robb in Main branch]
2015-06-09 11:50:55 -04:00
Ben Marsh
929cb041ee Add markup commands to prevent generating headers pushing the progress bar up to 100%.
[CL 2573778 by Ben Marsh in Main branch]
2015-06-02 09:10:59 -04:00
Steve Robb
7df8287828 FileItems cache cleared when the makefile if the deserialized makefile is invalid, to avoid it using stale data.
Some TraceWarnings changed to TraceVerbose.
Tidy up of some highly-indented logic.

#codereview robert.manuszewski

[CL 2573699 by Steve Robb in Main branch]
2015-06-02 06:54:19 -04:00
Ben Marsh
02cc1b74a2 Fix various issues being able to package a plugin using the installed engine build.
[CL 2538419 by Ben Marsh in Main branch]
2015-05-05 18:52:17 -04:00
Dmitry Rekman
1fb5df0a6f UBT: better explanation for signal exit codes.
- To reduce confusion regarding UHT failinng with "error code: 139"

#codereview Robert.Manuszewski, Michael.Trepka, Mark.Satterthwaite, Josh.Adams

[CL 2523338 by Dmitry Rekman in Main branch]
2015-04-23 16:58:43 -04:00
Ben Marsh
94e5326654 Simplify check for whether we can write to the engine directory in installed builds.
[CL 2519169 by Ben Marsh in Main branch]
2015-04-21 09:50:26 -04:00
Ben Marsh
b45a4d4c2b Use the shared build environment settings to pick an output directory for generated headers, and put generated headers for plugins in the plugin directory. Doing so allows Rocket to install generated headers again (which should fix some intellisense issues), and allows read-only plugins to be installed into the engine directory.
[CL 2516819 by Ben Marsh in Main branch]
2015-04-18 16:00:44 -04:00
Mikolaj Sieluzycki
3483da7d5a Stop UHT from emiting warnings on missing *_Validate and *_Implementation functions
Introduce versioning system to GENERATED_*BODY macros
Search for existing functions using case sensitive and whole word match.
Move checks for existing of *_Validate and *_Implementation functions to *generated.cpp to allow changing that code in hotfixes.
#codereview Robert.Manuszewski

[CL 2508131 by Mikolaj Sieluzycki in Main branch]
2015-04-10 06:02:22 -04:00
Ben Marsh
c4c411f61d Removing last few calls to BuildingRocket()!
* Import libraries are added to the build manifest whenever precompiling modules
* UHT now just generates headers to the project directory, and headers aren't included in the engine distribution. UHT was generating them anyway, just not writing them.
* Plugins binaries now just use UE4Game prefix in Rocket (since that's where they're built from), rather than using a special name.
* Platform-specific plugins are not explicitly excluded from builds - will be stripped out by directory instead
* XMPP is not manually excluded from Rocket builds.
* Removed BuildingRocket() function.

[CL 2487163 by Ben Marsh in Main branch]
2015-03-21 07:58:39 -04:00
Robert Manuszewski
8632410cf4 PR #869: Harmonize ECompilationResult return codes between Editor platforms (Contributed by 3dluvr)
https://github.com/EpicGames/UnrealEngine/pull/869

[CL 2469997 by Robert Manuszewski in Main branch]
2015-03-05 08:34:06 -05:00