Hot restart frees the old isolate's NativeCallables while mpv handles stay alive; media_kit then quits them on the next start and mpv calls the dead wakeup callback (SIGSEGV on the mpv 'core' thread). A debug-only runner hook clears every live handle's wakeup callback on the engine's on-pre-engine-restart signal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
29 lines
1.0 KiB
CMake
29 lines
1.0 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
project(runner LANGUAGES CXX)
|
|
|
|
# Define the application target. To change its name, change BINARY_NAME in the
|
|
# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer
|
|
# work.
|
|
#
|
|
# Any new source files that you add to the application should be added here.
|
|
add_executable(${BINARY_NAME}
|
|
"main.cc"
|
|
"my_application.cc"
|
|
"hot_restart_guard.cc"
|
|
"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
|
|
)
|
|
|
|
# Apply the standard set of build settings. This can be removed for applications
|
|
# that need different build settings.
|
|
apply_standard_settings(${BINARY_NAME})
|
|
|
|
# Add preprocessor definitions for the application ID.
|
|
add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}")
|
|
|
|
# Add dependency libraries. Add any application-specific dependencies here.
|
|
target_link_libraries(${BINARY_NAME} PRIVATE flutter)
|
|
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)
|
|
target_link_libraries(${BINARY_NAME} PRIVATE ${CMAKE_DL_LIBS})
|
|
|
|
target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
|