Commit Graph

157 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
57097692aa Change deployment context and project params to use file references rather than raw paths.
[CL 2707182 by Ben Marsh in Main branch]
2015-09-26 14:41:15 -04:00
Ben Marsh
385dcb4a3d Instance deployment handlers, rather than having a single shared instance. Required to support multiple build targets in UBT. Creation is through a method on the UEBuildPlatform.
[CL 2706031 by Ben Marsh in Main branch]
2015-09-25 08:37:49 -04:00
Ben Marsh
0723896cb2 Add telemetry event for the time taken to perform a build, including the number of compile actions, link actions, pch actions, and list of the targets.
#codereview Wes.Hunt

[CL 2704862 by Ben Marsh in Main branch]
2015-09-24 14:32:06 -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
7428769139 Fix misplaced parenthesis
[CL 2704193 by Ben Marsh in Main branch]
2015-09-24 08:09:11 -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
Wes Hunt
ff6fa460da UBT Telemetry re-enabled. Commented out most of the legacy events.
[CL 2690912 by Wes Hunt in Main branch]
2015-09-14 17:29:38 -04:00
Ben Marsh
2b38be1283 Cache the list of all valid UBT platforms rather than fetching it via reflection each time; reflection is very slow, and we call it a lot.
[CL 2682466 by Ben Marsh in Main branch]
2015-09-07 10:31:09 -04:00
Ben Marsh
d5f47b28ec Optimize searching for source files under a given directory, by constructing DirectoryReference and FileReference objects directly from the full paths returned by the system.
[CL 2680146 by Ben Marsh in Main branch]
2015-09-04 07:56:29 -04:00
Jaroslaw Palczynski
7bd4a678b2 UE-20594: Fix no suffix bug and it's error during hot-reload.
#codereview Robert.Manuszewski

[CL 2678668 by Jaroslaw Palczynski in Main branch]
2015-09-03 11:10:21 -04:00
Ben Marsh
85273e9312 Allow UBT to wait on being able to run if the -waitmutex parameter is specified, and add it to the default command line from generated project files. Restores ability to build the entire solution from Visual Studio and have all UBT runs serialized.
#jira UE-20699
#codereview Wes.Hunt

[CL 2678456 by Ben Marsh in Main branch]
2015-09-03 09:18:45 -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
Wes Hunt
bfddd22af3 UEB-394 - improved error message when UAT/UBT fails to execute due to global mutex. Removed name of mutex as it was not useful, and gave an idea of how to find the offending instance.
[CL 2675757 by Wes Hunt in Main branch]
2015-09-01 13:53:34 -04:00
Ben Marsh
0a89383b5a Explicitly compile the rules assembly and pass it around as a parameter, rather than caching it as global state in RulesCompiler.
[CL 2674051 by Ben Marsh in Main branch]
2015-08-31 10:33:16 -04:00
Mike Fricker
e85564743c [INTEGRATE] Unreal Build Tool: Adaptive unity builds (experimental!)
- New UBT support for "adaptive unity builds", which can greatly increase iterative compile times
- This feature allows UBT to keep track of which source files you're currently editing between runs
- UBT will exclude your "working set" source files from all unity blob files, allowing for fast iterative compiles!
- Currently, adaptive unity builds relies on files being writable vs. read-only to determine what you're working on (P4 edit)
- Enable this new feature in your BuildConfiguration.xml file.

    <BuildConfiguration>
           <bUseAdaptiveUnityBuild>true</bUseAdaptiveUnityBuild>
    </BuildConfiguration>

[CL 2671467 by Mike Fricker in Main branch]
2015-08-27 16:33:06 -04:00
Ben Marsh
3d6c0e0a81 Convert target receipts to JSON, so they can be read early at startup like version manifests, and unify the way that target receipts and version manifests are loaded and saved.
[CL 2669100 by Ben Marsh in Main branch]
2015-08-26 08:25:10 -04:00
Wes Hunt
adceff0c22 Passing -verbose to UBT now actually sets the verbose log level and not just bPrintDebugInfo.
[CL 2664870 by Wes Hunt in Main branch]
2015-08-21 16:08:38 -04:00
Mikolaj Sieluzycki
bd6772b42b Fix hot reload issues on Mac. Don't write BOM to response files.
#codereview Robert.Manuszewski
#codereview Michael.Trepka

[CL 2664685 by Mikolaj Sieluzycki in Main branch]
2015-08-21 13:55:45 -04:00
Peter Sauerbrei
17b5b9cea5 add log display type as part of each log message
add -verbose=Level argument to be able to specify the verbosity level of logging, defaults to Log
#codereview ben.marsh, robert.manuszewski, paul.fazio

[CL 2654467 by Peter Sauerbrei in Main branch]
2015-08-13 09:00:22 -04:00
Steve Robb
3ad72e0d88 UBT now rebuilds makefile when hotreloading a different module.
#codereview robert.manuszewski

[CL 2647884 by Steve Robb in Main branch]
2015-08-07 10:19:42 -04:00
Wes Hunt
cefa87e4b7 Ionic.zip code import
* Moving Ionic.Zip source code into UE4 from UE4 source.
* Only one left should be in Binaries/DotNET.
* Moving TPS info to source location.
* Deleting several copies that were floating around.

Assembly Resolve Refactor
* Added AssemblyUtils.InstallAssemblyResolver to handle resolving of known assemblies that may not exist in the same folder as the referencing assembly.
* This is now installed by UAT and UBT, which should handle all needs to load Ionic.Zip and RPCUtility.exe from scripts that install into subfolders of Binaries/DotNET.
* Other assemblies can be added easily as necesary, centralizing the location where this is handled.
* Removed AssemblyResolver from RPCUtilHelper as UBT handles it automatically now.
* Removed Ionic.Zip references from projects that weren't really using it.
#codereview:ben.marsh

[CL 2646891 by Wes Hunt in Main branch]
2015-08-06 15:55:44 -04:00
Josh Markiewicz
f8d83447e1 #Integration FN->Main from CL#2642868
Engine Source changes

[CL 2645403 by Josh Markiewicz in Main branch]
2015-08-05 15:54:57 -04:00