build: rebrand output artifacts to Oak and fix macOS QML deployment
- Rename macOS bundle output from Olive.app to Oak.app. - Rename editor binary to oak-editor and render worker to oak-render-worker. - Rename crash handler output to oak-crashhandler. - Update worker lookup, NSIS installer, Linux desktop/AppRun, crashhandler symbol paths, and documentation for the new binary names. - Update CD workflow paths and add -qmldir flags to macdeployqt so QtQuick / QML plugins required by KDDockWidgets are bundled, fixing the launch crash on macOS. - Update user-facing GitHub URLs to OakVideoEditorCommunity/oak.
This commit is contained in:
+9
-6
@@ -250,7 +250,9 @@ endif()
|
||||
# Ensure the render worker is always built together with the editor on every platform.
|
||||
add_dependencies(olive-editor olive-render-worker)
|
||||
|
||||
# Add render worker process (olive-render-worker).
|
||||
set_target_properties(olive-editor PROPERTIES OUTPUT_NAME "oak-editor")
|
||||
|
||||
# Add render worker process (oak-render-worker).
|
||||
# Reuses the libolive-editor object library so the worker shares the exact same render/node/codec
|
||||
# code as the editor. It is a headless app that owns its own offscreen GL context. The link set is
|
||||
# currently the full OLIVE_LIBRARIES for simplicity; trimming UI-only dependencies is a later-phase
|
||||
@@ -260,6 +262,7 @@ add_executable(olive-render-worker
|
||||
$<TARGET_OBJECTS:libolive-editor>
|
||||
$<TARGET_OBJECTS:olive-version-obj>
|
||||
)
|
||||
set_target_properties(olive-render-worker PROPERTIES OUTPUT_NAME "oak-render-worker")
|
||||
if (APPLE)
|
||||
target_sources(olive-render-worker PRIVATE render/worker/workermain_mac.mm)
|
||||
target_link_libraries(olive-render-worker PRIVATE "-framework Cocoa")
|
||||
@@ -292,7 +295,7 @@ if (WIN32)
|
||||
|
||||
elseif(APPLE)
|
||||
# Set Mac application icon
|
||||
set(OLIVE_ICON packaging/macos/olive.icns)
|
||||
set(OLIVE_ICON packaging/macos/oak.icns)
|
||||
target_sources(olive-editor PRIVATE ${OLIVE_ICON})
|
||||
|
||||
# Set Mac bundle properties
|
||||
@@ -300,24 +303,24 @@ elseif(APPLE)
|
||||
MACOSX_BUNDLE TRUE
|
||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/packaging/macos/MacOSXBundleInfo.plist.in
|
||||
MACOSX_BUNDLE_GUI_IDENTIFIER org.oakvideoeditor.Oak
|
||||
MACOSX_BUNDLE_ICON_FILE olive.icns
|
||||
MACOSX_BUNDLE_ICON_FILE oak.icns
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}
|
||||
MACOSX_BUNDLE_BUNDLE_NAME "Oak Video Editor"
|
||||
MACOSX_BUNDLE_INFO_STRING "Oak Video Editor ${PROJECT_LONG_VERSION}"
|
||||
MACOSX_BUNDLE_COPYRIGHT "©2018-2021 Olive Studios LLC and others. Fork maintained by Oak Video Editor Team."
|
||||
RESOURCE "${OLIVE_ICON}"
|
||||
OUTPUT_NAME "Olive"
|
||||
OUTPUT_NAME "Oak"
|
||||
)
|
||||
|
||||
# Copy the render worker and dynamic render backends into the app bundle.
|
||||
# They are looked up in QCoreApplication::applicationDirPath(), which on
|
||||
# macOS points to Olive.app/Contents/MacOS.
|
||||
# macOS points to Oak.app/Contents/MacOS.
|
||||
add_custom_command(TARGET olive-editor POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_BUNDLE_DIR:olive-editor>/Contents/MacOS
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:olive-render-worker> $<TARGET_BUNDLE_DIR:olive-editor>/Contents/MacOS/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:oakgl> $<TARGET_BUNDLE_DIR:olive-editor>/Contents/MacOS/
|
||||
COMMENT "Copying olive-render-worker and render backends into Olive.app"
|
||||
COMMENT "Copying oak-render-worker and render backends into Oak.app"
|
||||
)
|
||||
if (TARGET oakvulkan)
|
||||
add_custom_command(TARGET olive-editor POST_BUILD
|
||||
|
||||
@@ -22,6 +22,9 @@ add_executable(
|
||||
$<TARGET_OBJECTS:olive-version-obj>
|
||||
)
|
||||
|
||||
# Rename the generated binary to oak-crashhandler so it matches the Oak branding.
|
||||
set_target_properties(olive-crashhandler PROPERTIES OUTPUT_NAME "oak-crashhandler")
|
||||
|
||||
# Disable console appearing on crash handler dialog
|
||||
set_target_properties(olive-crashhandler PROPERTIES
|
||||
WIN32_EXECUTABLE TRUE
|
||||
@@ -52,7 +55,7 @@ set(MINIDUMP_STACKWALK "minidump_stackwalk${CMAKE_EXECUTABLE_SUFFIX}")
|
||||
if(APPLE)
|
||||
# Move crash handler executables inside Mac app bundle
|
||||
add_custom_command(TARGET olive-crashhandler POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different olive-crashhandler $<TARGET_FILE_DIR:olive-editor>
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:olive-crashhandler> $<TARGET_FILE_DIR:olive-editor>
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CRASHPAD_LIBRARY_DIRS}/${CRASHPAD_HANDLER} $<TARGET_FILE_DIR:olive-editor>
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${BREAKPAD_BIN_DIR}/${MINIDUMP_STACKWALK} $<TARGET_FILE_DIR:olive-editor>
|
||||
)
|
||||
|
||||
@@ -124,7 +124,7 @@ QString CrashHandlerDialog::GetSymbolPath()
|
||||
#elif BUILDFLAG(IS_LINUX)
|
||||
app_path.cdUp();
|
||||
symbols_path =
|
||||
app_path.filePath(QStringLiteral("share/olive-editor/symbols"));
|
||||
app_path.filePath(QStringLiteral("share/oak-editor/symbols"));
|
||||
#elif BUILDFLAG(IS_APPLE)
|
||||
app_path.cdUp();
|
||||
symbols_path = app_path.filePath(QStringLiteral("Resources/symbols"));
|
||||
@@ -291,11 +291,11 @@ void CrashHandlerDialog::SendErrorReport()
|
||||
|
||||
QString symbol_bin_name;
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
symbol_bin_name = QStringLiteral("olive-editor.pdb");
|
||||
symbol_bin_name = QStringLiteral("oak-editor.pdb");
|
||||
#elif BUILDFLAG(IS_APPLE)
|
||||
symbol_bin_name = QStringLiteral("Olive");
|
||||
symbol_bin_name = QStringLiteral("Oak");
|
||||
#else
|
||||
symbol_bin_name = QStringLiteral("olive-editor");
|
||||
symbol_bin_name = QStringLiteral("oak-editor");
|
||||
#endif
|
||||
symbol_dir = QDir(symbol_dir.filePath(symbol_bin_name));
|
||||
|
||||
@@ -320,9 +320,9 @@ void CrashHandlerDialog::SendErrorReport()
|
||||
// Create sym section
|
||||
QString symbol_filename;
|
||||
#if BUILDFLAG(IS_APPLE)
|
||||
symbol_filename = QStringLiteral("Olive.sym");
|
||||
symbol_filename = QStringLiteral("Oak.sym");
|
||||
#else
|
||||
symbol_filename = QStringLiteral("olive-editor.sym");
|
||||
symbol_filename = QStringLiteral("oak-editor.sym");
|
||||
#endif
|
||||
QString symbol_full_path = symbol_dir.filePath(symbol_filename);
|
||||
QHttpPart sym_part;
|
||||
|
||||
@@ -20,16 +20,16 @@
|
||||
|
||||
APPDIR=$(readlink -f $(dirname "$0"))
|
||||
|
||||
# Custom AppRun that ensures the AppImage doesn't dismount before olive-crashhandler exits
|
||||
# Custom AppRun that ensures the AppImage doesn't dismount before oak-crashhandler exits
|
||||
|
||||
# Run main program
|
||||
"$APPDIR/usr/bin/olive-editor" "$@"
|
||||
"$APPDIR/usr/bin/oak-editor" "$@"
|
||||
|
||||
# Wait arbitrary amount of time
|
||||
sleep 5
|
||||
|
||||
# While olive-crashhandler exists, keep sleeping
|
||||
while [[ $(ps -aux | grep olive-crashhandler | grep -v grep) ]]
|
||||
# While oak-crashhandler exists, keep sleeping
|
||||
while [[ $(ps -aux | grep oak-crashhandler | grep -v grep) ]]
|
||||
do
|
||||
sleep 5
|
||||
done
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
<p xml:lang="id">Oak Video Editor adalah aplikasi edit video bersifat non-linier yang bebas dan gratis, bertujuan untuk memberikan alternatif yang lengkap untuk aplikasi edit video profesional. Ini adalah fork komunitas dari Olive Video Editor.</p>
|
||||
<p xml:lang="fr">Oak Video Editor est un éditeur vidéo non linéaire libre visant à fournir une alternative complète aux logiciels de montage vidéo professionnels haut de gamme. Il s'agit d'un fork communautaire d'Olive Video Editor.</p>
|
||||
</description>
|
||||
<url type="homepage">https://github.com/olive-editor/olive</url>
|
||||
<url type="bugtracker">https://github.com/olive-editor/olive/issues</url>
|
||||
<url type="homepage">https://github.com/OakVideoEditorCommunity/oak</url>
|
||||
<url type="bugtracker">https://github.com/OakVideoEditorCommunity/oak/issues</url>
|
||||
<screenshots>
|
||||
<screenshot type="default"><image>https://olivevideoeditor.org/img/screenshot.1600.jpg</image></screenshot>
|
||||
</screenshots>
|
||||
|
||||
@@ -4,7 +4,7 @@ Comment=Professional open-source non-linear video editor
|
||||
Comment[fr]=Éditeur vidéo non-linéaire open-source professionnel
|
||||
Comment[it]=Programma di montaggio video professionale open-source
|
||||
Comment[id]=Aplikasi edit video yang non-linier, profesional serta sumbernya terbuka.
|
||||
Exec=olive-editor %f
|
||||
Exec=oak-editor %f
|
||||
Icon=org.oakvideoeditor.Oak
|
||||
Terminal=false
|
||||
Type=Application
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
!define MUI_UNICON "uninstall icon.ico"
|
||||
|
||||
!define APP_NAME "Oak Video Editor"
|
||||
!define APP_TARGET "olive-editor"
|
||||
!define APP_TARGET "oak-editor"
|
||||
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\olive-editor.exe"
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\oak-editor.exe"
|
||||
|
||||
SetCompressor lzma
|
||||
|
||||
@@ -38,14 +38,14 @@ InstallDir "$PROGRAMFILES32\${APP_NAME}"
|
||||
Section "Oak Video Editor"
|
||||
SectionIn RO
|
||||
SetOutPath $INSTDIR
|
||||
File /r olive-editor\*
|
||||
File /r oak-editor\*
|
||||
|
||||
# Render worker process must live next to the editor binary
|
||||
File "olive-editor\olive-render-worker.exe"
|
||||
File "oak-editor\oak-render-worker.exe"
|
||||
|
||||
# Render backends must also live next to the editor binary
|
||||
File "olive-editor\oakgl.dll"
|
||||
File /nonfatal "olive-editor\oakvulkan.dll"
|
||||
File "oak-editor\oakgl.dll"
|
||||
File /nonfatal "oak-editor\oakvulkan.dll"
|
||||
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
|
||||
@@ -69,8 +69,8 @@ Section "Associate *.ove files with Oak Video Editor"
|
||||
WriteRegStr HKCR ".ove" "" "OakEditor.OVEFile"
|
||||
WriteRegStr HKCR ".ove" "Content Type" "application/vnd.olive-project"
|
||||
WriteRegStr HKCR "OakEditor.OVEFile" "" "Oak project file"
|
||||
WriteRegStr HKCR "OakEditor.OVEFile\DefaultIcon" "" "$INSTDIR\olive-editor.exe,1"
|
||||
WriteRegStr HKCR "OakEditor.OVEFile\shell\open\command" "" "$\"$INSTDIR\olive-editor.exe$\" $\"%1$\""
|
||||
WriteRegStr HKCR "OakEditor.OVEFile\DefaultIcon" "" "$INSTDIR\oak-editor.exe,1"
|
||||
WriteRegStr HKCR "OakEditor.OVEFile\shell\open\command" "" "$\"$INSTDIR\oak-editor.exe$\" $\"%1$\""
|
||||
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
||||
SectionEnd
|
||||
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
/// Vulkan requested by the user. Falls back to OpenGL until VulkanRenderer is implemented.
|
||||
kVulkan,
|
||||
|
||||
/// Video frames are rendered by an external olive-render-worker process.
|
||||
/// Video frames are rendered by an external oak-render-worker process.
|
||||
kMultiProcess,
|
||||
|
||||
/// No graphics rendering - used to test core threading logic
|
||||
|
||||
@@ -241,9 +241,9 @@ bool DecodeInputFrames(DecoderCache *decoder_cache,
|
||||
QString WorkerProgramPath()
|
||||
{
|
||||
#if defined(Q_OS_WIN)
|
||||
const QString file = QStringLiteral("olive-render-worker.exe");
|
||||
const QString file = QStringLiteral("oak-render-worker.exe");
|
||||
#else
|
||||
const QString file = QStringLiteral("olive-render-worker");
|
||||
const QString file = QStringLiteral("oak-render-worker");
|
||||
#endif
|
||||
|
||||
const QString app_dir = QCoreApplication::applicationDirPath();
|
||||
|
||||
@@ -547,7 +547,7 @@ int main(int argc, char *argv[])
|
||||
#endif
|
||||
|
||||
QCoreApplication::setOrganizationName(QStringLiteral("oakvideoeditor.org"));
|
||||
QCoreApplication::setApplicationName(QStringLiteral("olive-render-worker"));
|
||||
QCoreApplication::setApplicationName(QStringLiteral("oak-render-worker"));
|
||||
|
||||
QString backend = QStringLiteral("opengl");
|
||||
const QStringList args = app.arguments();
|
||||
|
||||
@@ -788,7 +788,7 @@ void MainMenu::SequenceCacheClearTriggered()
|
||||
void MainMenu::HelpFeedbackTriggered()
|
||||
{
|
||||
QDesktopServices::openUrl(
|
||||
QStringLiteral("https://github.com/olive-editor/olive/issues"));
|
||||
QStringLiteral("https://github.com/OakVideoEditorCommunity/oak/issues"));
|
||||
}
|
||||
|
||||
void MainMenu::Retranslate()
|
||||
|
||||
Reference in New Issue
Block a user