Commit Graph

32 Commits

Author SHA1 Message Date
Ben Marsh
42c53cf179 Change IUEBuildPlatform.ModifyNewlyLoadedModule to IUEBuildPlatform.ModifyModuleRules(). Only modifying the rules object rather than the implementation itself makes it easier to optimize caching module references.
[CL 2672146 by Ben Marsh in Main branch]
2015-08-28 07:27:26 -04:00
Mike Fricker
ca39745810 Renamed WinUAP platform to UWP
- Microsoft renamed Universal App Platform to Universal Windows Platform
- https://msdn.microsoft.com/en-us/library/dn894631.aspx

[CL 2547380 by Mike Fricker in Main branch]
2015-05-12 12:00:23 -04:00
Mike Fricker
65bbc0e732 Initial Unreal Build Tool support for Visual Studio 2015 and UAP (disabled by default)
- Merged in Microsoft's Unreal Build Tool changes for VS 2015 support, and Universal App Platform support
- VS 2015 support is disabled by default (the engine is not yet compiling with VS 2015)
- Use the new '-2015' option when generating project files to enable VS 2015 support
- Windows SDK 8.1 is used by default.  To use Windows SDK 10, enable WindowsPlatform.bUseWindowsSDK10
- UAP support is disabled (not supported yet, work in progress.)  Use WinUAPPlatform.bEnableUAPSupport to enable it.
- Various loose ends still remain (search for "@todo UAP" in Unreal Build Tool code)

[CL 2537920 by Mike Fricker in Main branch]
2015-05-05 15:32:10 -04:00
Ben Marsh
deeac5b6c9 Don't include the module name in the generated PCH; it's in the directory name already, and pushes filenames closer to MAX_PATH on Windows.
Pathalogical case in the ExtendingTheEditor sample was using a PCH name of: D:\\BuildFarm\\buildmachine_++depot+UE4\\Samples\\Sandbox\\ExtendingTheEditor\\Plugins\\DemoEditorExtensions\\Intermediate\\Build\\Win64\\ExtendingTheEditor\\Debug\\DemoEditorExtensionsRuntime\\PCH.DemoEditorExtensionsRuntime.DemoEditorExtensionsRuntimePrivatePCH.h.cpp

[CL 2523558 by Ben Marsh in Main branch]
2015-04-23 18:09:00 -04:00
Mike Fricker
305f5925be Don't treat VC++ compiler differently than other executables for XGE
- Experimenting with disabling this to see if we notice any drawbacks (seems fine after a few days of testing)

[CL 2517690 by Mike Fricker in Main branch]
2015-04-20 11:35:11 -04:00
Ben Marsh
47a47229db Don't disable PS4, XboxOne or WinRT when building Rocket builds - we can filter out build products by removing /PS4/, /XboxOne/, /WinRT/ directories as a post-build step instead.
#codereview Marcus.Wassmer, Keith.Judge, Jeff.Campeau

[CL 2486649 by Ben Marsh in Main branch]
2015-03-20 15:56:09 -04:00
Mikolaj Sieluzycki
5dd319203e Fix linker errors on non-monolithic shipping builds.
[CL 2478401 by Mikolaj Sieluzycki in Main branch]
2015-03-13 06:29:19 -04:00
Mikolaj Sieluzycki
148cf5c4b5 Fix linker errors on non-monolithic shipping builds.
[CL 2476555 by Mikolaj Sieluzycki in Main branch]
2015-03-12 05:12:40 -04:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Peter Sauerbrei
7cf86529e2 addition of build settings to ini files
part of UEPLAT-114
#ue4

[CL 2374039 by Peter Sauerbrei in Main branch]
2014-12-02 14:58:59 -05:00
Ori Cohen
167a797ef8 Add runtime physx cooking
[CL 2291345 by Ori Cohen in Main branch]
2014-09-09 16:30:29 -04:00
Mike Fricker
0031e06f21 Experimental UnrealBuildTool makefile support
UnrealBuildTool 'Makefiles' allow for very fast iterative builds.
    - New BuildConfiguration.xml setting added: "bUseExperimentalFastBuildIteration"   (disabled by default)
    - Turning this on causes Unreal Build Tool to emit 'UBT Makefiles' for targets when they're built the first time.
    - Subsequent builds will load these Makefiles and begin outdatedness checking and build invocation very quickly.
    - The caveat is that if source files are added or removed to the project, UBT will need to gather information about those in order for your build to complete successfully.
    - Currently, you must run the project file generator after adding/removing source files to tell UBT to re-gather this information.
    - Events that can invalidate the 'UBT Makefile':
           - Adding/removing .cpp files
           - Adding/removing .h files with UObjects
           - Adding new UObject types to a file that didn't previously have any
           - Changing global build settings (most settings in this file qualify.)
           - Changed code that affects how Unreal Header Tool works
    - You can force regeneration of the 'UBT Makefile' by passing the '-Gather' argument, or simply regenerating project files
    - New command-line parameters added:
           - "-Gather": Tells UBT to always perform the gather step (slower but will catch project structural changes)
           - "-NoGather": Disables the gather step, unless UBT detects that it must be done.  This is the default when bUseExperimentalFastBuildIteration is enabled
           - "-GatherOnly": Runs the gather step and saves a UBTMakefile, but doesn't build anything
           - "-Assemble": Tells UBT to also assemble build products.  This always defaults to enabled
           - "-NoAssemble": Tells UBT to skip the assemble step, whether we gathered build products or not
           - "-AssembleOnly": Tells UBT to only assemble build products and not to gather, unless UBT determines it must

Other changes:
- UBT now keeps track of which targets it was building in an intermediate file, to help it invalidate cached includes in subsequent runs when the targets are different
- C++ includes are now stored in a class separate from the C++ compile enviroment (for easier serialization)
- The method that UBT uses to find the CoreUObject module timestamp was rewritten
- Various '@todo ubtmake' comments added to tag possible remaining Makefile tasks
- The 'FileItem' class had some member variable comments and code cleaned up, while making it serializable
- Cleaned up the comments and member variables in the "Action" class, while making it serializable
- Some UBT classes are now "serializable".  This is because we need to store the data in UBTMakefiles.
- Removed support for Actions to tinker with Stdout and Stderror (was not used for anything)
- Moved PrecompileHeaderEnvironment class to the UEBuildModule.cs source file
- Plugin intermediate include directories are now selected on demand rather than cached early
- Toolchain code for gathering prerequisite headers is now shared in a single function (AddPrerequisiteSourceFile)
- Removed Action.StatusDetailedDescription, was not used for anything
- Removed UEBuildConfiguration.bExcludePlugins, was not used for anything
- Removed ECompilationResult.FailedDueToHeaderChange, was not used for anything

[CL 2254472 by Mike Fricker in Main branch]
2014-08-13 08:17:43 -04:00
Mike Fricker
80f6dc9362 UnrealBuildTool: Experimental fast C++ include dependency scanning
- Adds experimental super-fast C++ outdated file checking
- This feature is turned off for now as we continue to test and improve it
      - You can try it out by enabling "bUseExperimentalFastDependencyScan" option in your BuildConfiguration.xml
- Here is the basic idea:
     - We no longer exhaustively scan all includes and build up a big graph every invocation
     - Instead, source files whose build products are missing have their includes scanned asynchronously while being compiled
     - The flat list of dependent includes for every outdated C++ is saved into a new cache file ("FlatCPPIncludes.bin")
     - On the next run, we quickly load that up and "just know" which files to check timestamps on to determine what is out of date
- Lots of "@todo fastubt" comments were added to UnrealBuildTool for potential performance optimizations and further improvements on this feature.

UnrealBuildTool: Determination of which modules have UObjects is now faster
- We now cache which modules have UObjects and load those for the next session

UnrealBuildTool: Module "shared" precompiled header determination is now much faster
- We no longer scan all C++ includes for a module to figure out which "shared" PCH to use
- Instead, we use the module dependencies specified in the module's *.Build.cs file
- For example, if your module depends on "Engine" and "UnrealEd", we choose "UnrealEd"'s shared PCH

Other UBT optimizations:
- Reduced calls to string formatting functions when setting up API definitions for all modules
- Added new performance diagnostics when bPrintPerformanceInfo is enabled in BuildConfiguration.xml
- We no longer check for "external" headers when scanning includes (this code didn't work at all)
- Optimized CleanDirectorySeparators() utility function to avoid string copies

Fixed UnrealBuildTool not saving DependencyCache under a platform-named folder

[CL 2238266 by Mike Fricker in Main branch]
2014-07-31 09:34:11 -04:00
Michael Trepka
e1372b3a29 Proper fix for UEBuildWinRT trying to check for Visual Studio on Mono
[CL 2230278 by Michael Trepka in Main branch]
2014-07-24 13:45:35 -04:00
Michael Trepka
9a7ee41176 Changed UBT's WinRTPlatform.HasRequiredManualSDKInternal() to always return SDKStatus.Invalid on Mono
[CL 2226894 by Michael Trepka in Main branch]
2014-07-22 09:04:53 -04:00
Marcus Wassmer
460b2d20d1 Refactor AutoSDKs in preparation for doing doing AutoSDK setup for the editor.
[CL 2223660 by Marcus Wassmer in Main branch]
2014-07-18 14:21:02 -04:00
Dmitry Rekman
68e0eadec8 Minor mono fixes (unused vars).
- Partially (except for PS4/XB1) in github PR #242.

#codereview Josh.Adams, Marcus.Wassmer, Jeff.Campeau, Peter.Lamb, Peter.Sauerbrei

[CL 2221545 by Dmitry Rekman in Main branch]
2014-07-16 20:26:20 -04:00
Ben Marsh
400af2276b Fix UBT not relinking targets after plugin static libraries are modified. Dependencies were ignored because their producing action was marked as creating an import library.
[CL 2218219 by Ben Marsh in Main branch]
2014-07-15 07:49:32 -04:00
Michael Trepka
e111b268a8 Changed UEBuildWinRT.RegisterBuildPlatform() to do nothing on Mono to solve a problem running UBT.exe built on Windows.
[CL 2214300 by Michael Trepka in Main branch]
2014-07-14 14:04:59 -04:00
Saul Abreu
7d6c6f552f Changes to UBT for third party directories. UEThirdPartyDirectory is now obsolete and should be replaced with UEThirdPartySourceDirectory. An error message will appear when attempting to build if this is not heeded.
[CL 2104963 by Saul Abreu in Main branch]
2014-06-13 16:31:00 -04:00
Mike Fricker
2a5375dfb8 Removed bEnableInlining setting from module build rules
- This setting wasn't really used for anything; we always enable inlining for all C++ modules

[CL 2099220 by Mike Fricker in Main branch]
2014-06-09 11:51:22 -04:00
Jaroslaw Palczynski
220c44b806 [GitHub] 132 : Introduce NativeBuildEnvironmentConfiguration
#github 132
#ttp 334942

[CL 2098971 by Jaroslaw Palczynski in Main branch]
2014-06-09 11:12:01 -04:00
Jaroslaw Palczynski
a51cded662 UBT: Renamed XmlConfigField to XmlConfig attribute and left only field annotation mechanism. If class has any fields annotated then it's going to be included in the configuration mechanism.
[CL 2097041 by Jaroslaw Palczynski in Main branch]
2014-06-06 07:43:02 -04:00
Jaroslaw Palczynski
32917f05be UBT XML configuration improvements:
- XSD driven IntelliSense
- defaults read from code (default XML file will be regenerated on UBT startup if is different than it should be)
- configurable classes/fields have to be now annotated with XmlConfig and XmlConfigField attributes
#codereview Robert.Manuszewski

[CL 2095741 by Jaroslaw Palczynski in Main branch]
2014-06-05 12:12:32 -04:00
Robert Manuszewski
283e939959 GitHub pull request #194: Full binary type. Removing hardcoded binary file extensions
[CL 2095675 by Robert Manuszewski in Main branch]
2014-06-05 12:11:58 -04:00