Skip to content

Commit 6e92ee1

Browse files
committed
Move post build steps to separate scripts
1 parent e300266 commit 6e92ee1

File tree

4 files changed

+91
-23
lines changed

4 files changed

+91
-23
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/bash
2+
3+
TARGET_PLATFORM="$1"
4+
TARGET_NAME="$2"
5+
TARGET_TYPE="$3"
6+
TARGET_CONFIGURATION="$4"
7+
PROJECT_FILE="$5"
8+
PLUGIN_DIR="$6"
9+
ENGINE_DIR="$7"
10+
11+
# Grant execute permissions to sentry-cli binary (FAB version of the plugin doesn't preserve file permissions)
12+
if [ -f "$PLUGIN_DIR/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64" ]; then
13+
chmod +x "$PLUGIN_DIR/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64"
14+
fi
15+
16+
ENGINE_VERSION=$(grep -o '"EngineAssociation": *"[^"]*"' "$PROJECT_FILE" | cut -d'"' -f4)
17+
18+
if [ "$(printf %.1s "$ENGINE_VERSION")" = "4" ]; then
19+
EDITOR_EXE="$ENGINE_DIR/Binaries/Linux/UE4Editor"
20+
else
21+
EDITOR_EXE="$ENGINE_DIR/Binaries/Linux/UnrealEditor"
22+
fi
23+
24+
"$EDITOR_EXE" "$PROJECT_FILE" -run=SentrySymbolUpload -target-platform="$TARGET_PLATFORM" -target-name="$TARGET_NAME" -target-type="$TARGET_TYPE" -target-configuration="$TARGET_CONFIGURATION" -unattended -nopause -nullrhi
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
TARGET_PLATFORM="$1"
4+
TARGET_NAME="$2"
5+
TARGET_TYPE="$3"
6+
TARGET_CONFIGURATION="$4"
7+
PROJECT_FILE="$5"
8+
PLUGIN_DIR="$6"
9+
ENGINE_DIR="$7"
10+
11+
# Copy sentry.dylib to plugin's Binaries\Mac dir if it doesn't exist there to ensure FAB version of the plugin works correctly - Epic obfuscates any extra binaries when pre-building the plugin
12+
if [ "$TARGET_PLATFORM" = "Mac" ] && [ ! -f "$PLUGIN_DIR/Binaries/Mac/sentry.dylib" ]; then
13+
cp "$PLUGIN_DIR/Source/ThirdParty/Mac/bin/sentry.dylib" "$PLUGIN_DIR/Binaries/Mac/sentry.dylib"
14+
fi
15+
16+
# Grant execute permissions to sentry-cli binary (FAB version of the plugin doesn't preserve file permissions)
17+
if [ -f "$PLUGIN_DIR/Source/ThirdParty/CLI/sentry-cli-Darwin-universal" ]; then
18+
chmod +x "$PLUGIN_DIR/Source/ThirdParty/CLI/sentry-cli-Darwin-universal"
19+
fi
20+
21+
ENGINE_VERSION=$(grep -o '"EngineAssociation": *"[^"]*"' "$PROJECT_FILE" | cut -d'"' -f4)
22+
23+
if [[ "${ENGINE_VERSION:0:1}" == "4" ]]; then
24+
EDITOR_EXE="$ENGINE_DIR/Binaries/Mac/UE4Editor"
25+
else
26+
EDITOR_EXE="$ENGINE_DIR/Binaries/Mac/UnrealEditor"
27+
fi
28+
29+
"$EDITOR_EXE" "$PROJECT_FILE" -run=SentrySymbolUpload -target-platform="$TARGET_PLATFORM" -target-name="$TARGET_NAME" -target-type="$TARGET_TYPE" -target-configuration="$TARGET_CONFIGURATION" -unattended -nopause -nullrhi
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
@echo off
2+
setlocal enabledelayedexpansion
3+
4+
set "TARGET_PLATFORM=%~1"
5+
set "TARGET_NAME=%~2"
6+
set "TARGET_TYPE=%~3"
7+
set "TARGET_CONFIGURATION=%~4"
8+
set "PROJECT_FILE=%~5"
9+
set "PLUGIN_DIR=%~6"
10+
set "ENGINE_DIR=%~7"
11+
12+
:: Copy crashpad handler executable to plugin's Binaries\Linux dir if it doesn't exist there to enable cross-compilation for Linux on Windows with FAB version of the plugin
13+
set "CRASHPAD_HANDLER_LINUX=%PLUGIN_DIR%\Binaries\Linux\crashpad_handler"
14+
if "%TARGET_PLATFORM%"=="Linux" (
15+
if not exist "%CRASHPAD_HANDLER_LINUX%" (xcopy "%PLUGIN_DIR%\Source\ThirdParty\Linux\bin\*" "%PLUGIN_DIR%\Binaries\Linux\" /F /R /Y /I)
16+
)
17+
18+
:: Copy crashpad handler executable to plugin's Binaries\Win64 dir if it doesn't exist there to ensure FAB version of the plugin works correctly - Epic obfuscates any extra binaries when pre-building the plugin
19+
set "CRASHPAD_HANDLER_WIN=%PLUGIN_DIR%\Binaries\Win64\crashpad_handler.exe"
20+
if "%TARGET_PLATFORM%"=="Win64" (
21+
if not exist "%CRASHPAD_HANDLER_WIN%" (xcopy "%PLUGIN_DIR%\Source\ThirdParty\Win64\Crashpad\bin\*" "%PLUGIN_DIR%\Binaries\Win64\" /F /R /Y /I)
22+
)
23+
24+
for /f "tokens=2 delims=:, " %%i in ('type "%PROJECT_FILE%" ^| findstr /C:"EngineAssociation"') do set "ENGINE_VERSION=%%~i"
25+
set "ENGINE_VERSION=!ENGINE_VERSION:~0,1!"
26+
27+
if "!ENGINE_VERSION!"=="4" (set "EDITOR_EXE=%ENGINE_DIR%\Binaries\Win64\UE4Editor-Cmd.exe") else (set "EDITOR_EXE=%ENGINE_DIR%\Binaries\Win64\UnrealEditor-Cmd.exe")
28+
29+
"!EDITOR_EXE!" "%PROJECT_FILE%" -run=SentrySymbolUpload -target-platform=%TARGET_PLATFORM% -target-name=%TARGET_NAME% -target-type=%TARGET_TYPE% -target-configuration=%TARGET_CONFIGURATION% -unattended -nopause -nullrhi
30+
31+
endlocal

plugin-dev/Sentry.uplugin

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,38 +31,22 @@
3131
"PreBuildSteps":
3232
{
3333
"Mac": [
34-
"if [ -f \"$(PluginDir)/Scripts/upload-debug-symbols.sh\" ]; then\n chmod +x \"$(PluginDir)/Scripts/upload-debug-symbols.sh\" \nfi",
35-
"if [ -f \"$(PluginDir)/Source/ThirdParty/CLI/sentry-cli-Darwin-universal\" ]; then\n chmod +x \"$(PluginDir)/Source/ThirdParty/CLI/sentry-cli-Darwin-universal\" \nfi"
34+
"chmod +x \"$(PluginDir)/Scripts/post-build-steps-mac.sh\""
35+
],
36+
"Linux": [
37+
"chmod +x \"$(PluginDir)/Scripts/post-build-steps-linux.sh\""
3638
]
3739
},
3840
"PostBuildSteps":
3941
{
4042
"Mac": [
41-
"if [ $(TargetPlatform) = \"Mac\" ] && [ ! -f \"$(PluginDir)/Binaries/Mac/sentry.dylib\" ]; then\n cp \"$(PluginDir)/Source/ThirdParty/Mac/bin/sentry.dylib\" \"$(PluginDir)/Binaries/Mac/sentry.dylib\"\nfi",
42-
"ENGINE_VERSION=$(grep -o '\"EngineAssociation\": *\"[^\"]*\"' \"$(ProjectFile)\" | cut -d'\"' -f4)",
43-
"if [[ \"${ENGINE_VERSION:0:1}\" == \"4\" ]]; then\n EDITOR_EXE=\"$(EngineDir)/Binaries/Mac/UE4Editor\"\nelse\n EDITOR_EXE=\"$(EngineDir)/Binaries/Mac/UnrealEditor\"\nfi",
44-
"echo \"Sentry: Executing commandlet: $EDITOR_EXE $(ProjectFile) -run=SentrySymbolUpload -target-platform=$(TargetPlatform) -target-name=$(TargetName) -target-type=$(TargetType) -target-configuration=$(TargetConfiguration) -unattended -nopause -nullrhi\"",
45-
"\"$EDITOR_EXE\" \"$(ProjectFile)\" -run=SentrySymbolUpload -target-platform=$(TargetPlatform) -target-name=$(TargetName) -target-type=$(TargetType) -target-configuration=$(TargetConfiguration) -unattended -nopause -nullrhi"
43+
"\"$(PluginDir)/Scripts/post-build-steps-mac.sh\" $(TargetPlatform) $(TargetName) $(TargetType) $(TargetConfiguration) \"$(ProjectFile)\" \"$(PluginDir)\" \"$(EngineDir)\""
4644
],
4745
"Linux": [
48-
"PROJECT_FILE=\"$(ProjectFile)\"",
49-
"ENGINE_VERSION=$(grep -o '\"EngineAssociation\": *\"[^\"]*\"' \"$PROJECT_FILE\" | cut -d'\"' -f4)",
50-
"if [ \"$(printf %.1s \"$ENGINE_VERSION\")\" = \"4\" ]; then EDITOR_EXE=\"$(EngineDir)/Binaries/Linux/UE4Editor\"; else EDITOR_EXE=\"$(EngineDir)/Binaries/Linux/UnrealEditor\"; fi",
51-
"echo \"Sentry: Executing commandlet: \\\"$EDITOR_EXE\\\" \\\"$(ProjectFile)\\\" -run=SentrySymbolUpload -target-platform=$(TargetPlatform) -target-name=$(TargetName) -target-type=$(TargetType) -target-configuration=$(TargetConfiguration) -unattended -nopause -nullrhi\"",
52-
"\"$EDITOR_EXE\" \"$(ProjectFile)\" -run=SentrySymbolUpload -target-platform=$(TargetPlatform) -target-name=$(TargetName) -target-type=$(TargetType) -target-configuration=$(TargetConfiguration) -unattended -nopause -nullrhi"
46+
"\"$(PluginDir)/Scripts/post-build-steps-linux.sh\" $(TargetPlatform) $(TargetName) $(TargetType) $(TargetConfiguration) \"$(ProjectFile)\" \"$(PluginDir)\" \"$(EngineDir)\""
5347
],
5448
"Win64": [
55-
"setlocal enabledelayedexpansion",
56-
"set \"CRASHPAD_HANDLER_LINUX=$(PluginDir)/Binaries/Linux/crashpad_handler\"",
57-
"if \"$(TargetPlatform)\"==\"Linux\" (\n if not exist \"%CRASHPAD_HANDLER_LINUX%\" (xcopy \"$(PluginDir)/Source/ThirdParty/Linux/bin/*\" \"$(PluginDir)/Binaries/Linux/\" /F /R /Y /I)\n)",
58-
"set \"CRASHPAD_HANDLER_WIN=$(PluginDir)/Binaries/Win64/crashpad_handler.exe\"",
59-
"if \"$(TargetPlatform)\"==\"Win64\" (\n if not exist \"%CRASHPAD_HANDLER_WIN%\" (xcopy \"$(PluginDir)/Source/ThirdParty/Win64/Crashpad/bin/*\" \"$(PluginDir)/Binaries/Win64/\" /F /R /Y /I)\n)",
60-
"for /f \"tokens=2 delims=:, \" %%i in ('type \"$(ProjectFile)\" ^| findstr /C:\"EngineAssociation\"') do set \"ENGINE_VERSION=%%~i\"",
61-
"set \"ENGINE_VERSION=!ENGINE_VERSION:~0,1!\"",
62-
"if \"!ENGINE_VERSION!\"==\"4\" (set \"EDITOR_EXE=$(EngineDir)/Binaries/Win64/UE4Editor-Cmd.exe\") else (set \"EDITOR_EXE=$(EngineDir)/Binaries/Win64/UnrealEditor-Cmd.exe\")",
63-
"echo Sentry: Executing commandlet: \"!EDITOR_EXE!\" \"$(ProjectFile)\" -run=SentrySymbolUpload -target-platform=$(TargetPlatform) -target-name=$(TargetName) -target-type=$(TargetType) -target-configuration=$(TargetConfiguration) -unattended -nopause -nullrhi",
64-
"\"!EDITOR_EXE!\" \"$(ProjectFile)\" -run=SentrySymbolUpload -target-platform=$(TargetPlatform) -target-name=$(TargetName) -target-type=$(TargetType) -target-configuration=$(TargetConfiguration) -unattended -nopause -nullrhi",
65-
"endlocal"
49+
"\"$(PluginDir)/Scripts/post-build-steps-win.bat\" $(TargetPlatform) $(TargetName) $(TargetType) $(TargetConfiguration) \"$(ProjectFile)\" \"$(PluginDir)\" \"$(EngineDir)\""
6650
]
6751
}
6852
}

0 commit comments

Comments
 (0)