Commit Graph

23 Commits

Author SHA1 Message Date
Dmitry Rekman
7fb45d090a Support more output devices on Linux.
- Partially based on PR #306 submission, corrected for cross-compiling.
- Each platform is now able to set up output devices for logging according to its own needs.

#codereview Josh.Adams, Michael.Trepka

[CL 2249193 by Dmitry Rekman in Main branch]
2014-08-08 21:42:14 -04:00
Robert Manuszewski
e6072fb050 UnrealBuildTool: Added UnrealHeaderTool version checking when checking if it's up to date.
#change UBT will check for API version of all UnrealHeaderTool binaries to detect partial syncs
#change Added BuildHostPlatform class for runtime platform abstraction

[CL 2245408 by Robert Manuszewski in Main branch]
2014-08-06 07:05:15 -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
Dmitry Rekman
e5f34239b9 Linux: fix building editor natively (in toolchain).
[CL 2228012 by Dmitry Rekman in Main branch]
2014-07-23 00:30:22 -04:00
Dmitry Rekman
f870b2ac35 Linux: one more hardcoded rpath to a TPS lib.
[CL 2223045 by Dmitry Rekman in Main branch]
2014-07-17 23:57:18 -04:00
Dmitry Rekman
6b8046d3a5 Linux toolchain: replace slashes properly (also account for escaped ones).
[CL 2222564 by Dmitry Rekman in Main branch]
2014-07-17 15:50:19 -04:00
Dmitry Rekman
263bbe7e0c Support for modular builds (cross and native).
- Parts of PR #242 (with changes).

#codereview Josh.Adams

[CL 2222405 by Dmitry Rekman in Main branch]
2014-07-17 13:49:42 -04:00
Dmitry Rekman
677b1058f7 Linux: more rpath hardcoding.
[CL 2133988 by Dmitry Rekman in Main branch]
2014-07-03 23:40:45 -04:00
Dmitry Rekman
973a6f0561 Linux: dirty hack for modular builds.
[CL 2133987 by Dmitry Rekman in Main branch]
2014-07-03 23:30:39 -04:00
Dmitry Rekman
3895c57d53 Fix building of projects with space in the path name.
(Fixes 4.3 TTP #338978).

[CL 2131800 by Dmitry Rekman in Main branch]
2014-07-03 16:39:13 -04:00
Peter Sauerbrei
6ef7196656 Fix for Linux using an old variable for architecture
#ue4

[CL 2100885 by Peter Sauerbrei in Main branch]
2014-06-10 17:14:40 -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
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
Dmitry Rekman
4411762b66 UBT: support different architectures (target triplets) in Linux toolchain.
[CL 2089710 by Dmitry Rekman in Main branch]
2014-05-30 10:58:16 -04:00
Dmitry Rekman
623d381f10 Linux toolchain: disable RTTI.
(Shaves off ~1 MB from a stripped Shipping binary).

[CL 2088815 by Dmitry Rekman in Main branch]
2014-05-29 17:47:36 -04:00
Dmitry Rekman
5ace6a8679 Linux: do not export overriden operators new/delete.
This is needed to avoid other shared objects (particularly Steam) picking them up and possibly crashing due to incorrect usage. This has already happened in the wild and the issue was reported on UDN.
Controlling visibility by attributes does not work due to those operators being defined with default visibility in system headers (same issue: http://lists.apple.com/archives/xcode-users/2006/Jan/msg00696.html)

#codereview Josh.Adams, Michael.Trepka, Daniel.Lamb

[CL 2083596 by Dmitry Rekman in Main branch]
2014-05-29 16:54:33 -04:00
Dmitry Rekman
f3647ea715 Linux native compilation improvements (incorporates PR 116 by Hydrael).
- detect Gentoo (and in generally distros without lsb_release installed)
- explicitly disable inlining in Debug

[CL 2069002 by Dmitry Rekman in Main branch]
2014-05-09 22:24:58 -04:00
Dmitry Rekman
e3105eda19 Merging the bulk of Darkside changes.
- New target platforms (LinuxNoEditor for client+server, LinuxClient for client, Linux for editor, LinuxServer for dedicated server - mirroring other platforms).
- Preliminary support for gcc in the toolchain (and some safe fixes in code).
- No more lowercasing when accessing files on Linux, tread carefully.
- Changes needed for native compilation and other minor improvements.

#codereview Josh.Adams, Michael.Liebenow, Steve.Robbs

[CL 2067133 by Dmitry Rekman in Main branch]
2014-05-08 13:01:46 -04:00
Fred Kimberley
25ab7d8e19 Merging using UE4-Fortnite-To-UE4 using CL 2065232.
[CL 2066377 by Fred Kimberley in Main branch]
2014-05-07 20:37:19 -04:00
Dmitry Rekman
9454bdc669 Switched Linux tolchain to use compiler for linking and added action descriptions.
#codereview Michael.Liebenow

[CL 2045102 by Dmitry Rekman in Main branch]
2014-04-23 18:38:28 -04:00
UnrealBot
db494a6e69 Engine source (Main branch up to CL 2037954) 2014-04-02 18:09:23 -04:00
TimSweeney
3a75fe0114 Engine source (Main branch up to CL 2027006) 2014-03-15 01:14:25 -04:00
Tim Sweeney
324683ce78 Engine source (Main branch up to CL 2026164) 2014-03-14 14:13:41 -04:00