cmake_minimum_required(VERSION 3.10) set(PROJECT_NAME "coreframe_flutter") project(${PROJECT_NAME} LANGUAGES CXX) cmake_policy(VERSION 3.10...3.24) set(PLUGIN_NAME "${PROJECT_NAME}_plugin") find_package(PkgConfig REQUIRED) pkg_check_modules(WEBKIT REQUIRED IMPORTED_TARGET webkit2gtk-4.1>=2.42) add_library(${PLUGIN_NAME} SHARED "src/common/method_channel_utils.cc" "src/platform/flutter_view.cc" "src/plugin/coreframe_web_view_host_plugin.cc" "src/plugin/linux_native_files.cc" "src/plugin/root_channel.cc" "src/webview/linux_webview.cc" "src/webview/trusted_webview.cc" "src/webview/presentation_capture.cc" "src/webview/webview_javascript.cc" "src/webview/webview_method_handler.cc" ) apply_standard_settings(${PLUGIN_NAME}) set_target_properties(${PLUGIN_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden ) target_compile_definitions(${PLUGIN_NAME} PRIVATE FLUTTER_PLUGIN_IMPL) target_include_directories(${PLUGIN_NAME} INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include" ) target_include_directories(${PLUGIN_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/src" ) target_link_libraries(${PLUGIN_NAME} PRIVATE flutter) target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::GTK) target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::WEBKIT) if(BUILD_TESTING) add_executable(coreframe_flutter_linux_native_files_test "test/linux_native_files_test.cc" "src/common/method_channel_utils.cc" "src/plugin/linux_native_files.cc" ) apply_standard_settings(coreframe_flutter_linux_native_files_test) target_include_directories(coreframe_flutter_linux_native_files_test PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/src" ) target_link_libraries(coreframe_flutter_linux_native_files_test PRIVATE flutter PkgConfig::GTK PkgConfig::WEBKIT ) add_test( NAME coreframe_flutter_linux_native_files_test COMMAND coreframe_flutter_linux_native_files_test ) endif()