Commit Graph

1910 Commits

Author SHA1 Message Date
josh adams
7e0ec5711d - Changed Hybrid project checking to always check all enabled platforms to see if any need to be hybrid. This helps address an issue where a single-platform (say IOS) plugin was causing packaging to fail because the host platform (Mac) to clean up the hybrid target files, so then packaging for IOS would fail to find the compiled hybrid targets
#rb Chris.Babcock
#jira UE-224099

[CL 36758053 by josh adams in 5.5 branch]
2024-10-01 19:35:42 -04:00
Ryan Hummer
4af2fd066d Updating Dev-Release-5.5 from Main at CL #36144969
#okforversepublic

[CL 36146571 by Ryan Hummer in Dev-5.5 branch]
2024-09-10 10:26:02 -04:00
markus breyer
f83d2d8856 Support for import_as structs and interfaces in VerseVM VNI
- invoke native_callable functions inside AutoRTFM::Open
- a number of other small fixes

#rb russell.johnston
#rnx
#okforversepublic

[CL 36025538 by markus breyer in ue5-main branch]
2024-09-04 18:10:17 -04:00
josh adams
d32436ab0e - FIx for loading plugin configs when uproject name doesn't match directory name
- Added ProjectDescriptor.FromDirectory(), which will attempt to find and load a .uproject file from a project direectory (with .uproject in the root of that dir)

#rb David.Harvey, Joe.Kirchoff

[CL 36005543 by josh adams in ue5-main branch]
2024-09-04 09:10:37 -04:00
david harvey
c16b04763f Loosen the restriction on unknown platforms from some plugin folder locations
- allow game-specific plugins to reference certain platform extensions without using a plugin extension (currently just WinGDK)

#jira UE-219533
#rnx
#rb josh.adams

[CL 35968191 by david harvey in ue5-main branch]
2024-09-03 11:09:05 -04:00
josh adams
40b23a4c9b - Added ability to read plugins into a config hierarchy, controlled by passing optional IncludePluginsForTargetType param to ConfigCache.ReadHierarchy(), with a TargetType (like Game or Editor).
- Use this in CopyBuildToStagingDIrectory when reading the Packaging settings when staging. This allows plugins to add files/directories to stage without needing to modify every project.
- Added a ConfigTester Turnkey command that can help test C# inis programmatically. Currently need to pass in these 3 params on commandline, it doesn't ask for them: -Branch=Engine -Section=SomeSection -Key=SomeKey

#rb David.Harvey

[CL 35927236 by josh adams in ue5-main branch]
2024-08-30 11:05:34 -04:00
tim smith
a0ec526c4c Add initial Verse support in UHT. This does not include the runtime support.
#rnx
#rb Tim.Smith

[CL 35746263 by tim smith in ue5-main branch]
2024-08-22 13:15:41 -04:00
julian gamble
5481c29823 ModifyConfig action in buildgraph is not preserving quotations on original value.
#jira UES-7505
#rb Joe.Kirchoff

[CL 35727989 by julian gamble in ue5-main branch]
2024-08-21 19:49:50 -04:00
joe kirchoff
ee37bfcbd6 UnrealBuildTool: Add connection mode to telemetry
#rnx

[CL 35656879 by joe kirchoff in ue5-main branch]
2024-08-20 11:54:20 -04:00
josh adams
178b579c7c [Backout] - CL35638433
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Don't replace single quotes with double quotes on Mac/Linux with RunLocalProcessAndReturnStdOut

#rb David.Harvey

[CL 35644818 by josh adams in ue5-main branch]
2024-08-19 19:22:49 -04:00
josh adams
415d99fba6 - Don't replace single quotes with double quotes on Mac/Linux with RunLocalProcessAndReturnStdOut
#rb David.Harvey

[CL 35638443 by josh adams in ue5-main branch]
2024-08-19 16:50:23 -04:00
jared cotton
15d67cc2fc SOL-5938 - "Extension methods don't work with named arguments"
- removes un-needed 'dummy tuple' from extension methods which was originally added to differentiate them from normal methods of the same name. Extension methods are explicitly looked up different from normal methods in `ResolveOverloadedCallee`

- re-works how we compile and unpack parameters/arguments in the VerseVMCodeGen + Interpreter. In short:
    - All unnamed parameters are handled by the functions bytecode (See CompileParameters)... ie nested params have call()'s emitted to grab them there.
    - All named parameters are handed in separately from unnamed ones.
    - the 'unboxing' logic in the VM has been updated to respect this.
        - Positional params are directly stored
        - Named params are looked up by register name and stored

- adds new tests `NestedNamedTupleParameters.versetest`

#rb russell.johnston
[FYI] saam.barati
[FYI] yiliang.siew
#tests SceneGraph.Entity

[CL 35605644 by jared cotton in ue5-main branch]
2024-08-16 16:17:11 -04:00
tim smith
28a52116d2 Add verse module information to the UHT manifest
#rb Tim.Smith

[CL 35590713 by tim smith in ue5-main branch]
2024-08-16 07:06:41 -04:00
michael nicolella
63b981f08b ubt: added build options for enabling the autortfm verifier
#rb Joe.Kirchoff, neil.henning

[CL 35550129 by michael nicolella in ue5-main branch]
2024-08-14 17:27:14 -04:00
joe kirchoff
6368dc0f37 UnrealBuildTool: Add KnownLogEvents entry for RulesAssembly issues
#jira UE-202756
#rnx

[CL 35469183 by joe kirchoff in ue5-main branch]
2024-08-12 17:31:24 -04:00
joe kirchoff
22c1eb2216 UnrealBuildTool: Use IoHash instead of MD5 when checking for updated action attributes
#rnx

[CL 35439474 by joe kirchoff in ue5-main branch]
2024-08-09 18:51:33 -04:00
ben clayton
c84087525f [AutoRTFM] Prevent premature inlining of RTFM core functions and prevent mixed -fautortfm PCHs
The compiler can inline function calls before the AutoRTFMCompilerPass splits functions into open and closed variants, which can lead to incorrect RTFM behaviour.

When AutoRTFM is enabled (clang-verse with -fautortfm) remove the implementation of autortfm_is_closed(). This prevents the compiler from inlining the function (as there is nothing to inline).

Replace the use of UE_AUTORTFM_AUTORTFM() with function bodies that explicitly branches on autortfm_is_closed(), calling either a UE_AUTORTFM_ALWAYS_OPEN annotated closed function, or instead performing the open logic. Because the function body calls autortfm_is_closed() (which cannot be inlined), these functions should avoid the premature inlining problem.

When AutoRTFM is not enabled (clang-verse with -fautortfm, or a different compiler) the AutoRTFM core functions are stubbed with `static inline` implementations. The static qualifier should be sufficient to prevent this implementation leaking into other modules with AutoRTFM enabled.

Change BENIGN_LANGOPT(AutoRTFM, ...) to LANGOPT(AutoRTFM, ...). This makes Clang consider the flag as incompatible when mixing -fautortfm / no -fautortfm between precompiled headers and users. This is important as the new __AUTORTFM_ENABLED macro will be baked into the PCH.

Error if both -fautortfm and exceptions are enabled on the compiler.

Update the UnrealBuildTool to separate PCHs with -fautortfm enabled and without.

#rb neil.henning

[CL 35333537 by ben clayton in ue5-main branch]
2024-08-06 03:10:51 -04:00
yiliang siew
291cbf501d Implement (super:) and support overloads in the new VM. Introduces a basic VScope object that, for now, just contains the superclass. A new LoadScopeWithSelf opcode represents loading a field passing a given scope (that represents the superclass). As part of this, entries (i.e. VEntry) now contain VFunctions without Self/super rather than VProcedures, and Self gets filled in at runtime. The ParentScope is renamed to Self, while ParentScope is actually now used as the VScope.
Also updates some of the tracing logic to print out input operands as well.

#rnx
#rb russell.johnston, saam.barati
#rb Saam.Barati

[CL 35251986 by yiliang siew in ue5-main branch]
2024-08-01 14:10:59 -04:00
paul chipchase
cba1593128 Fix code comments being the wrong way around.
#rb Per.Larsson
#rnx

- The code documentation for these two members were switched, probably a copy paste error at somepoint.

[CL 35239699 by paul chipchase in ue5-main branch]
2024-08-01 05:20:22 -04:00
marc audy
ac0ec29059 Add support for a new type of Restricted folder, LimitedAccess
LimitedAccess will allow Plugins and Programs to be shared externally with a limited subset of users under alternate agreements or for varying purposes without requiring bespoke, problematic, custom permissions that reach in to the NotForLicencees folders or bespoke, problematic, custom distribution processes for providing the code.

[CL 35094184 by marc audy in ue5-main branch]
2024-07-25 16:15:56 -04:00
justin peterson
bc46511751 [Backout] - CL35058919 - Build Compile Error
[FYI] ben.clayton
Original CL Desc
-----------------------------------------------------------------
[AutoRTFM] Prevent premature inlining of RTFM core functions and prevent mixed -fautortfm PCHs

The compiler can inline function calls before the AutoRTFMCompilerPass splits functions into open and closed variants, which can lead to incorrect RTFM behaviour.

When AutoRTFM is enabled (clang-verse with -fautortfm) remove the implementation of autortfm_is_closed(). This prevents the compiler from inlining the function (as there is nothing to inline).

Replace the use of UE_AUTORTFM_AUTORTFM() with function bodies that explicitly branches on autortfm_is_closed(), calling either a UE_AUTORTFM_ALWAYS_OPEN annotated closed function, or instead performing the open logic. Because the function body calls autortfm_is_closed() (which cannot be inlined), these functions should avoid the premature inlining problem.

When AutoRTFM is not enabled (clang-verse with -fautortfm, or a different compiler) the AutoRTFM core functions are stubbed with `static inline` implementations. The static qualifier should be sufficient to prevent this implementation leaking into other modules with AutoRTFM enabled.

Change BENIGN_LANGOPT(AutoRTFM, ...) to LANGOPT(AutoRTFM, ...). This makes Clang consider the flag as incompatible when mixing -fautortfm / no -fautortfm between precompiled headers and users. This is important as the new __AUTORTFM_ENABLED macro will be baked into the PCH.

Update the UnrealBuildTool to separate PCHs with -fautortfm enabled and without.

#rb michael.nicolella

[CL 35070269 by justin peterson in ue5-main branch]
2024-07-24 18:29:18 -04:00
ben clayton
1b0c134313 [AutoRTFM] Prevent premature inlining of RTFM core functions and prevent mixed -fautortfm PCHs
The compiler can inline function calls before the AutoRTFMCompilerPass splits functions into open and closed variants, which can lead to incorrect RTFM behaviour.

When AutoRTFM is enabled (clang-verse with -fautortfm) remove the implementation of autortfm_is_closed(). This prevents the compiler from inlining the function (as there is nothing to inline).

Replace the use of UE_AUTORTFM_AUTORTFM() with function bodies that explicitly branches on autortfm_is_closed(), calling either a UE_AUTORTFM_ALWAYS_OPEN annotated closed function, or instead performing the open logic. Because the function body calls autortfm_is_closed() (which cannot be inlined), these functions should avoid the premature inlining problem.

When AutoRTFM is not enabled (clang-verse with -fautortfm, or a different compiler) the AutoRTFM core functions are stubbed with `static inline` implementations. The static qualifier should be sufficient to prevent this implementation leaking into other modules with AutoRTFM enabled.

Change BENIGN_LANGOPT(AutoRTFM, ...) to LANGOPT(AutoRTFM, ...). This makes Clang consider the flag as incompatible when mixing -fautortfm / no -fautortfm between precompiled headers and users. This is important as the new __AUTORTFM_ENABLED macro will be baked into the PCH.

Update the UnrealBuildTool to separate PCHs with -fautortfm enabled and without.

#rb michael.nicolella

[CL 35058925 by ben clayton in ue5-main branch]
2024-07-24 13:22:12 -04:00
joe kirchoff
33089071ef UnralBuildTool: Fixing more analysis warnings
#rnx

[CL 35042727 by joe kirchoff in ue5-main branch]
2024-07-23 19:39:24 -04:00
zousar shaker
a08314aab7 C# config cache fix so that it doesn't ignore extra commandline arguments because the IEnumerable Append method doesn't mutate the container it is called on, but returns a copy with the specified elements added.
#rb brian.white

[CL 34906817 by zousar shaker in ue5-main branch]
2024-07-18 13:51:35 -04:00
Tim Smith
69bc34ebc6 Adding UE support for custom generated code to be compiled similar to default generated code.
This is done via new exporter option called CompileOutput.

#rb Tim.Smith
#jira none

[CL 34904497 by Tim Smith in ue5-main branch]
2024-07-18 12:45:42 -04:00