Commit Graph

40 Commits

Author SHA1 Message Date
James Moran
1e09f3b5bd Add -Wshadow on HTML5. Fixed errors relating to it. UE-14250
Fixed some potential issues from incoming SDK release. Removed unnecessary js lib.

[CL 2524336 by James Moran in Main branch]
2015-04-24 10:49:50 -04:00
Ben Marsh
3a7e022d4c Generate build receipts from UBT, which keep a record of all the files written for a target and records any metadata needed to stage or deploy it.
[CL 2501101 by Ben Marsh in Main branch]
2015-04-03 10:25:57 -04:00
James Moran
d97a8ef83b Disable constructor member init order warning for HTML5
[CL 2493402 by James Moran in Main branch]
2015-03-27 04:50:46 -04:00
Ben Marsh
a362ebae73 Don't add mem files to manifest for HTML5
[CL 2487248 by Ben Marsh in Main branch]
2015-03-21 19:35:46 -04:00
James Moran
1a3dd69d01 HTML5 CIS bodge. Looks like we need to update SDK.
[CL 2462021 by James Moran in Main branch]
2015-02-26 07:26:51 -05:00
James Moran
f1320865f9 Many improvements to HTML5.
- Fixes to the Mac HTML5 Device selection. .app files now work correctly.
- Re-enabled HTML5 in Mac Editor.
- Added HTML5LaunchHelper executable to clean up the process of LaunchOn for HTML5.
- Improve HTML5 SDK Settings Editor interface. Only the emscripten install directory is needed now, SDK version are automatically picked up and selected for use.
- Change UnrealPak to also account for bytes saved (>64KB) and percentage size of original file (<90%) when choosing to automatically turn off compression.
- Added Server Port option for HTML5 deploy to stop clashes on port 8000
- Adding more logging for use during debugging & tracing.
- Added an option to turn on HTML5 tracing api and added calls to the api.
- Fix up check() macros to throw alert messages and be more clear that something has gone wrong on HTML5.

#codereview Ankit.Khare

[CL 2452979 by James Moran in Main branch]
2015-02-20 04:41:01 -05:00
Ankit Khare
194e3f095e #HTML5
Force ThirdParty libs to be linked in always last. Linker may refuse to link in archives if they are linked in before the linker encounters dependent symbols. (fixes unresolved symbols in html5 rocket build )

[CL 2409758 by Ankit Khare in Main branch]
2015-01-16 18:19:59 -05:00
Ben Marsh
b321e6f43b Bit of housekeeping before adding list of dependencies into UBT's manifest:
* Renamed FileManifest to BuildManifest and FileManifestItems to BuildProducts, to more accurately reflect what they are.
* Removed ref qualifier when passing BuildManifest around; it's already a reference type, and not meant to be assigned to.
* Removed UAT's redundant copy of BuildManifest, since it already references the UBT assembly.

[CL 2406323 by Ben Marsh in Main branch]
2015-01-14 15:46:41 -05:00
Peter Sauerbrei
81c8e0a75a fix for build spam
UE-6858
#html5

[CL 2401421 by Peter Sauerbrei in Main branch]
2015-01-08 17:38:47 -05:00
James Moran
d53e2c908c Fix for linking issues on HTML5. Don't link libraries when building libraries.
#codereview ankit.khare

[CL 2383362 by James Moran in Main branch]
2014-12-10 09:08:03 -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
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
Ankit Khare
f0430510cd SDL2 upgrade from the SDK provided SDL1.3 for HTML5 Platform.
[CL 2365228 by Ankit Khare in Main branch]
2014-11-19 13:56:35 -05:00
Ankit Khare
ac82f8cc00 correctly qoute emscripten compiler path to fix issues when the path has spaces. fixes UE-5177
[CL 2355467 by Ankit Khare in Main branch]
2014-11-10 21:54:46 -05:00
Ankit Khare
060ff917ef fix incorrect html5 sdk discovery in tool chain.cs
[CL 2353750 by Ankit Khare in Main branch]
2014-11-07 18:06:06 -05:00
Ankit Khare
55d2e28ba4 Allow html sdk path to be set using ini file.
- takes preference over EMSCRIPTEN env variable
   - editor can now detect sdk on yosemite.
   - refactor and simplyfy emscripten sdk access in .cs files.

#corereview james.moran

[CL 2345958 by Ankit Khare in Main branch]
2014-10-31 04:31:19 -04:00
James Moran
0391f97b3e HTML5 crash handling & stack walking
#codereview Jaroslaw.Surowiec

[CL 2331318 by James Moran in Main branch]
2014-10-16 04:51:33 -04:00
James Moran
25259249ba Changed Emscripten setting read function to handle comments.
Also added more logging, changed autoSDK setup.bat to output helpful varibles into emscripten file.

#codereview Ankit.Khare

[CL 2308569 by James Moran in Main branch]
2014-09-24 13:56:28 -04:00
James Moran
417625cdd2 Fix for HTML5 packaging picking up the wrong version of python leading to path failures
[CL 2305633 by James Moran in Main branch]
2014-09-22 11:23:43 -04:00
Cody Haskell
55eb941909 Hey, we've never met before, but I have been told I'm build watcher today, so I was watching the build and saw this.
This was causing a warning on CIS. The warning was...

HTML5/HTML5ToolChain.cs(313,11): warning CS0219: The variable `BaseSDKPath' is assigned but its value is never used

It is a one line fix, and even though I am 99.999% this won't cause any problems, I don't have a great way to compile this, so I'm code reviewing you. :-)

#codereview Ankit.Khare

[CL 2298187 by Cody Haskell in Main branch]
2014-09-15 11:01:03 -04:00
Ankit Khare
2adf98093f Get ready for sdk upgrade. Remove linked in demangling code - newer sdks have this built in.
#HTML5

[CL 2295151 by Ankit Khare in Main branch]
2014-09-12 11:36:37 -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
Ankit Khare
ba44f71314 #UE4 #HTML5
#TTP 342902 CRITICAL: Regression: HTML5: Code templates fails to launch
    #TTP 342884 CRITICAL: Regression: HTML5: UFE: Fails to cook then gets a mac crash

        -fix up html template ( argument ordering )
        -don't use pak when packaging for html5
        -properly quote pathname with spaces on mac.
        -fix linking of plugins on first run of ubt.
   #codereview peter.sauerbrei

[CL 2241888 by Ankit Khare in Main branch]
2014-08-04 08:08:56 -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
Daniel Lamb
ec66bcf4e6 Fix for pythonpath missing python exe name. TTP 342757.
#codereview Peter.Sauerbrie

[CL 2237605 by Daniel Lamb in Main branch]
2014-07-30 17:55:43 -04:00