Commit Graph

26 Commits

Author SHA1 Message Date
Ben Marsh
1b1e409efd Rename PluginInfo.LoadedFromType to PluginLoadedFrom.
[CL 2521047 by Ben Marsh in Main branch]
2015-04-22 10:28:54 -04:00
Ben Marsh
6c204dde74 Use the plugin filename to derive the plugin name, rather than using the directory name. Using the directory name is not consistent with the engine.
[CL 2521022 by Ben Marsh in Main branch]
2015-04-22 10:14:06 -04:00
Ben Marsh
24f3997488 Remove the global plugins array. Targets can figure out which plugins to enable for themselves, and that list isn't cross-pollenated with other targets.
[CL 2520938 by Ben Marsh in Main branch]
2015-04-22 09:37:04 -04:00
Ben Marsh
57d92dc12b Remove another use of the AllPlugins array in UEBuildTarget, and use a single code path for determining whether a plugin is enabled for a given platform.
[CL 2520897 by Ben Marsh in Main branch]
2015-04-22 09:12:37 -04:00
Ben Marsh
a8f46ea87c Add function to enumerate plugins available for a specific project rather than using the global array, and add a function to determine if a plugin is enabled.
#codereview Peter.Sauerbrei

[CL 2520056 by Ben Marsh in Main branch]
2015-04-21 17:20:20 -04:00
Ben Marsh
9416a7c2e3 Remove global map for plugin module names. Each target now uses plugin information only when it's initialized.
[CL 2519785 by Ben Marsh in Main branch]
2015-04-21 15:42:12 -04:00
Ben Marsh
f4646cf08d Add plugins to projects without needing to reference the AllPlugins array.
[CL 2519703 by Ben Marsh in Main branch]
2015-04-21 15:04:41 -04:00
Ben Marsh
3f5363055c Remove the IsPluginModule() function; use a more explicit check against files in the engine source directory instead.
[CL 2519158 by Ben Marsh in Main branch]
2015-04-21 09:45:07 -04:00
Ben Marsh
91e7fd286e Fix "EnabledByDefault" plugins not being compiled as part of targets.
[CL 2517061 by Ben Marsh in Main branch]
2015-04-19 16:09:57 -04:00
Ben Marsh
9d2cb9e749 Added implementation of ProjectDescriptor to UBT, which mirrors definition in the engine.
[CL 2517036 by Ben Marsh in Main branch]
2015-04-19 12:46:09 -04:00
Ben Marsh
208957aa7f Implement PluginDescriptor and ModuleDescriptor in UBT in an identical way to the engine. Also add a wrapper for objects parsed by fastJSON, that allows easier retrieval of typed fields.
[CL 2517026 by Ben Marsh in Main branch]
2015-04-19 12:03:48 -04:00
Ben Marsh
f6e81e1579 Remove filtering for plugins based on BuildingRocket(). We can filter out resulting binaries using directory name checks instead.
[CL 2486673 by Ben Marsh in Main branch]
2015-03-20 16:06:56 -04:00
Peter Sauerbrei
498f7cd482 fix for Plugins not being found when -nocompile is provided
fix for generating Target.cs when -nocodeproject is provided (removed -nocodeproject as it is no longer needed due to other fixes)
default plugins no longer cause a target file to be generated
#codereview ankit.khare, josh.adams, daniel.lamb

[CL 2473705 by Peter Sauerbrei in Main branch]
2015-03-10 09:50:47 -04:00
Jaroslaw Palczynski
cdbb6fd0eb Back out changelist 2385172.
[CL 2385179 by Jaroslaw Palczynski in Main branch]
2014-12-11 03:13:57 -05:00
Jaroslaw Palczynski
6f7ddd594f GitHub pull request #335
#codereview Robert.Manuszewski

[CL 2385172 by Jaroslaw Palczynski in Main branch]
2014-12-11 03:09:25 -05: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
Ben Marsh
086e6dd4ce Add a utility function to determine when a path should be ignored in Rocket builds. Currently removes plugins in NoRedist and NotForLicensees folders.
[CL 2312839 by Ben Marsh in Main branch]
2014-09-29 09:45:43 -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
Ben Marsh
e35719b0b4 Store whether a plugin is enabled by default in the uplugin file (rather than in the INI file). Simplifies checks for what is enabled in UE4Game and decentralizes everything.
[CL 2119957 by Ben Marsh in Main branch]
2014-06-27 16:38:50 -04:00
Ben Marsh
100dfb0b32 Store the list of enabled plugins in the uproject file (fixing TTP 335060), and enable all game plugins by default (TTP 339313).
[CL 2119810 by Ben Marsh in Main branch]
2014-06-27 15:23:15 -04:00
Matt Kuhlenschmidt
cb140c07dc Merged GitHub pull request #202 to main.
refactored tga code to allows use outside of EditorFactories.cpp
added support for grayscale jpeg
fix memory leak in jpeg code
changes in AssetTools to allow to specify precise factory when multiple factories support the same filetype
changes in Plugin.cs to allow binary only plugins
exposed parts of engine API to other modules

[CL 2108453 by Matt Kuhlenschmidt in Main branch]
2014-06-17 16:16:40 -04:00
Steve Robb
d3d90eafb4 #ttp 333737: UHT should not output anything differently for Rocket - resubmitted after CL# 2068336 was backed out due to UAT rebuild problems.
#change Root module path added to include paths.
#change Plugins now write intermediates to the project folder.
#change All generated #includes are now relative.
#change Updated UHTDebugging.manifest to new format.
#change Android response files now use relative include paths to prevent overly-large response files.
#remove Rocket-specific UHT execution removed.
#remove iOS header hack removed.

#codereview robert.manuszewski,ben.marsh

[CL 2077472 by Steve Robb in Main branch]
2014-05-19 06:57:00 -04:00
Steve Robb
ddad01ad2f Back out changelist 2073005
[CL 2073795 by Steve Robb in Main branch]
2014-05-14 23:07:26 -04:00
Steve Robb
cd8b6a99d2 #ttp 333737: UHT should not output anything differently for Rocket - resubmitted after CL# 2068336 was backed out due to UAT rebuild problems.
#change Root module path added to include paths.
#change Plugins now write intermediates to the project folder.
#change All generated #includes are now relative.
#change Updated UHTDebugging.manifest to new format.
#remove Rocket-specific UHT execution removed.
#remove Some bHackHeaderGenerator usage removed.
#remove iOS header hack removed.

#codereview robert.manuszewski,ben.marsh

[CL 2073005 by Steve Robb in Main branch]
2014-05-14 14:50:21 -04:00
Robert Manuszewski
212c47eec9 Support for scripting language integrations via plugins. Experimental Lua integration.
- Added program-only plugin support and made UHT script plugin aware
- Added 3 generic script plugins with experimental Lua integration: ScriptGeneratorPlugin (UHT), ScriptPlugin (Engine), ScriptEditorPlugin (Editor-side)
- Lua integration is disabled by default

[CL 2058611 by Robert Manuszewski in Main branch]
2014-04-29 06:45:18 -04:00