Commit Graph

48 Commits

Author SHA1 Message Date
Dmitry Rekman
9408a83973 Linux: exempt some warnings from -Werror.
- After discussion with Core/Platform teams, it was determined that these warnings [would] affect build failure rate too much.
- We do not want to suppress them altogether though and they are going to be fixed as time and resources permit.

#codereview Josh.Adams, Michael.Trepka, Chris.Babcock, Marcus.Wassmer, Ankit.Khare

[CL 2488268 by Dmitry Rekman in Main branch]
2015-03-23 16:01:17 -04:00
Dmitry Rekman
0767242767 Switch UBT to use clang 3.6.0 Linux cross-toolchain.
-  -Wno-inconsistent-missing-override suppressed, pending discussion with the Core team.

#codereview Steve.Robb, Robert.Manuszewski, Josh.Adams

[CL 2487976 by Dmitry Rekman in Main branch]
2015-03-23 13:07:46 -04:00
Ben Marsh
9c39abe349 Remove symbol stripping for Rocket from UBT. Will strip inside build process instead.
[CL 2486710 by Ben Marsh in Main branch]
2015-03-20 16:23:30 -04:00
Dmitry Rekman
c313b56549 Linux: do not inhibit optimizations in Development and higher configurations.
- bCreateDebugInfo is pretty much true all the time.

[CL 2473973 by Dmitry Rekman in Main branch]
2015-03-10 13:00:25 -04:00
Dmitry Rekman
fdadddf146 Linux: do not use initial-exec TLS model in dynamic libraries.
- Fixes editor problems on Ubuntu 14.04.1 and lower.
- Monolithic games/servers are unaffected.

[CL 2473347 by Dmitry Rekman in Main branch]
2015-03-09 23:52:38 -04:00
Peter Sauerbrei
b15dcef009 fixes for building Linux when the SDK path has a space in it
#codereview dmitry.rekman

[CL 2464358 by Peter Sauerbrei in Main branch]
2015-02-27 14:38:49 -05:00
Matthew Griffin
656a64832c [INTEGRATE] Change 2442289 by Ben.Marsh@Ben.Marsh_Z3237 on 2015/02/11 16:26:04
Strip linux executables in Rocket. Saves ~400mb from install footprint.

	#codereview Dmitry.Rekman

[CL 2448748 by Matthew Griffin in Main branch]
2015-02-17 10:43:09 -05:00
John Abercrombie
4e9ac6444a Merging using UE4-Fortnite-To-UE4 @ CL 2382284
[CL 2388856 by John Abercrombie in Main branch]
2014-12-15 15:29:48 -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
Dmitry Rekman
25ae3f7f73 Enable one more (rather crucial) warning for native builds too.
[CL 2362987 by Dmitry Rekman in Main branch]
2014-11-17 23:40:09 -05:00
Dmitry Rekman
8ab3e0ca13 Enable more warnings and fix errors/problems caught by them.
#codereview Michael.Noland
- PaperSprite

#codereview Kevin.Hamilton
- EditorBuildPromotionTests

#codereview David.Ratti
- AttributeDetails

#codereview Saul.Abreu
- RepairLocData

#codereview Maciej.Mroz
- K2Node

[CL 2362839 by Dmitry Rekman in Main branch]
2014-11-17 20:20:08 -05:00
Dmitry Rekman
7fa6e51578 Make UBT look for a few more clang versions (UE-5508).
- Helps on Ubuntu 14.10 and newer Debian that switched to co-installable clang.

[CL 2361441 by Dmitry Rekman in Main branch]
2014-11-15 19:55:14 -05:00
Dmitry Rekman
0dc3ccd3e0 Linux: support compiling for other architectures than x86_64.
[CL 2345608 by Dmitry Rekman in Main branch]
2014-10-30 19:44:12 -04:00
Dmitry Rekman
45ed24286b Fix linking to libraries located in path with spaces.
- PR #551 contributed by amigo.
- Fixes a quite common case of a project with plugins being located in "Unreal Projects" directory.
- UE-4651

[CL 2343090 by Dmitry Rekman in Main branch]
2014-10-28 20:44:29 -04:00
Dmitry Rekman
9fcf3ff7d6 Prevent compilation attempts that are known to fail.
- No clang 3.4.x nor gcc on Linux.

[CL 2339031 by Dmitry Rekman in Main branch]
2014-10-23 16:21:44 -04:00
Dmitry Rekman
9b249a3480 Linux: clean up and fix rpaths.
- Removed old rpaths for libs which we now link statically.
- Added rpath useful for target platform modules and other fixes from PR #442.

[CL 2314947 by Dmitry Rekman in Main branch]
2014-09-30 17:04:15 -04:00
Dmitry Rekman
6f2fe48268 Reduce optimization level for Linux builds (TTP #347022).
- clang 3.5.0 (and Ubuntu's 3.5-trunk) seems to miscompile PlatformerGame (bControlsLocked bitfield becomes true for some reason, doesn't happen with -O2 and -O0).
- fixes TTP #347022.

[CL 2312439 by Dmitry Rekman in Main branch]
2014-09-28 23:27:35 -04:00
Dmitry Rekman
713fce30f5 UBT: Proper dependencies for modular builds + fix Linux cross-build.
[CL 2300046 by Dmitry Rekman in Main branch]
2014-09-16 16:32:04 -04:00
Dmitry Rekman
3ab3dfb704 Fix crashes on broken/old toolchains.
- UBT was invoking non-existent compiler to determine its version.
- Happened during AutoSDK switch as well.

[CL 2295597 by Dmitry Rekman in Main branch]
2014-09-12 17:06:44 -04:00
Dmitry Rekman
2d64990948 UBT: Do not spam with compiler version when cross-compiling.
[CL 2290852 by Dmitry Rekman in Main branch]
2014-09-09 12:19:16 -04:00
Dmitry Rekman
839ace6b16 Determine compiler version on Linux in runtime.
This allows us to better match switches given the multitude of (cross-)toolchains in use currently.

[CL 2289904 by Dmitry Rekman in Main branch]
2014-09-08 16:47:10 -04:00
Dmitry Rekman
f15ad7011a Switching Linux builds to clang 3.5.0-based toolchain.
- Temporarily suppressed a warning until we resolve if (!this) checks.
- Upped optimization from -O2 to -O3 (as was the case a year ago).

Note: 3.5.0 generates much more compact debug info, reducing development server binary size from 1GB to roughly 600 MB.

#codereview Bob.Tellez, Kellan.Carr

[CL 2288345 by Dmitry Rekman in Main branch]
2014-09-07 12:44:30 -04:00
Bob Tellez
5f3cf61c7d UE4: Moved some Mac/IOS platform specific functions to the UEToolChain interface so branches without Mac code can still run UBT.
#codereview Michael.Trepka,Dmitry.Rekman

[CL 2283868 by Bob Tellez in Main branch]
2014-09-03 21:56: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