Commit Graph

422 Commits

Author SHA1 Message Date
joe kirchoff
043859f1a2 UnrealBuildTool: Fix command line args containing include paths and defines when they are already listed. Add c & cpp args into compilerAdditionalArgs dictionary
#rnx

[CL 29288238 by joe kirchoff in ue5-main branch]
2023-10-31 16:11:51 -04:00
joe kirchoff
d6b2c9077a UnrealBuildTool: Support emiting line tables only for debugging rather than disabling debug info entirely
Configuration is the same as TargetRules.DebugInfo and will override that setting except when debug info is disabled for the entire target

[CL 28558101 by joe kirchoff in ue5-main branch]
2023-10-06 17:13:05 -04:00
joe kirchoff
46eab319e3 UnrealBuildTool: Add the ability to disable debugging info for select modules and plugins via TargetRules configuration
Obsolete bDisableDebugInfo and replace with TargetRules.DebugInfo which is a flags enum DebugInfoMode. TargetRules.DebugInfo can be set to any or all of [Engine, EnginePlugins, Project, ProjectPlugins], whichever flags are set will have debug info enabled for the modules in those groups if the Target would otherwise has debug info enabled
* DebugInfoMode.None is equalivant to bDisableDebugInfo=true (-NoDebugInfo will still set this)
* DebugInfoMode.ProjectOnly = Project | ProjectPlugins
* DebugInfoMode.EngineOnly = Engine | EnginePlugins
* DebugInfoMode.Full = Engine | EnginePlugins | Project | ProjectPlugins
* DebugInfoMode.Full is equalivant to bDisableDebugInfo=false (the current default)
Add TargetRules.DisableDebugInfoModules, this is a list of module names that should disable debug info regardless of TargetRules.DebugInfo
Add TargetRules.DisableDebugInfoPlugins, this is a list of plugin names that should disable debug info for all of their modules regardless of TargetRules.DebugInfo

[CL 28544448 by joe kirchoff in ue5-main branch]
2023-10-06 12:28:59 -04:00
joe kirchoff
6638bbba8b UnrealBuildTool: Use IEnumerable for list of toolchain input lists that should be immutable
#rnx

[CL 28484575 by joe kirchoff in ue5-main branch]
2023-10-04 20:25:45 -04:00
joe kirchoff
8cb89effaa UnrealBuildTool: ISPC pass --cpu when compiling not just generating headers
#rnx
#rb fabian.giesen, Ryan.Hummer

[CL 28383568 by joe kirchoff in ue5-main branch]
2023-10-02 13:02:49 -04:00
joe kirchoff
7b737bc85c UnrealBuildTool: Fix QueryMode to allow running in parallel
#rnx

[CL 28358351 by joe kirchoff in ue5-main branch]
2023-09-29 17:58:13 -04:00
joe kirchoff
e73f16593a UnrealBuildTool: Additional extensions for clang singlefile compiles
#rnx

[CL 28258245 by joe kirchoff in ue5-main branch]
2023-09-26 20:52:57 -04:00
brandon schaefer
343fb81c83 Disable no-deprecated-copy warning when building with clang on Windows
#rb Joe.Kirchoff

[CL 28014093 by brandon schaefer in ue5-main branch]
2023-09-19 17:16:34 -04:00
wojciech krywult
30742d8364 UBT: Clang: Added support for Clang's -fextend-lifetimes switch which improves debugging experience in optimized builds.
This switch makes the compiler extend lifetimes of local variables, function parameters and 'this' till the end of their scopes increasing the chance for the debugger being able to display their values when debugging.

It may slightly reduce performance so it's an opt-in feature controlled with bOptimizeForDebugging variable in xPlatform sections on supported platforms in BuildConfiguration.xml scripts. Even when set to true, it won't affect Test or Shipping builds.

#rb brian.white
#jira UE-121644
[RN] minor Added support for -fextend-lifetimes compilation switch on selected Clang-based platforms which improves debugging experience of optimized builds by increasing the number of local variables for which the debugger can show values. The feature may slightly reduce performance and is intended to be used in development only. It has to be explicitly activated by setting bOptimizeForDebugging variable in <platform>Platform section of BuildConfiguration.xml. It won't affect Test or Shipping configurations.

[CL 27428905 by wojciech krywult in ue5-main branch]
2023-08-28 18:28:56 -04:00
joe kirchoff
e03a20c7fa UnrealBuildTool: Fix distribution not working for -SingleFile by moving several action properties to be set in the shared base action
#rnx

[CL 27396140 by joe kirchoff in ue5-main branch]
2023-08-25 19:09:46 -04:00
josh adams
2995eb5c58 - Fixed codesigning of UnrealGame made with -createstub (will use dummy signing, which doesn't need a cert/provision pair, so will be signed the same way UnrealGame is signed without making a stub)
#jira UE-193672
#rb Calvin.zheng

[CL 27320434 by josh adams in ue5-main branch]
2023-08-23 17:05:44 -04:00
josh adams
ecce4e7680 - Brought back Legacy style temp keychain method because IPP cannot currently re-sign Frameworks embedded in a .app
#jira UE-193511
#rb axel.riffard

[CL 27279039 by josh adams in ue5-main branch]
2023-08-22 14:03:26 -04:00
andrew scheidecker
04a9c26a83 Fix ClangToolchain passing -fautortfm to the IWYU compiler.
#rb Michael.Nicolella, Brandon.Schaefer

[CL 27156750 by andrew scheidecker in ue5-main branch]
2023-08-16 17:45:21 -04:00
joe kirchoff
4881f73b49 [Backout] - CL27032041
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Respect warning as error setting for clang

#rnx

[CL 27082492 by joe kirchoff in ue5-main branch]
2023-08-14 15:35:19 -04:00
josh adams
7c82cb7d46 - Fixed some issues with codesigning BP projects with modern Xcode, when BaseEngine.ini has no signing info, and the signing info is in the projects settings
- The in-process project generation was not able to get the .uproject location
  - The making and using of the stub xcode projects were using UnrealGame target/scheme, not MyProjectGame (which Xcode makes since it can handle content-only uprojects)
  - UnrealGame.app, when just compiling, has no uproject, so it now use the dummy codesigning I added for stub generation, so no projects settings are needed

#jira UE-192593

[CL 27035369 by josh adams in ue5-main branch]
2023-08-11 13:42:54 -04:00
joe kirchoff
1e6fc5034b UnrealBuildTool: Respect warning as error setting for clang
#rnx

[CL 27032071 by joe kirchoff in ue5-main branch]
2023-08-11 12:40:05 -04:00
Josh Adams
e065d919b5 - Fixed an issue in IOSPostBuildSync crashing with null pointer
#jira UE-191083
#rb zack.neyland

[CL 26956011 by Josh Adams in ue5-main branch]
2023-08-09 10:51:54 -04:00
calvin zheng
453260b02f UBT: Use ld-classic in order to avoid the new linker since it seems to have some bugs with our code base.
Remove redundant -lc++

#jira UE-191350
#rb Josh.Adams, Zack.Neyland

[CL 26852644 by calvin zheng in ue5-main branch]
2023-08-04 13:17:50 -04:00
joe kirchoff
85db4326a0 UnrealBuildTool: Write files for static analysis to a separate intermediate folder
Fix up to date checks for clang static analysis. Note that clang analysis warnings can't be made into error, so subsequent builds will not replay warnings for up to date actions

#rnx
#jira UE-187067

[CL 26794436 by joe kirchoff in ue5-main branch]
2023-08-02 20:02:25 -04:00
Josh Adams
574dc31ccb - Very very early support for UE running as a SwiftUI app:
- .ini settings for using SwiftUI main function
  - this will eanble #defines, etc, to enable some embedded style functionality in UE, where SwiftUI will trigger when to create the engine/view/etc
  - assume fully immersive mode, which uses CompositorServices to get drawables from SwiftUI land
  - Added some code to FMetalViewport for using Composotir layer/drawable instead of CoreAnimation layer/drawable
  - If the .ini setting is false, then it will use the original VIsionOS support which works generally in the simulator

- Also removed -lc++ commandline which was causing "duplicate -lc++" warning when building in recent Xcode

#rb adam.kinge

[CL 26769312 by Josh Adams in ue5-main branch]
2023-08-02 09:09:16 -04:00
josh adams
0e3d323296 - Added architecture to GetDestinationPlatform() so -destination param to xcodebuild can get simulators (and brought it over from 5.4)
- Added some logging to UseModernXcode so it is clear which mode is being used, and why
- Fixed stub creation in modern to use local dummy identity (no need for keychain unlocking), and moved files into Payload directory inside the stub
#jira UE-168571
#rb adam.kinge

[CL 26620618 by josh adams in ue5-main branch]
2023-07-26 16:41:36 -04:00
andrew scheidecker
36ed1de4ba Add UBT options that allow per-target and per-module choice between "precise" or "imprecise" FP semantics.
#rb Fabian.Giesen, Joe.Kirchoff

[CL 26615577 by andrew scheidecker in ue5-main branch]
2023-07-26 14:23:55 -04:00
josh adams
0460ff0fbe - Fixed some fallout from robomerge conflict fixing in FN-26, conflicting with other changes FN/Main had that FN-26 didn't (i think)
#rb trivial

[CL 26524122 by josh adams in ue5-main branch]
2023-07-21 16:10:33 -04:00
josh adams
f8a359aec8 - Wrapped xcodebuild in a Mutex so only one runs at once. Xcode was having a rare issue of concurrent builds blocking access to a build.db file
#rb zack.neyland

[CL 26523611 by josh adams in ue5-main branch]
2023-07-21 15:58:35 -04:00
Josh Adams
465bde365c - Wrapped xcodebuild in a Mutex so only one runs at once. Xcode was having a rare issue of concurrent builds blocking access to a build.db file
#rb zack.neyland

[CL 26522912 by Josh Adams in ue5-main branch]
2023-07-21 15:39:14 -04:00