| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | cmake_minimum_required(VERSION 3.10)project(runner LANGUAGES CXX)set(BINARY_NAME "app_flowy")set(APPLICATION_ID "com.example.app_flowy")cmake_policy(SET CMP0063 NEW)set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")# Root filesystem for cross-building.if(FLUTTER_TARGET_PLATFORM_SYSROOT)  set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT})  set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})  set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)  set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)  set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)endif()# Configure build options.if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)  set(CMAKE_BUILD_TYPE "Debug" CACHE    STRING "Flutter build mode" FORCE)  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS    "Debug" "Profile" "Release")endif()# Compilation settings that should be applied to most targets.function(APPLY_STANDARD_SETTINGS TARGET)  target_compile_features(${TARGET} PUBLIC cxx_std_14)  target_compile_options(${TARGET} PRIVATE -Wall -Werror)  target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")  target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")endfunction()set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")# Flutter library and tool build rules.add_subdirectory(${FLUTTER_MANAGED_DIR})# System-level dependencies.find_package(PkgConfig REQUIRED)pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}")# Application buildadd_executable(${BINARY_NAME}  "main.cc"  "my_application.cc"  "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc")apply_standard_settings(${BINARY_NAME})target_link_libraries(${BINARY_NAME} PRIVATE flutter)target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)add_dependencies(${BINARY_NAME} flutter_assemble)# Only the install-generated bundle's copy of the executable will launch# correctly, since the resources must in the right relative locations. To avoid# people trying to run the unbundled copy, put it in a subdirectory instead of# the default top-level location.set_target_properties(${BINARY_NAME}  PROPERTIES  RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run")# Generated plugin build rules, which manage building the plugins and adding# them to the application.include(flutter/generated_plugins.cmake)# === Installation ===# By default, "installing" just makes a relocatable bundle in the build# directory.set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle")if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)  set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)endif()# Start with a clean build bundle directory every time.install(CODE "  file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\")  " COMPONENT Runtime)set(DART_FFI_DIR "${CMAKE_INSTALL_PREFIX}/lib")set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data")set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"  COMPONENT Runtime)install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"  COMPONENT Runtime)install(FILES "${DART_FFI_DLL}" DESTINATION "${DART_FFI_DIR}"  COMPONENT Runtime)install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"  COMPONENT Runtime)if(PLUGIN_BUNDLED_LIBRARIES)  install(FILES "${PLUGIN_BUNDLED_LIBRARIES}"    DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"    COMPONENT Runtime)endif()# Fully re-copy the assets directory on each build to avoid having stale files# from a previous install.set(FLUTTER_ASSET_DIR_NAME "flutter_assets")install(CODE "  file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\")  " COMPONENT Runtime)install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}"  DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime)# Install the AOT library on non-Debug builds only.if(NOT CMAKE_BUILD_TYPE MATCHES "Debug")  install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"    COMPONENT Runtime)endif()
 |