From 835d47244c055e1e9fa16b66474566a3d69dd275 Mon Sep 17 00:00:00 2001 From: Mike Solar Date: Mon, 3 Aug 2026 12:48:27 +0800 Subject: [PATCH] ci: sweep remaining QLatin1String::toUtf8; embed version obj in oakengine.dll - pointer.cpp/transition.cpp: same Qt 6.4 incompatibility as import.cpp - Windows: DLLs cannot have undefined symbols, so the executable-provides-k_app_version trick does not link; embed olive-version-obj into oakengine on WIN32 (each module keeps its own copy) --- app/widget/timelinewidget/tool/pointer.cpp | 4 ++-- app/widget/timelinewidget/tool/transition.cpp | 4 ++-- engine/CMakeLists.txt | 7 +++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/widget/timelinewidget/tool/pointer.cpp b/app/widget/timelinewidget/tool/pointer.cpp index d641ab832..ff6af334a 100644 --- a/app/widget/timelinewidget/tool/pointer.cpp +++ b/app/widget/timelinewidget/tool/pointer.cpp @@ -887,7 +887,7 @@ void PointerTool::finish_drag(TimelineViewMouseEvent *event) oakengine_node_connect_command( reinterpret_cast(it.value()), reinterpret_cast(cp_in_transition), - QLatin1String(oakengine_transition_in_block_input_id()).toUtf8().constData(), + oakengine_transition_in_block_input_id(), -1)); } @@ -900,7 +900,7 @@ void PointerTool::finish_drag(TimelineViewMouseEvent *event) oakengine_node_connect_command( reinterpret_cast(it.value()), reinterpret_cast(cp_out_transition), - QLatin1String(oakengine_transition_out_block_input_id()).toUtf8().constData(), + oakengine_transition_out_block_input_id(), -1)); } } diff --git a/app/widget/timelinewidget/tool/transition.cpp b/app/widget/timelinewidget/tool/transition.cpp index f8bdae141..11ea32987 100644 --- a/app/widget/timelinewidget/tool/transition.cpp +++ b/app/widget/timelinewidget/tool/transition.cpp @@ -198,7 +198,7 @@ void TransitionTool::mouse_release(TimelineViewMouseEvent *event) oakengine_node_connect_command( reinterpret_cast(out_block), transition, - QLatin1String(oakengine_transition_out_block_input_id()).toUtf8().constData(), + oakengine_transition_out_block_input_id(), -1)); oakengine_undo_command_multi_add_child( @@ -206,7 +206,7 @@ void TransitionTool::mouse_release(TimelineViewMouseEvent *event) oakengine_node_connect_command( reinterpret_cast(in_block), transition, - QLatin1String(oakengine_transition_in_block_input_id()).toUtf8().constData(), + oakengine_transition_in_block_input_id(), -1)); oakengine_undo_command_multi_add_child(command, oakengine_node_set_position_command(reinterpret_cast(out_block), reinterpret_cast(transition), -1, -0.5, 0)); diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index 3987fb61a..9ce6f3dfc 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -55,6 +55,13 @@ add_library(oakengine-obj OBJECT add_library(oakengine SHARED $) +if (WIN32) + # Windows DLLs cannot have undefined symbols; embed the version objects + # here too (each module keeps its own copy, unlike ELF where the final + # executable provides the definition). + target_sources(oakengine PRIVATE $) +endif () + if (COMMAND oak_copy_otio_runtime) oak_copy_otio_runtime(oakengine) endif()