Compare commits

..

No commits in common. "d89c9a6072946facfbc2289e17fefdec23479d1a" and "f90c0a59b67b88a2c51ee7a7e30b7aa4127aa382" have entirely different histories.

3 changed files with 57 additions and 30 deletions

View File

@ -2,6 +2,7 @@
# It will most likely need a partial rewrite to segment the build process into separate script invocations based on the OS.
# That or just rewrite it in an sh script and call it a day.
Import-Module ./helpers/target_arch.psm1
$target_arch = Join-Path $PSScriptRoot 'helpers/target_arch.psm1'
$devshell = Join-Path $PSScriptRoot 'helpers/devshell.ps1'
$format_cpp = Join-Path $PSScriptRoot 'helpers/format_cpp.psm1'
@ -9,29 +10,7 @@ $refactor_unreal = Join-Path $PSScriptRoot 'refactor_unreal.ps1'
$incremental_checks = Join-Path $PSScriptRoot 'helpers/incremental_checks.ps1'
$vendor_toolchain = Join-Path $PSScriptRoot 'helpers/vendor_toolchain.ps1'
Import-Module $target_arch
function Get-ScriptRepoRoot {
$currentPath = $PSScriptRoot
while ($currentPath -ne $null -and $currentPath -ne "")
{
if (Test-Path (Join-Path $currentPath ".git")) {
return $currentPath
}
# Also check for .git file which indicates a submodule
$gitFile = Join-Path $currentPath ".git"
if (Test-Path $gitFile -PathType Leaf)
{
$gitContent = Get-Content $gitFile
if ($gitContent -match "gitdir: (.+)") {
return $currentPath
}
}
$currentPath = Split-Path $currentPath -Parent
}
throw "Unable to find repository root"
}
$path_root = Get-ScriptRepoRoot
$path_root = git rev-parse --show-toplevel
Import-Module $target_arch
Import-Module $format_cpp

View File

@ -1,7 +1,7 @@
API_Export, GEN_API_Export_Code
API_Import, GEN_API_Import_Code
UE_DEPRECATED, UE_DEPRECATED
UMG_API, UMG_API
COREUOBJECT_API, COREUOBJECT_API
ENGINE_API, ENGINE_API
GAMEPLAYABILITIES_API, GAMEPLAYABILITIES_API
UMG_API, UMG_API
UE_DEPRECATED, UE_DEPRECATED

1 API_Export GEN_API_Export_Code
2 API_Import GEN_API_Import_Code
3 UE_DEPRECATED UE_DEPRECATED
4 UMG_API UMG_API
5 COREUOBJECT_API COREUOBJECT_API
6 ENGINE_API ENGINE_API
7 GAMEPLAYABILITIES_API GAMEPLAYABILITIES_API
UMG_API UMG_API
UE_DEPRECATED UE_DEPRECATED

View File

@ -1,6 +1,6 @@
#define GEN_DEFINE_LIBRARY_CODE_CONSTANTS
#define GEN_ENFORCE_STRONG_CODE_TYPES
#define GEN_EXPOSE_BACKEND
#define GEN_EXPOSE_BACKEDN
#include "gen.cpp"
#include "helpers/push_ignores.inline.hpp"
@ -104,6 +104,54 @@ int gen_main()
}
break;
case Preprocess_Pragma:
{
macros.append(code);
continue;
local_persist bool found = false;
if (found)
{
macros.append(code);
continue;
}
if (code->Content.starts_with(txt("region ForceInline Definition")))
{
macros.append(code);
++ code;
CodeBody replacement = parse_global_body(StrC(txt(
R"(#ifdef GEN_COMPILER_MSVC
#define FORCEINLINE __forceinline
#define neverinline __declspec( noinline )
#elif defined( GEN_COMPILER_GCC )
#define FORCEINLINE inline __attribute__( ( __always_inline__ ) )
#define neverinline __attribute__( ( __noinline__ ) )
#elif defined( GEN_COMPILER_CLANG )
#if __has_attribute( __always_inline__ )
#define FORCEINLINE inline __attribute__( ( __always_inline__ ) )
#define neverinline __attribute__( ( __noinline__ ) )
#else
#define FORCEINLINE
#define neverinline
#endif
#else
#define FORCEINLINE
#define neverinline
#endif)")));
macros.append(replacement);
while (code->Type != ECode::Preprocess_Pragma
|| ! code->Content.starts_with(txt("endregion ForceInline Definition")))
++ code;
macros.append( code );
found = true;
}
}
break;
default:
macros.append(code);
break;